Skip to content

[BUG] no multichannel sound through video on Intel Ice Lake laptop with integrated graphics #6026

@pfps

Description

@pfps

Describe the bug

I'm not even sure that this is a bug, or that it is an SOF bug, but it looks to me as if my laptop should be able to play multi-channel sound through its video (HDMI/DP) outputs. But attempts to do so result in two-channel sound or fail completely. Is there something in SOF that needs to be changed to enable multi-channel sound through the video outputs?

To Reproduce
Play 5+1 audio routed through HDMI/DP outputs (through pipewire or directly using speaker-test). The pipewire audio is remixed to two channels and speaker-test complains 'Channels count (6) not available for playbacks: Invalid argument'.

Command to reproduce through pipewire:

speaker-test -c6 -t wav
[and then route output to Ice Lake ... HDMI / DisplayPort 2 Output]
[sound is remixed two-channel sound]

Command to play directly

[set output configuration to Off in pulse audio volume control]
speaker-test -c6 -t wav -D hw:0,4

speaker-test 1.2.7

Playback device is hw:0,4
Stream parameters are 48000Hz, S16_LE, 6 channels
WAV file(s)
Channels count (6) not available for playbacks: Invalid argument
Setting of hwparams failed: Invalid argument

Reproduction Rate
Happens all the time.

Expected behavior
Multichannel (instead of two-channel) sound is played by the speaker system connected to video display.

Impact
This is just an annoyance, but the setup should be fairly common.

Environment

  1. Branch name and commit hash of the 2 repositories: sof (firmware/topology) and linux (kernel driver).
    • Kernel: 5.18.11-200.fc36.x86_64 (current Fedora 36 kernel)
    • SOF: 2:1:1-3964a (I guess)
  2. Name of the topology file
    • Topology: unknown - how can I find this out?
  3. Name of the platform(s) on which the bug is observed.
    • Platform: Lenovo Yoga C940 - Ice Lake CPU, integrated video, two Thunderbolt ports

Screenshots or console output

[Overall description - sof-logger does not appear to be installed in Fedora]

I have an Intel Ice Lake laptop without a separate video chip. The integrated video output is sent to two Thunderbolt / USB-C ports, as is usual.

My question is whether SOF supports multi-channel audio through these video connections. It appears that it is possible, as /proc/asound/card0/codec#2 shows several 8-channel capabilities, including

Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=15, channel=0
  Digital: Enabled KAE
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
    bits [0x1a]: 16 24 32
    formats [0x5]: PCM AC3
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x04 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x00 0x00]
  Pincap 0x0b000094: OUT Detect HBR HDMI DP
  Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
    Conn = Digital, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D3 EPSS
  Power: setting=D0, actual=D0
  Devices: 0
  Connection: 0

It appears that this shows up in amixer, including information about the sound system, as

numid=32,iface=PCM,name='ELD',device=4
  ; type=BYTES,access=r--v----,values=36
  : values=0x10,0x00,0x08,0x00,0x69,0x26,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x18,0x51,0x28,0x42,0x65,0x79,0x6f,0x6e,0x64,0x20,0x54,0x56,0x09,0x07,0x07,0x15,0x17,0x50,0x00
numid=40,iface=PCM,name='Playback Channel Map',device=4
  ; type=INTEGER,access=rw---R--,values=8,min=0,max=36,step=0
  : values=3,4,0,0,0,0,0,0
  | container
    | chmap-variable=FL,FR

But I can't find a way to make all the channels available. I've tried to use amixer to change the hardware control for channel but that doesn't change anything.

So where is the problem? Is it at all possible to send 7+1 or 5+1 sound through the video output? If so, is SOF or a topology file or ASLA somehow not exposing the capability?

Here are the sof messages in the system log, from the last boot to now:

Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: enabling device (0000 -> 0002)
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: use msi interrupt mode
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: hda codecs found, mask 5
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: DMICs detected in NHLT tables: 2
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: Firmware info: version 2:1:1-3964a
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: Firmware: ABI 3:21:0 Kernel ABI 3:19:1
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: warn: FW ABI is more recent than kernel
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: Firmware info: version 2:1:1-3964a
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: Firmware: ABI 3:21:0 Kernel ABI 3:19:1
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: warn: FW ABI is more recent than kernel
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: Topology: ABI 3:21:0 Kernel ABI 3:19:1
Jul 18 09:37:24 idefix kernel: sof-audio-pci-intel-icl 0000:00:1f.3: warn: topology ABI is more recent than kernel
Jul 18 09:37:24 idefix kernel: input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input38
Jul 18 09:37:24 idefix kernel: input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input39
Jul 18 09:37:24 idefix kernel: input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input40
Jul 18 09:37:24 idefix kernel: input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input41
Jul 18 09:37:24 idefix kernel: input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input42

systemlog.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working as expectedwon't fixThis will not be worked on atm (e.g. a bug closed for lack of user request, hardware etc)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions