Open PennRobotics opened 1 year ago
Thanks for the report. So while it's surprising that there's no DSP enabled in this platform.
At the hardware level, the PCI ID is supported by SOF
pci-tgl.c: { PCI_DEVICE(0x8086, 0xa0c8), /* TGL-LP */
so I guess someone made a conscious decision to disable it. Oh well.
So the fix will need to be done in sound/pci/hda/patch_realtek.c
Somehow for this specific skew the pins and nids are not well configured. Maybe @shumingfan and others at Realtek can help?
Oh, I had forgotten:
There is an option in BIOS related to audio. From the description, it makes it seem like the one setting is for smart home wake word activation tasks (which I believe is "DSP") while the other is HD Audio. When I'm home in an hour, I'll try again with that option toggled.
I should get more rest; my memory's failing me. The BIOS options are between DSP and TOSLINK. Obviously here, I'd lean toward TOSLINK, but I am able to play out of the front HP jack and the rear line out/optical jack. The S/PDIF light doesn't turn on at all, which is entirely expected.
I also tried hdajackretask to force pin 0x1E to be configured as an optical out, but this was unsuccessful.
This doesn't fix the optical, but it does explain why the DSP is not active. Let me know if/when you have a next step for me. Thanks!
I suppose according to the Overview of Intel hardware platforms:
On Bay Trail, Cherry Trail, Braswell, and Broadwell, the BIOS can either enable or disable the DSP:
Enable the DSP. In this case, a DSP driver is required. This mode is selected on platforms where the audio interface for 3rd-party codecs is based on the I2C/I2S/TDM interfaces.
Disable the DSP. In this case, an HDaudio controller is exposed and the snd-intel-hda driver will take care of all audio usages. SOF cannot be used in this case.
(I posted the wrong section, but the SPI details from 2016–now say the same thing. DSP = SOF, No DSP = No SOF)
In this case, the SOF Project would probably not be responsible for TOSLINK support?
It's embarrassing to see such problems happening on an Intel platform, I don't know why anyone would suggest in the same menu item 'disable DSP, enable TOSLINK'. The two parts are completely independent, technically there's no rational explanation that I can see. Meh.
Now I am afraid I don't follow the comment "I am able to play out of the front HP jack and the rear line out/optical jack"
Did you mean you can use both the front and rear connectors with a analog headphone?
FWIW I have a NUC7 and I do see the red light coming out of the 'optical' connector.
Yes, the front and rear electrical connections (headphones) work when TOSLINK is disabled, so it's really just the optical that is turned off by that BIOS option.
At this point using snd-hda-intel with DSP disabled, I run speaker-test -Dhw:0 -c2 -r48000 -f S16_LE
and then the optical stays on while the program runs, but no sound comes through the speakers. I might need to get something like a two-way Lindy converter so I can check which one of these components (or even both) is (/are) not working.
Is there the possibility that the Realtek is using an 8-channel ADAT protocol while the speakers (stereo monitors although the manufacturer doesn't list the protocol) are using a 2-channel S/PDIF protocol? Nonetheless, I still would suspect a configuration issue due to how some people are able to boot into Windows, reboot into Linux, and their sound works while cold booting into Linux results in no optical output.
I would double-check your mixer settings with alsamixer @PennRobotics
If you see the right laser/led light, it's quite likely that the optical layers work, but it's possible that you're only sending muted data.
Try with alsamixer to see if you see any switches that are off and turn them on as needed.
alternatively you have two references to SPDIF in the alsa-info logs provided above
Node 0x1e [Pin Complex] wcaps 0x400581: Stereo
Pincap 0x00000014: OUT Detect
Pin Default 0x03456160: [Jack] SPDIF Out at Ext Left
Conn = Optical, Color = Orange
DefAssociation = 0x6, Sequence = 0x0
Misc = NO_PRESENCE
Pin-ctls: 0x40: OUT
Unsolicited: tag=00, enabled=0
Power states: D0 D1 D2 D3 EPSS
Power: setting=D0, actual=D0
Connection: 1
It could be that the jack is not detected?
control.17 {
iface CARD
name 'SPDIF Phantom Jack'
value true
comment {
access read
type BOOLEAN
count 1
}
}
No idea what this is but this is the second reference I would look into.
I just hooked up an audio interface, which brought about a handful of changes:
I could continue trying to get this working, but it will need to be through a Live ISO going forward, as I'll probably stick with WSL on this computer while my laptop remains non-Windows. At this stage, we just need to figure out if the kernel/distro defaults are "enough" and the output needs to be somehow unmuted (e.g. user changes) or do additional config steps need to be added to the kernel driver e.g. Realtek verbs, if I understand the lingo. I don't know much about this and can try to learn, although I think having Windows doesn't help, as the tools used to gather these run via patched QEMU on Linux, right? (and right now, I have the opposite: native Windows and virtualized Linux)
All channels were unmuted on in alsamixer on my last attempt, but this wasn't enabling sound for me. I also noted that older NUCs (e.g. NUC6) had a "S/PDIF 16" channel and would also show up in aplay with Analog and Digital options, while I'm only seeing Analog:
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC233 Analog [ALC233 Analog]
Subdevices: 1/1
Subdevice # 0: subdevice # 0
card 0: PCH [HDA Intel PCH], device 1: ALC233 Digital [ALC233 Digital]
Subdevices: 1/1
Subdevice # 0: subdevice # 0
Thanks for the time and effort.
If you prefer to close this issue and reopen later (when I get around to getting a thumb drive prepared or someone else pings, "Hey! What about me??") that would be alright, because I don't have an estimate of when I'll pursue this further.
@PennRobotics if you have a working setup on Windows, then there are multiple ways to snoop what the Realtek driver is doing and figure out what 'verbs' and 'nids' need to be configured. I added two links for convenience in the documentation https://thesofproject.github.io/latest/getting_started/intel_debug/suggestions.html#reverse-engineer-the-windows-audio-driver
It's frustrating that the configuration cannot be discovered from e.g. ACPI tables, it's a recurring issue with amplifiers and SPDIF, the only good news is that tools exist to reverse-engineer the solution and work-around the issue.
Dump: RtHDDDump.optical.txt
This is with the front 3.5mm jack empty and a Toslink in the rear 3.5mm jack, which is active as the sound output.
There are a handful of other settings which I'm unsure are provided by software or by the IC itself: equalizer, normalization, voice cancellation, pitch shifting, full-range speakers, virtual surround, etc. On the microphone side, there's boost (already available in alsamixer) as well as noise suppression and echo cancellation.
Once the optical channel has been used, it can't be disabled in Realtek Audio Console. I haven't checked yet if the optical channel is active on Windows startup if the Toslink connector is not inserted, but that might also be useful info.
Let me know if it's helpful to capture other configurations or diffs when an option is changed.
Bug Description
The S/PDIF output via a Realtek ALC700 on the NUC 11 Enthusiast is not functioning. (log)
Forcing the SOF driver by
options snd-intel-dspcfg dsp_driver=3
in /etc/modprobe.d/modprobe.conf I see an error message:When the SOF driver is not explicitly configured (e.g. using hda-snd-intel) the data light will briefly turn on and then turn off when a cable is inserted or—if the internal sound card is visible—by specifying the output device argument as part of aplay. When using aplay, there is no audio content—just the soft click of the amplifier detecting a signal and then the soft click of the signal stopping at the end of the file playback.
When the sound card can be found via pacmd/pactl, it appears only ever as ALC700 Analog, where ALC700 Digital might be expected. The optical pin (0x1E) is usually visible in various commands or configuration tools e.g. hdajackretask
There was an attempt to patch the kernel that never materialized although the user reports having an optical connection.
To Reproduce
Reproduction Rate
Always
Environment
Everything is installed via package manager on Fedora 38 Beta (although I've also tested Fedoras 36 and 37 as well as Arch, Clear Linux OS, OpenSUSE, RHEL, and Ubuntu):
I've attached gists to each of the alsa-info.sh logs/outputs for an attempted configuration in the table below. I've also tried loading pipewire-pulse as a sound server, using hdajackretask to manually force the DAC configuration, alsamixer and pavucontrol and iecset to unmute/enable the optical output, and manually specifying a
patch=
parameter tooptions hda-snd-intel
. (I did not do every command before every alsa-info.sh, but I did try the above commands for multiple attempted configurations. Don't hesitate to suggest one of the above commands if you think it will help!!)dsp_driver=3
(sof)dsp_driver=1
model=auto
model=alc700-ref
model=spdif
Here (dropdown) is the same “sof” log as linked above, for courtesy
```text upload=true&script=true&cardinfo= !!################################ !!ALSA Information Script v 0.5.1 !!################################ !!Script ran on: Wed Mar 29 23:39:17 UTC 2023 !!Linux Distribution !!------------------ Fedora release 38 (Thirty Eight) NAME="Fedora Linux" ID=fedora PRETTY_NAME="Fedora Linux 38 (Workstation Edition Prerelease)" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:38" DEFAULT_HOSTNAME="fedora" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f38/system-administrators-guide/" SUPPORT_URL="https://ask.fedoraproject.org/" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=38 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=38 Fedora release 38 (Thirty Eight) Fedora release 38 (Thirty Eight) !!DMI Information !!--------------- Manufacturer: Intel(R) Client Systems Product Name: NUC11PHi7 Product Version: M26149-405 Firmware Version: PHTGL579.0072.2023.0201.2226 System SKU: SWNUC11PHKi7C00 Board Vendor: Intel Corporation Board Name: NUC11PHBi7 !!ACPI Device Status Information !!--------------- /sys/bus/acpi/devices/ACPI000C:00/status 15 /sys/bus/acpi/devices/ACPI000E:00/status 15 /sys/bus/acpi/devices/INT33A1:00/status 15 /sys/bus/acpi/devices/INT340E:00/status 15 /sys/bus/acpi/devices/INT34C5:00/status 15 /sys/bus/acpi/devices/INT3515:00/status 15 /sys/bus/acpi/devices/INT3F0D:00/status 15 /sys/bus/acpi/devices/INTC1036:00/status 15 /sys/bus/acpi/devices/LNXPOWER:03/status 1 /sys/bus/acpi/devices/LNXPOWER:04/status 1 /sys/bus/acpi/devices/LNXPOWER:05/status 1 /sys/bus/acpi/devices/LNXPOWER:06/status 1 /sys/bus/acpi/devices/LNXPOWER:07/status 1 /sys/bus/acpi/devices/LNXPOWER:08/status 1 /sys/bus/acpi/devices/LNXPOWER:09/status 1 /sys/bus/acpi/devices/LNXPOWER:0a/status 1 /sys/bus/acpi/devices/LNXPOWER:0e/status 1 /sys/bus/acpi/devices/MSFT0101:00/status 15 /sys/bus/acpi/devices/PNP0103:00/status 15 /sys/bus/acpi/devices/PNP0C02:03/status 11 /sys/bus/acpi/devices/PNP0C02:05/status 11 /sys/bus/acpi/devices/PNP0C09:00/status 11 /sys/bus/acpi/devices/PNP0C0C:00/status 15 /sys/bus/acpi/devices/PNP0C0E:00/status 11 /sys/bus/acpi/devices/PNP0C0F:00/status 9 /sys/bus/acpi/devices/PNP0C0F:01/status 9 /sys/bus/acpi/devices/PNP0C0F:02/status 9 /sys/bus/acpi/devices/PNP0C0F:03/status 9 /sys/bus/acpi/devices/PNP0C0F:04/status 9 /sys/bus/acpi/devices/PNP0C0F:05/status 9 /sys/bus/acpi/devices/PNP0C0F:06/status 9 /sys/bus/acpi/devices/PNP0C0F:07/status 9 /sys/bus/acpi/devices/PRP00001:00/status 11 /sys/bus/acpi/devices/PRP00001:01/status 11 /sys/bus/acpi/devices/device:06/status 15 /sys/bus/acpi/devices/device:a7/status 15 /sys/bus/acpi/devices/device:a8/status 15 /sys/bus/acpi/devices/device:a9/status 15 /sys/bus/acpi/devices/device:ab/status 15 /sys/bus/acpi/devices/device:ac/status 15 /sys/bus/acpi/devices/device:ad/status 15 /sys/bus/acpi/devices/device:b2/status 15 /sys/bus/acpi/devices/device:b9/status 15 /sys/bus/acpi/devices/device:ba/status 15 /sys/bus/acpi/devices/device:bd/status 15 /sys/bus/acpi/devices/device:bf/status 15 !!Kernel Information !!------------------ Kernel release: 6.2.8-300.fc38.x86_64 Operating System: GNU/Linux Architecture: x86_64 Processor: unknown SMP Enabled: Yes !!ALSA Version !!------------ Driver version: k6.2.8-300.fc38.x86_64 Library version: Utilities version: 1.2.8 !!Loaded ALSA modules !!------------------- snd_hda_intel (card 0) !!Sound Servers on this system !!---------------------------- PipeWire: Installed - Yes (/usr/bin/pipewire) Running - Yes No sound servers found. !!Soundcards recognised by ALSA !!----------------------------- 0 [NVidia ]: HDA-Intel - HDA NVidia HDA NVidia at 0x6c080000 irq 17 !!PCI Soundcards installed in the system !!-------------------------------------- 00:1f.3 Audio device [0403]: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller [8086:a0c8] (rev 20) Subsystem: Intel Corporation Device [8086:2090] 01:00.1 Audio device [0403]: NVIDIA Corporation TU106 High Definition Audio Controller [10de:10f9] (rev a1) Subsystem: Intel Corporation Device [8086:2090] !!Modprobe options (Sound related) !!-------------------------------- snd_intel_dspcfg: dsp_driver=3 !!Loaded sound module options !!--------------------------- !!Module: snd_hda_intel align_buffer_size : -1 bdl_pos_adj : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 beep_mode : N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N ctl_dev_id : N dmic_detect : Y enable : Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y enable_msi : -1 id : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null) index : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 jackpoll_ms : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 model : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null) patch : (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null) pm_blacklist : Y position_fix : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 power_save : 1 power_save_controller : Y probe_mask : -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 probe_only : 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 single_cmd : -1 snoop : -1 !!Sysfs card info !!--------------- !!Card: /sys/class/sound/card0 Driver: /sys/bus/pci/drivers/snd_hda_intel Tree: /sys/class/sound/card0 |-- controlC0 | |-- dev | |-- device -> ../../card0 | |-- power | |-- subsystem -> ../../../../../../../class/sound | `-- uevent |-- device -> ../../../0000:01:00.1 |-- hwC0D0 | |-- afg | |-- chip_name | |-- clear | |-- dev | |-- device -> ../../card0 | |-- driver_pin_configs | |-- hints | |-- init_pin_configs | |-- init_verbs | |-- mfg | |-- modelname | |-- power | |-- power_off_acct | |-- power_on_acct | |-- reconfig | |-- revision_id | |-- subsystem -> ../../../../../../../class/sound | |-- subsystem_id | |-- uevent | |-- user_pin_configs | |-- vendor_id | `-- vendor_name |-- id |-- input10 | |-- capabilities | |-- device -> ../../card0 | |-- event10 | |-- id | |-- inhibited | |-- modalias | |-- name | |-- phys | |-- power | |-- properties | |-- subsystem -> ../../../../../../../class/input | |-- uevent | `-- uniq |-- input11 | |-- capabilities | |-- device -> ../../card0 | |-- event11 | |-- id | |-- inhibited | |-- modalias | |-- name | |-- phys | |-- power | |-- properties | |-- subsystem -> ../../../../../../../class/input | |-- uevent | `-- uniq |-- input8 | |-- capabilities | |-- device -> ../../card0 | |-- event8 | |-- id | |-- inhibited | |-- modalias | |-- name | |-- phys | |-- power | |-- properties | |-- subsystem -> ../../../../../../../class/input | |-- uevent | `-- uniq |-- input9 | |-- capabilities | |-- device -> ../../card0 | |-- event9 | |-- id | |-- inhibited | |-- modalias | |-- name | |-- phys | |-- power | |-- properties | |-- subsystem -> ../../../../../../../class/input | |-- uevent | `-- uniq |-- number |-- pcmC0D3p | |-- dev | |-- device -> ../../card0 | |-- pcm_class | |-- power | |-- subsystem -> ../../../../../../../class/sound | `-- uevent |-- pcmC0D7p | |-- dev | |-- device -> ../../card0 | |-- pcm_class | |-- power | |-- subsystem -> ../../../../../../../class/sound | `-- uevent |-- pcmC0D8p | |-- dev | |-- device -> ../../card0 | |-- pcm_class | |-- power | |-- subsystem -> ../../../../../../../class/sound | `-- uevent |-- pcmC0D9p | |-- dev | |-- device -> ../../card0 | |-- pcm_class | |-- power | |-- subsystem -> ../../../../../../../class/sound | `-- uevent |-- power | |-- autosuspend_delay_ms | |-- control | |-- runtime_active_time | |-- runtime_status | `-- runtime_suspended_time |-- subsystem -> ../../../../../../class/sound `-- uevent !!HDA-Intel Codec information !!--------------------------- --startcollapse-- Codec: Nvidia GPU 93 HDMI/DP Address: 0 AFG Function Id: 0x1 (unsol 0) Vendor Id: 0x10de0093 Subsystem Id: 0x80862090 Revision Id: 0x100100 No Modem Function Group found Default PCM: rates [0x0]: bits [0x0]: formats [0x0]: Default Amp-In caps: N/A Default Amp-Out caps: N/A State of AFG node 0x01: Power states: D0 D1 D2 D3 CLKSTOP EPSS Power: setting=D0, actual=D0 GPIO: io=0, o=0, i=0, unsolicited=0, wake=0 Node 0x04 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x40: OUT Unsolicited: tag=01, enabled=1 Devices: 4 *Dev 00: PD = 1, ELDV = 1, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 01: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 02: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 03: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Connection: 4 0x08* 0x09 0x0a 0x0b Node 0x05 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x185600f0: [Jack] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=05, enabled=1 Devices: 4 Dev 00: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 01: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 02: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] *Dev 03: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Connection: 4 0x08* 0x09 0x0a 0x0b Node 0x06 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x585600f0: [N/A] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Devices: 4 *Dev 00: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 01: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 02: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 03: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Connection: 4 0x08* 0x09 0x0a 0x0b Node 0x07 [Pin Complex] wcaps 0x407381: 8-Channels Digital CP Pincap 0x09000094: OUT Detect HBR HDMI DP Pin Default 0x585600f0: [N/A] Digital Out at Int HDMI Conn = Digital, Color = Unknown DefAssociation = 0xf, Sequence = 0x0 Pin-ctls: 0x00: Unsolicited: tag=00, enabled=0 Devices: 4 *Dev 00: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 01: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 02: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Dev 03: PD = 0, ELDV = 0, IA = 0, Connections [ 0x08* 0x09 0x0a 0x0b ] Connection: 4 0x08* 0x09 0x0a 0x0b Node 0x08 [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe Device: name="HDMI 0", type="HDMI", device=3 Converter: stream=5, channel=0 Digital: Enabled GenLevel Digital category: 0x2 IEC Coding Type: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Unsolicited: tag=00, enabled=0 Node 0x09 [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Unsolicited: tag=00, enabled=0 Node 0x0a [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Unsolicited: tag=00, enabled=0 Node 0x0b [Audio Output] wcaps 0x62b1: 8-Channels Digital Stripe Converter: stream=0, channel=0 Digital: Digital category: 0x0 IEC Coding Type: 0x0 PCM: rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000 bits [0xe]: 16 20 24 formats [0x5]: PCM AC3 Unsolicited: tag=00, enabled=0 --endcollapse-- !!ALSA Device nodes !!----------------- crw-rw----+ 1 root audio 116, 7 Mar 30 01:34 /dev/snd/controlC0 crw-rw----+ 1 root audio 116, 6 Mar 30 01:34 /dev/snd/hwC0D0 crw-rw----+ 1 root audio 116, 2 Mar 30 01:36 /dev/snd/pcmC0D3p crw-rw----+ 1 root audio 116, 3 Mar 30 01:35 /dev/snd/pcmC0D7p crw-rw----+ 1 root audio 116, 4 Mar 30 01:35 /dev/snd/pcmC0D8p crw-rw----+ 1 root audio 116, 5 Mar 30 01:35 /dev/snd/pcmC0D9p crw-rw----+ 1 root audio 116, 1 Mar 30 01:34 /dev/snd/seq crw-rw----+ 1 root audio 116, 33 Mar 30 01:34 /dev/snd/timer /dev/snd/by-path: total 0 drwxr-xr-x. 2 root root 60 Mar 30 01:34 . drwxr-xr-x. 3 root root 220 Mar 30 01:34 .. lrwxrwxrwx. 1 root root 12 Mar 30 01:34 pci-0000:01:00.1 -> ../controlC0 !!ALSA configuration files !!------------------------ !!System wide config file (/etc/asound.conf) # # Place your global alsa-lib configuration here... # !!Aplay/Arecord output !!-------------------- APLAY **** List of PLAYBACK Hardware Devices **** card 0: NVidia [HDA NVidia], device 3: HDMI 0 [CM3271K] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3] Subdevices: 1/1 Subdevice #0: subdevice #0 ARECORD **** List of CAPTURE Hardware Devices **** !!Amixer output !!------------- !!-------Mixer controls for card NVidia Card sysdefault:0 'NVidia'/'HDA NVidia at 0x6c080000 irq 17' Mixer name : 'Nvidia GPU 93 HDMI/DP' Components : 'HDA:10de0093,80862090,00100100' Controls : 28 Simple ctrls : 4 Simple mixer control 'IEC958',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958',1 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958',2 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] Simple mixer control 'IEC958',3 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] !!Alsactl output !!-------------- --startcollapse-- state.NVidia { control.1 { iface CARD name 'HDMI/DP,pcm=3 Jack' value true comment { access read type BOOLEAN count 1 } } control.2 { iface MIXER name 'IEC958 Playback Con Mask' value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.3 { iface MIXER name 'IEC958 Playback Pro Mask' value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.4 { iface MIXER name 'IEC958 Playback Default' value '0482000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write locked' type IEC958 count 1 } } control.5 { iface MIXER name 'IEC958 Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.6 { iface PCM device 3 name ELD value '100008006d146001000200000000000004728d07434d333237314b0a20202020200907070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read volatile' type BYTES count 95 } } control.7 { iface CARD name 'HDMI/DP,pcm=7 Jack' value false comment { access read type BOOLEAN count 1 } } control.8 { iface MIXER name 'IEC958 Playback Con Mask' index 1 value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.9 { iface MIXER name 'IEC958 Playback Pro Mask' index 1 value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.10 { iface MIXER name 'IEC958 Playback Default' index 1 value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.11 { iface MIXER name 'IEC958 Playback Switch' index 1 value true comment { access 'read write' type BOOLEAN count 1 } } control.12 { iface PCM device 7 name ELD value '' comment { access 'read volatile' type BYTES count 0 } } control.13 { iface CARD name 'HDMI/DP,pcm=8 Jack' value false comment { access read type BOOLEAN count 1 } } control.14 { iface MIXER name 'IEC958 Playback Con Mask' index 2 value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.15 { iface MIXER name 'IEC958 Playback Pro Mask' index 2 value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.16 { iface MIXER name 'IEC958 Playback Default' index 2 value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.17 { iface MIXER name 'IEC958 Playback Switch' index 2 value true comment { access 'read write' type BOOLEAN count 1 } } control.18 { iface PCM device 8 name ELD value '' comment { access 'read volatile' type BYTES count 0 } } control.19 { iface CARD name 'HDMI/DP,pcm=9 Jack' value false comment { access read type BOOLEAN count 1 } } control.20 { iface MIXER name 'IEC958 Playback Con Mask' index 3 value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.21 { iface MIXER name 'IEC958 Playback Pro Mask' index 3 value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access read type IEC958 count 1 } } control.22 { iface MIXER name 'IEC958 Playback Default' index 3 value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' comment { access 'read write' type IEC958 count 1 } } control.23 { iface MIXER name 'IEC958 Playback Switch' index 3 value true comment { access 'read write' type BOOLEAN count 1 } } control.24 { iface PCM device 9 name ELD value '' comment { access 'read volatile' type BYTES count 0 } } control.25 { iface PCM device 3 name 'Playback Channel Map' value.0 3 value.1 4 value.2 0 value.3 0 value.4 0 value.5 0 value.6 0 value.7 0 comment { access 'read write' type INTEGER count 8 range '0 - 36' } } control.26 { iface PCM device 7 name 'Playback Channel Map' value.0 0 value.1 0 value.2 0 value.3 0 value.4 0 value.5 0 value.6 0 value.7 0 comment { access 'read write' type INTEGER count 8 range '0 - 36' } } control.27 { iface PCM device 8 name 'Playback Channel Map' value.0 0 value.1 0 value.2 0 value.3 0 value.4 0 value.5 0 value.6 0 value.7 0 comment { access 'read write' type INTEGER count 8 range '0 - 36' } } control.28 { iface PCM device 9 name 'Playback Channel Map' value.0 0 value.1 0 value.2 0 value.3 0 value.4 0 value.5 0 value.6 0 value.7 0 comment { access 'read write' type INTEGER count 8 range '0 - 36' } } } --endcollapse-- !!All Loaded Modules !!------------------ ac97_bus acpi_pad acpi_tad binfmt_misc bluetooth bnep btbcm btintel btmtk btrtl btusb cec cfg80211 coretemp crc32_pclmul crc32c_intel crct10dif_pclmul drm_buddy drm_display_helper ee1004 fat fuse ghash_clmulni_intel hid_logitech_hidpp i2c_i801 i2c_nvidia_gpu i2c_smbus i915 idma64 igc igen6_edac intel_cstate intel_powerclamp intel_rapl_common intel_rapl_msr intel_uncore intel_vsec ip6_tables ip_set ip_tables irqbypass iwlmvm iwlwifi joydev kvm kvm_intel libarc4 loop mac80211 mei mei_hdcp mei_me mei_pxp mmc_core mxm_wmi nf_conntrack nf_conntrack_broadcast nf_conntrack_netbios_ns nf_defrag_ipv4 nf_defrag_ipv6 nf_nat nf_reject_ipv4 nf_reject_ipv6 nf_tables nfnetlink nft_chain_nat nft_ct nft_fib nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_reject nft_reject_inet nvidia nvidia_drm nvidia_modeset nvme nvme_common nvme_core pcspkr pinctrl_tigerlake pmt_class pmt_telemetry polyval_clmulni polyval_generic qrtr rapl rfcomm rfkill rtsx_pci rtsx_pci_sdmmc serial_multi_instantiate sha512_ssse3 snd snd_compress snd_hda_codec snd_hda_codec_hdmi snd_hda_core snd_hda_ext_core snd_hda_intel snd_hrtimer snd_hwdep snd_intel_dspcfg snd_intel_sdw_acpi snd_pcm snd_pcm_dmaengine snd_seq snd_seq_device snd_seq_dummy snd_soc_acpi snd_soc_acpi_intel_match snd_soc_core snd_soc_hdac_hda snd_sof snd_sof_intel_hda snd_sof_intel_hda_common snd_sof_pci snd_sof_pci_intel_tgl snd_sof_utils snd_sof_xtensa_dsp snd_timer soundcore soundwire_bus soundwire_cadence soundwire_generic_allocation soundwire_intel sunrpc thunderbolt tps6598x ttm typec typec_ucsi ucsi_ccg uhid uinput vfat video wdat_wdt wmi wmi_bmof x86_pkg_temp_thermal zram !!Sysfs Files !!----------- /sys/class/sound/hwC0D0/init_pin_configs: 0x04 0x185600f0 0x05 0x185600f0 0x06 0x585600f0 0x07 0x585600f0 /sys/class/sound/hwC0D0/driver_pin_configs: /sys/class/sound/hwC0D0/user_pin_configs: /sys/class/sound/hwC0D0/init_verbs: /sys/class/sound/hwC0D0/hints: !!ALSA/HDA dmesg !!-------------- [ 5.813562] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915]) [ 5.817979] snd_hda_intel 0000:01:00.1: enabling device (0000 -> 0002) [ 5.818107] snd_hda_intel 0000:01:00.1: Disabling MSI [ 5.818111] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client [ 5.826710] intel_tcc_cooling: TCC Offset locked -- [ 5.840721] intel_rapl_common: Found RAPL domain psys [ 5.853843] input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:06.0/0000:01:00.1/sound/card0/input8 [ 5.853873] input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:06.0/0000:01:00.1/sound/card0/input9 [ 5.853894] input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:06.0/0000:01:00.1/sound/card0/input10 [ 5.853918] input: HDA NVidia HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:06.0/0000:01:00.1/sound/card0/input11 [ 5.872723] usbcore: registered new interface driver btusb -- [ 5.903032] Bluetooth: hci0: Firmware Version: 15-45.22 [ 5.958582] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002) [ 5.958747] sof-audio-pci-intel-tgl 0000:00:1f.3: error: the DSP is not enabled on this platform, aborting probe [ 5.958748] sof-audio-pci-intel-tgl 0000:00:1f.3: error: failed to probe DSP -19 [ 5.958749] sof-audio-pci-intel-tgl 0000:00:1f.3: error: sof_probe_work failed err: -19 [ 5.968489] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX201 160MHz, REV=0x351 !!Packages installed !!-------------------- alsa-lib-1.2.8-3.fc38.x86_64 alsa-utils-1.2.8-2.fc38.x86_64 alsa-tools-firmware-1.2.5-6.fc38.x86_64 alsa-sof-firmware-2.2.4-3.fc38.noarch alsa-tools-1.2.5-6.fc38.x86_64 alsa-sof-firmware-debug-2.2.4-3.fc38.noarch ```
Notably, there are some IEC958 mixer controls configured (visible in the logs) that belong to the GPU. Sound via HDMI is working, but this plays back through the display. My speakers do not have a display input.
There's also the possibility that—despite best efforts—I'm not correctly using the SOF driver. I don't fully understand Linux sound and particularly the changes that have come with pipewire. Thanks for any productive advice!
keywords IEC958 SPDIF NUC11PHKi7C NUC11PHKi7CAA NUC11 6.2.8