Bug 1772498 - Enable Sound Open Firmware (SOF) driver in Fedora for the recent Intel hardware
Summary: Enable Sound Open Firmware (SOF) driver in Fedora for the recent Intel hardware
Keywords:
Status: ASSIGNED
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jaroslav Kysela
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1759432 1773180 (view as bug list)
Depends On: 1750194
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-11-14 14:01 UTC by ryan@testtoast.com
Modified: 2020-02-17 13:48 UTC (History)
43 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:


Attachments (Terms of Use)
alsa-info from ThinkPad X1 Yoga Gen 4 20SA000KUS (39.75 KB, text/plain)
2019-12-02 23:03 UTC, Anders Kaseorg
no flags Details
alsainfo.sh with 5.4-alsa8 kernel from Lenovo X1Y4 20QF (40.71 KB, text/plain)
2019-12-03 10:26 UTC, ryan@testtoast.com
no flags Details
alsa-info.sh output for Lenovo Yoga C940 (50.22 KB, text/plain)
2019-12-03 15:21 UTC, Peter F. Patel-Schneider
no flags Details
HP Spectre - Alsa (42.05 KB, text/plain)
2019-12-15 11:02 UTC, dovla091
no flags Details
PA log with 5.5rc4 kernel (80.39 KB, text/plain)
2020-01-04 11:05 UTC, ryan@testtoast.com
no flags Details
dmesg output with firmware loading (3.85 KB, text/plain)
2020-01-28 11:33 UTC, Benjamin Berg
no flags Details
system log extract on successful SOF boot (9.37 KB, text/plain)
2020-02-11 17:49 UTC, Peter F. Patel-Schneider
no flags Details
system log extract on successful SOF boot (9.37 KB, text/plain)
2020-02-11 17:56 UTC, Peter F. Patel-Schneider
no flags Details
kernel-5.4.18-200.fc31.x86_64 - faild to initiate sound - syslog (10.97 KB, text/plain)
2020-02-11 19:23 UTC, m.frueauff
no flags Details
alsa-info.sh for unsuccessful boot on Lenovo Yoga C940 with kernel 5.4.17-200.fc31.x86_64+debug (7.47 KB, text/plain)
2020-02-12 12:09 UTC, Peter F. Patel-Schneider
no flags Details
alsa-info.sh for successful boot on Lenovo Yoga C940 with kernel 5.4.17-200.fc31.x86_64+debug (43.82 KB, text/plain)
2020-02-12 14:41 UTC, Peter F. Patel-Schneider
no flags Details

Description ryan@testtoast.com 2019-11-14 14:01:24 UTC
1. Please describe the problem:

Most new Intel laptops embed Xtensa or other audio DSPs now supported by the Sound Open Firmware project (sofproject.org). For example, the Lenovo Carbon X1 Gen 7 and Yoga Gen 4 require this new firmware and kernel/ALSA support to enable directional microphone support and proper speaker configuration. ALSA 1.2.1 (in FC31 updates-testing as of yesterday) adds the firmware, topology and UCM files required to enable this in user-space, however kernel support is not enabled. 

This support is included in the 5.3 kernel under the flag CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL. It is being developed at https://github.com/thesofproject/linux/tree/topic/sof-dev but is upstream in 5.3,


2. What is the Version-Release number of the kernel:

5.3.11-300.fc31.x86_64

3. Did it work previously in Fedora? If so, what kernel version did the issue
   *first* appear?  Old kernels are available for download at
   https://koji.fedoraproject.org/koji/packageinfo?packageID=8 :

Not with release kernels, but works well with corresponding ALSA support and 5.3/5.4 custom built kernel.


4. Can you reproduce this issue? If so, please provide the steps to reproduce
   the issue below:

Install ALSA 1.2.1 firmware/libs and check whether SOF firmware is loaded. dmesg shows:

[   31.796631] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[   31.840141] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver

Comment 1 Laura Abbott 2019-11-14 14:25:06 UTC
We had to turn it off due to regressions https://bugzilla.redhat.com/show_bug.cgi?id=1750194

We do intend to turn it back on when a fix comes in to 5.5

Comment 2 ryan@testtoast.com 2019-11-14 19:07:15 UTC
I guess that's my point, enabling this option previously broke sound precisely because the SOF firmware wasn't previously provided with ALSA, however as of ALSA 1.2.1 it is packaged in alsa-firmware. Reading between the lines of the upstream bug (https://bugzilla.kernel.org/show_bug.cgi?id=204237#c11) this was the issue for the Broadwell platform initially reported. 

Since I believe it is now possible to selectively enable SOF for Skylake+ platforms (and also I think the Broadwell bug has been fixed) it would be good to have those Kconfig changes upstream backported. Kernel 5.5 seems a long time to wait for the fixes, given there is a reasonable community running on these new laptops (https://forums.lenovo.com/t5/Ubuntu/Guide-X1-Carbon-7th-Generation-Ubuntu-compatability/td-p/4489823) who will have a bad out-of-box experience with no microphone support. I can roll my own kernel and enable support. but not everyone will be able to.

Comment 3 Laura Abbott 2019-11-14 19:22:17 UTC
According to one of the developers there's still more work to do https://bugzilla.redhat.com/show_bug.cgi?id=1750194#c13 . Given we've had one regression already I'd like to proceed carefully before turning it back on.

I mentioned 5.5 because I didn't expect patches to make it into 5.4 and the stable Fedora releases will be rebased to 5.4 sometime in December. We can bring in patches a) are queued up in the sound maintainer's tree for inclusion b) apply cleanly to 5.4 c) don't cause any regressions for other sound system.

Comment 4 ryan@testtoast.com 2019-11-14 19:38:25 UTC
I read his comments as more about the drivers being mutually exclusive (which I agree is a problem, but I imagine no-one with Cannon Lake or above HW is going to want to use the old SST driver and would think non-working sound is more of a problem) than the SOF driver not working. 

Thanks for the consideration of an earlier backport though, obviously you guys know what you're doing and avoiding regressions is also important. Happy to close this one for now if its covered in the other bug reports.

Comment 5 Jaroslav Kysela 2019-11-14 19:53:29 UTC
I am working on this. I prepared the user space (alsa-lib/alsa-ucm/alsa-firmware version 1.2.1) as the first step with the SOF firmware and the UCM configs. I will prepare also a patched kernel to get things working. But as Laura noted, we need some patches from 5.5 or backport a lot of patches from 5.4 + 5.5. It might make sense to wait for 5.4. I will keep you updated.

Comment 6 Jaroslav Kysela 2019-11-14 19:56:30 UTC
(In reply to ryan@testtoast.com from comment #4)
> I read his comments as more about the drivers being mutually exclusive (which I agree is a problem, but I imagine no-one with Cannon Lake or above HW is going to want to use the old SST driver and would think non-working sound is more of a problem) than the SOF driver not working. 

Yes, we need to enable only a set of Intel SOF drivers for the newer hardware. I just wanted to have an option to have all drivers in the kernel to let users select the right one, if there is no possibility to do it in an automatic way.

Comment 7 ryan@testtoast.com 2019-11-14 20:04:13 UTC
Thanks Jaroslav, glad to hear things are moving forward. The ALSA 1.2.1 user-space is working very well for me anyway with a 5.4-rc7 kernel.

Comment 8 Dan Aharon 2019-11-18 07:33:19 UTC
*** Bug 1773180 has been marked as a duplicate of this bug. ***

Comment 9 Jaroslav Kysela 2019-11-19 08:39:19 UTC
Okay, I will use this bug as the main tracking bug to enable the SOF driver in Fedora.

As noted, ALSA 1.2.1+ packages (alsa-ucm-1.2.1, alsa-firmware-1.2.1) are required to get things (pulseaudio) working.

The test kernel build is here: https://koji.fedoraproject.org/koji/taskinfo?taskID=39088821

It works on Lenovo Thinkpad Carbon X1 7th gen (both analog and HDMI outputs). Please, let me know the result of your tests.

Kernel configuration (5.4 kernel with 5.5 backports):

CONFIG_SND_SOC_AC97_CODEC=m
CONFIG_SND_SOC_ADAU1761_I2C=m
CONFIG_SND_SOC_ADAU1761_SPI=m
CONFIG_SND_SOC_ADAU7002=m
CONFIG_SND_SOC_AK5558=m
CONFIG_SND_SOC_AMD_ACP=m
CONFIG_SND_SOC_AMD_ACP3x=m
CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
CONFIG_SND_SOC_BD28623=m
CONFIG_SND_SOC_CROS_EC_CODEC=m
CONFIG_SND_SOC_CS35L34=m
CONFIG_SND_SOC_CS35L35=m
CONFIG_SND_SOC_CS35L36=m
CONFIG_SND_SOC_CS42L42=m
CONFIG_SND_SOC_CS43130=m
CONFIG_SND_SOC_CX2072X=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES8316=m
CONFIG_SND_SOC_ES8328_I2C=m
CONFIG_SND_SOC_ES8328=m
CONFIG_SND_SOC_ES8328_SPI=m
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_SOC_HDAC_HDA=m
CONFIG_SND_SOC_HDAC_HDMI=m
CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH=m
CONFIG_SND_SOC_INTEL_CML_H=m
CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP=m
CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
CONFIG_SND_SOC_MAX98373=m
CONFIG_SND_SOC_MAX9867=m
CONFIG_SND_SOC_MAX98927=m
CONFIG_SND_SOC_NAU8540=m
CONFIG_SND_SOC_NAU8824=m
CONFIG_SND_SOC_PCM1789_I2C=m
CONFIG_SND_SOC_PCM186X_I2C=m
CONFIG_SND_SOC_PCM186X_SPI=m working).

CONFIG_SND_SOC_PCM3060_I2C=m
CONFIG_SND_SOC_PCM3060_SPI=m
CONFIG_SND_SOC_RL6231=m
CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SOF_ACPI=m
CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
CONFIG_SND_SOC_SOF_HDA_LINK=y
CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
CONFIG_SND_SOC_SOF_PCI=m
CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_SSM4567=m
CONFIG_SND_SOC_TAS6424=m
CONFIG_SND_SOC_TDA7419=m
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TSCS42XX=m
CONFIG_SND_SOC_TS3A227E=m
CONFIG_SND_SOC_WM8524=m

Kernel patch (5.5 backports for 5.4): http://people.redhat.com/~jkysela/sof/fedora-sof-v1.patch

Comment 10 Jaroslav Kysela 2019-11-19 08:41:44 UTC
*** Bug 1759432 has been marked as a duplicate of this bug. ***

Comment 11 ryan@testtoast.com 2019-11-19 09:50:50 UTC
Thanks again Jaroslav, analog build works great without DMIC or other regressions on my X1 Yoga Gen 4. Will your patches apply cleanly to the 5.4 rc8 upstream?

Comment 12 Jaroslav Kysela 2019-11-19 15:42:55 UTC
Update: The new test kernel based on 5.4-rc8 is available here: https://koji.fedoraproject.org/koji/taskinfo?taskID=39096539

The patch: http://people.redhat.com/~jkysela/sof/fedora-sof-v1-5.4-rc8.patch
The old rc6 patch was renamed to: http://people.redhat.com/~jkysela/sof/fedora-sof-v1-5.4-rc6.patch

I'm building alsa-lib-1.2.1.1-1 package with fixes for other ucm hardware. The DMIC (SOF) hardware is not affected, but broadwell-rt286 users (SST drivers) are affected.

Comment 13 ryan@testtoast.com 2019-11-19 17:05:20 UTC
I haven't tested your new -rc8 kernel however applied to the upstream kernel and built with my usual kernel config and no regression compared to the -rc6 build.

Only other SOF issue is that Pulseaudio doesn't seem to support HW volume control with SOF currently.

Comment 14 David Ward 2019-11-20 05:39:04 UTC
(In reply to Jaroslav Kysela from comment #12)
> Update: The new test kernel based on 5.4-rc8 is available here:
> https://koji.fedoraproject.org/koji/taskinfo?taskID=39096539

With this test kernel, sound is still working on Broadwell with the Dell Latitude 7350.


Note: this is a separate issue, but microphone jack detection in ALSA does not work on this platform, and hasn't for a long time. Using alsamixer, on the broadwell-rt286 card I have to manually set ADC 0 Mux to "DMIC" (as specified in the "Mainmic" profile, versus the selected "Handset" profile). Then I also have to increase the "Mic" volume from 0% (versus the "AMIC" volume, set by default to 22%), even though the microphone level in PulseAudio is set at the maximum. At this point the microphone will work in addition to the speakers.

Comment 15 Jaroslav Kysela 2019-11-21 12:32:03 UTC
(In reply to David Ward from comment #14)
> ... Broadwell with the Dell Latitude 7350.
> 
> Note: this is a separate issue, but microphone jack detection in ALSA does
> not work on this platform, and hasn't for a long time. Using alsamixer, on
> the broadwell-rt286 card I have to manually set ADC 0 Mux to "DMIC" (as
> specified in the "Mainmic" profile, versus the selected "Handset" profile).
> Then I also have to increase the "Mic" volume from 0% (versus the "AMIC"
> volume, set by default to 22%), even though the microphone level in
> PulseAudio is set at the maximum. At this point the microphone will work in
> addition to the speakers.

Please, could you create a new issue for this (alsa-lib package)? Attach 'alsa-info.sh --no-upload' contents. 
It may be problem with the UCM configuration for your particular hw.

Comment 16 zogar5 2019-11-21 23:11:49 UTC
With your rc8 build sound is non-functional on my hardware.


[    5.793409] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    5.793702] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    5.793718] sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
[    5.794122] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
[    5.794148] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[    5.794416] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
[    5.794775] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    5.799105] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[    5.799109] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[    6.804322] sof-audio-pci 0000:00:1f.3: error: codec #2 probe error, ret: -5
[    6.808731] sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
[    6.808735] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[    9.877648] sof-audio-pci 0000:00:1f.3: error: cl_copy_fw: timeout HDA_DSP_SRAM_REG_ROM_STATUS read
[    9.878144] sof-audio-pci 0000:00:1f.3: error: load fw failed ret: -110
[    9.878161] sof-audio-pci 0000:00:1f.3: error: status = 0x0000002c panic = 0x00000000
[    9.878166] sof-audio-pci 0000:00:1f.3: error: failed to reset DSP
[    9.878167] sof-audio-pci 0000:00:1f.3: error: failed to boot DSP firmware -110
[    9.878167] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -110


upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.64
!!################################

!!Script ran on: Thu Nov 21 22:31:34 UTC 2019


!!Linux Distribution
!!------------------

Fedora release 31 (Thirty One) NAME=Fedora ID=fedora PRETTY_NAME="Fedora 31 (Workstation Edition)" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:31" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f31/system-administrators-guide/" SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=31 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=31 PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy" Fedora release 31 (Thirty One) Fedora release 31 (Thirty One)


!!DMI Information
!!---------------

Manufacturer:      Acer
Product Name:      Swift SF314-57G
Product Version:   V1.07
Firmware Version:  V1.07
Board Vendor:      IL
Board Name:        Floris_IL


!!ACPI Device Status Information
!!---------------

/sys/bus/acpi/devices/10251229:00/status 	 15
/sys/bus/acpi/devices/ACPI0003:00/status 	 15
/sys/bus/acpi/devices/ACPI000C:00/status 	 15
/sys/bus/acpi/devices/INT0E0C:00/status 	 15
/sys/bus/acpi/devices/INT33A1:00/status 	 15
/sys/bus/acpi/devices/INT33D5:00/status 	 15
/sys/bus/acpi/devices/INT3400:00/status 	 15
/sys/bus/acpi/devices/INT3403:00/status 	 15
/sys/bus/acpi/devices/INT3403:01/status 	 15
/sys/bus/acpi/devices/INT3403:02/status 	 15
/sys/bus/acpi/devices/INT3403:03/status 	 15
/sys/bus/acpi/devices/INT3403:04/status 	 15
/sys/bus/acpi/devices/INT3403:05/status 	 15
/sys/bus/acpi/devices/INT340E:00/status 	 15
/sys/bus/acpi/devices/INT3455:00/status 	 15
/sys/bus/acpi/devices/INT3F0D:00/status 	 15
/sys/bus/acpi/devices/INTC5000:00/status 	 15
/sys/bus/acpi/devices/LNXPOWER:00/status 	 1
/sys/bus/acpi/devices/LNXPOWER:01/status 	 1
/sys/bus/acpi/devices/LNXPOWER:02/status 	 1
/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/LNXVIDEO:01/status 	 15
/sys/bus/acpi/devices/MSFT0001:00/status 	 15
/sys/bus/acpi/devices/PNP0103:00/status 	 15
/sys/bus/acpi/devices/PNP0C02:02/status 	 3
/sys/bus/acpi/devices/PNP0C02:04/status 	 3
/sys/bus/acpi/devices/PNP0C09:00/status 	 15
/sys/bus/acpi/devices/PNP0C0A:00/status 	 31
/sys/bus/acpi/devices/PNP0C0D:00/status 	 15
/sys/bus/acpi/devices/PNP0C0E:00/status 	 11
/sys/bus/acpi/devices/PRP00001:00/status 	 11
/sys/bus/acpi/devices/SYNA7DAB:00/status 	 15
/sys/bus/acpi/devices/USBC000:00/status 	 15
/sys/bus/acpi/devices/device:19/status 	 15
/sys/bus/acpi/devices/device:8e/status 	 15
/sys/bus/acpi/devices/device:95/status 	 15
/sys/bus/acpi/devices/device:97/status 	 15


!!Kernel Information
!!------------------

Kernel release:    5.4.0-0.rc8.git0.1.alsa4.fc31.x86_64
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         x86_64
SMP Enabled:       Yes


!!ALSA Version
!!------------

Driver version:     k5.4.0-0.rc8.git0.1.alsa4.fc31.x86_64
Library version:    
Utilities version:  1.2.1


!!Loaded ALSA modules
!!-------------------



!!Sound Servers on this system
!!----------------------------

Pulseaudio:
      Installed - Yes (/usr/bin/pulseaudio)
      Running - Yes


!!Soundcards recognised by ALSA
!!-----------------------------

--- no soundcards ---


!!PCI Soundcards installed in the system
!!--------------------------------------

00:1f.3 Multimedia audio controller: Intel Corporation Device 34c8 (rev 30)


!!Advanced information - PCI Vendor/Device/Subsystem ID's
!!-------------------------------------------------------

00:1f.3 0401: 8086:34c8 (rev 30)
	Subsystem: 1025:1407


!!Loaded sound module options
!!---------------------------


!!ALSA Device nodes
!!-----------------

crw-rw----+ 1 root audio 116,  1 Nov 22 00:26 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Nov 22 00:26 /dev/snd/timer


!!ALSA configuration files
!!------------------------

!!System wide config file (/etc/asound.conf)

#
# Place your global alsa-lib configuration here...
#


!!Aplay/Arecord output
!!--------------------

APLAY

aplay: device_list:272: no soundcards found...

ARECORD

arecord: device_list:272: no soundcards found...

!!Amixer output
!!-------------


!!Alsactl output
!!--------------

--startcollapse--
--endcollapse--


!!All Loaded Modules
!!------------------

Module
rfcomm
ccm
nouveau
mxm_wmi
ttm
xt_CHECKSUM
xt_MASQUERADE
nf_nat_tftp
nf_conntrack_tftp
tun
bridge
stp
llc
nf_conntrack_netbios_ns
nf_conntrack_broadcast
xt_CT
ip6t_REJECT
nf_reject_ipv6
ip6t_rpfilter
ipt_REJECT
nf_reject_ipv4
xt_conntrack
ebtable_nat
ebtable_broute
ip6table_nat
ip6table_mangle
ip6table_raw
ip6table_security
iptable_nat
nf_nat
iptable_mangle
iptable_raw
iptable_security
nf_conntrack
nf_defrag_ipv6
nf_defrag_ipv4
ip_set
nfnetlink
ebtable_filter
ebtables
ip6table_filter
ip6_tables
iptable_filter
cmac
bnep
sunrpc
vfat
fat
btusb
btrtl
btbcm
btintel
uvcvideo
bluetooth
videobuf2_vmalloc
videobuf2_memops
videobuf2_v4l2
videobuf2_common
videodev
mc
ecdh_generic
ecc
snd_soc_dmic
snd_sof_pci
snd_sof_intel_byt
snd_sof_intel_ipc
snd_sof_xtensa_dsp
snd_sof_intel_hda_common
snd_soc_hdac_hda
snd_sof_intel_hda
snd_sof
x86_pkg_temp_thermal
snd_hda_ext_core
intel_powerclamp
snd_soc_acpi_intel_match
coretemp
snd_soc_acpi
kvm_intel
snd_soc_core
snd_compress
joydev
ac97_bus
kvm
snd_pcm_dmaengine
ledtrig_audio
snd_hda_intel
irqbypass
snd_intel_dspcfg
spi_pxa2xx_platform
crct10dif_pclmul
snd_hda_codec
dw_dmac
iTCO_wdt
crc32_pclmul
mei_hdcp
iwlmvm
hid_multitouch
iTCO_vendor_support
intel_rapl_msr
snd_hda_core
ghash_clmulni_intel
snd_hwdep
intel_cstate
mac80211
intel_uncore
snd_seq
snd_seq_device
intel_rapl_perf
snd_pcm
libarc4
pcspkr
snd_timer
intel_wmi_thunderbolt
iwlwifi
snd
acer_wmi
wmi_bmof
soundcore
i2c_i801
cfg80211
mei_me
mei
ucsi_acpi
processor_thermal_device
intel_lpss_pci
typec_ucsi
intel_rapl_common
intel_lpss
thunderbolt
rfkill
intel_soc_dts_iosf
typec
idma64
int3403_thermal
acer_wireless
int340x_thermal_zone
intel_hid
int3400_thermal
sparse_keymap
acpi_thermal_rel
acpi_pad
ip_tables
btrfs
libcrc32c
xor
zstd_decompress
zstd_compress
raid6_pq
i915
i2c_algo_bit
drm_kms_helper
drm
nvme
crc32c_intel
nvme_core
serio_raw
i2c_hid
wmi
video
pinctrl_icelake
pinctrl_intel
fuse


!!ALSA/HDA dmesg
!!--------------

[    0.273224] ACPI: Added _OSI(Linux-Dell-Video)
[    0.273224] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[    0.273224] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
--
[    2.467455] pci 0000:2b:00.0: reg 0x30: [mem 0xfff80000-0xffffffff pref]
[    2.467473] pci 0000:2b:00.0: Enabling HDA controller
[    2.467668] pci 0000:00:1c.0: PCI bridge to [bus 2b]
--
[    5.539892] iwlwifi 0000:00:14.3: Allocated 0x00400000 bytes for firmware monitor.
[    5.571341] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    5.571530] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    5.602312] input: SYNA7DAB:00 06CB:CD40 Mouse as /devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-13/i2c-SYNA7DAB:00/0018:06CB:CD40.0003/input/input19
--
[    5.794775] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    5.799105] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[    5.799109] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[    6.387060] mc: Linux media interface: v0.10
--
[    8.305752] virbr0: port 1(virbr0-nic) entered disabled state
[    9.877648] sof-audio-pci 0000:00:1f.3: error: cl_copy_fw: timeout HDA_DSP_SRAM_REG_ROM_STATUS read
[    9.878144] sof-audio-pci 0000:00:1f.3: error: load fw failed ret: -110


**************************** alsa info with stock 5.3.11 kernel

upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.64
!!################################

!!Script ran on: Thu Nov 21 22:53:34 UTC 2019


!!Linux Distribution
!!------------------

Fedora release 31 (Thirty One) NAME=Fedora ID=fedora PRETTY_NAME="Fedora 31 (Workstation Edition)" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:31" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f31/system-administrators-guide/" SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=31 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=31 PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy" Fedora release 31 (Thirty One) Fedora release 31 (Thirty One)


!!DMI Information
!!---------------

Manufacturer:      Acer
Product Name:      Swift SF314-57G
Product Version:   V1.07
Firmware Version:  V1.07
Board Vendor:      IL
Board Name:        Floris_IL


!!ACPI Device Status Information
!!---------------

/sys/bus/acpi/devices/10251229:00/status 	 15
/sys/bus/acpi/devices/ACPI0003:00/status 	 15
/sys/bus/acpi/devices/ACPI000C:00/status 	 15
/sys/bus/acpi/devices/INT0E0C:00/status 	 15
/sys/bus/acpi/devices/INT33A1:00/status 	 15
/sys/bus/acpi/devices/INT33D5:00/status 	 15
/sys/bus/acpi/devices/INT3400:00/status 	 15
/sys/bus/acpi/devices/INT3403:00/status 	 15
/sys/bus/acpi/devices/INT3403:01/status 	 15
/sys/bus/acpi/devices/INT3403:02/status 	 15
/sys/bus/acpi/devices/INT3403:03/status 	 15
/sys/bus/acpi/devices/INT3403:04/status 	 15
/sys/bus/acpi/devices/INT3403:05/status 	 15
/sys/bus/acpi/devices/INT340E:00/status 	 15
/sys/bus/acpi/devices/INT3455:00/status 	 15
/sys/bus/acpi/devices/INT3F0D:00/status 	 15
/sys/bus/acpi/devices/INTC5000:00/status 	 15
/sys/bus/acpi/devices/LNXPOWER:00/status 	 1
/sys/bus/acpi/devices/LNXPOWER:01/status 	 1
/sys/bus/acpi/devices/LNXPOWER:02/status 	 1
/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/LNXVIDEO:01/status 	 15
/sys/bus/acpi/devices/MSFT0001:00/status 	 15
/sys/bus/acpi/devices/PNP0103:00/status 	 15
/sys/bus/acpi/devices/PNP0C02:02/status 	 3
/sys/bus/acpi/devices/PNP0C02:04/status 	 3
/sys/bus/acpi/devices/PNP0C09:00/status 	 15
/sys/bus/acpi/devices/PNP0C0A:00/status 	 31
/sys/bus/acpi/devices/PNP0C0D:00/status 	 15
/sys/bus/acpi/devices/PNP0C0E:00/status 	 11
/sys/bus/acpi/devices/PRP00001:00/status 	 11
/sys/bus/acpi/devices/SYNA7DAB:00/status 	 15
/sys/bus/acpi/devices/USBC000:00/status 	 15
/sys/bus/acpi/devices/device:19/status 	 15
/sys/bus/acpi/devices/device:8e/status 	 15
/sys/bus/acpi/devices/device:95/status 	 15
/sys/bus/acpi/devices/device:97/status 	 15


!!Kernel Information
!!------------------

Kernel release:    5.3.11-300.fc31.x86_64
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         x86_64
SMP Enabled:       Yes


!!ALSA Version
!!------------

Driver version:     k5.3.11-300.fc31.x86_64
Library version:    
Utilities version:  1.2.1


!!Loaded ALSA modules
!!-------------------

snd_hda_intel


!!Sound Servers on this system
!!----------------------------

Pulseaudio:
      Installed - Yes (/usr/bin/pulseaudio)
      Running - Yes


!!Soundcards recognised by ALSA
!!-----------------------------

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0x601d160000 irq 149


!!PCI Soundcards installed in the system
!!--------------------------------------

00:1f.3 Multimedia audio controller: Intel Corporation Device 34c8 (rev 30)


!!Advanced information - PCI Vendor/Device/Subsystem ID's
!!-------------------------------------------------------

00:1f.3 0401: 8086:34c8 (rev 30)
	Subsystem: 1025:1407


!!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
	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 : 0
	power_save_controller : N
	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


!!HDA-Intel Codec information
!!---------------------------
--startcollapse--

Codec: Conexant Generic
Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x14f120d0
Subsystem Id: 0x10251407
Revision Id: 0x100001
No Modem Function Group found
Default PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
Default Amp-In caps: N/A
Default Amp-Out caps: N/A
State of AFG node 0x01:
  Power states:  D0 D1 D2 D3 D3cold S3D3cold CLKSTOP EPSS
  Power: setting=D0, actual=D0
GPIO: io=8, o=0, i=0, unsolicited=1, wake=1
  IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[4]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[5]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[6]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
  IO[7]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
Node 0x10 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L
  Control: name="Headphone Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Headphone Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Device: name="Generic Analog", type="Audio", device=0
  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-Out vals:  [0x80 0x80]
  Converter: stream=1, channel=0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x11 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L
  Control: name="Speaker Playback Volume", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Control: name="Speaker Playback Switch", index=0, device=0
    ControlAmp: chs=3, dir=Out, idx=0, ofs=0
  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-Out vals:  [0x3e 0x3e]
  Converter: stream=1, channel=0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x12 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
  Amp-Out caps: ofs=0x07, nsteps=0x07, stepsize=0x0f, mute=0
  Amp-Out vals:  [0x03]
Node 0x13 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L
  Control: name="Capture Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=1, ofs=0
  Control: name="Capture Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=1, ofs=0
  Device: name="Generic Analog", type="Audio", device=0
  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1
  Amp-In vals:  [0x80 0x80] [0x50 0x50] [0x80 0x80] [0x80 0x80] [0x80 0x80]
  Converter: stream=1, channel=0
  SDI-Select: 0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 5
     0x18 0x19* 0x1a 0x15 0x1f
Node 0x14 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L
  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1
  Amp-In vals:  [0x4a 0x4a] [0x4a 0x4a] [0x4a 0x4a]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 3
     0x1a* 0x1f 0x15
Node 0x15 [Vendor Defined Widget] wcaps 0xf0050b: Stereo Amp-In
  Amp-In caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-In vals:  [0x4a 0x4a] [0x4a 0x4a]
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x10* 0x11
Node 0x16 [Pin Complex] wcaps 0x400581: Stereo
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x04211040: [Jack] HP Out at Ext Right
    Conn = 1/8, Color = Black
    DefAssociation = 0x4, Sequence = 0x0
  Pin-ctls: 0xc0: OUT HP
  Unsolicited: tag=01, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x10* 0x11
Node 0x17 [Pin Complex] wcaps 0x400501: Stereo
  Pincap 0x00010010: OUT EAPD
  EAPD 0x2: EAPD
  Pin Default 0x91170110: [Fixed] Speaker at Int Rear
    Conn = Analog, Color = Unknown
    DefAssociation = 0x1, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x10 0x11*
Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00001324: IN Detect
    Vref caps: HIZ 50 80
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00: VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Control: name="Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x03 0x03]
  Pincap 0x00001324: IN Detect
    Vref caps: HIZ 50 80
  Pin Default 0x04a11030: [Jack] Mic at Ext Right
    Conn = 1/8, Color = Black
    DefAssociation = 0x3, Sequence = 0x0
  Pin-ctls: 0x24: IN VREF_80
  Unsolicited: tag=02, enabled=1
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1a [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000024: IN Detect
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1b [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
Node 0x1d [Pin Complex] wcaps 0x400581: Stereo
  Pincap 0x0001001c: OUT HP EAPD Detect
  EAPD 0x2: EAPD
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, 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
     0x22
Node 0x1e [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000024: IN Detect
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x1f [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x20 [Audio Output] wcaps 0x611: Stereo Digital
  Converter: stream=0, channel=0
  Digital:
  Digital category: 0x0
  IEC Coding Type: 0x0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xe]: 16 20 24
    formats [0x5]: PCM AC3
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x21 [Pin Complex] wcaps 0x400701: Stereo Digital
  Pincap 0x00000010: OUT
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x20
Node 0x22 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L
  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-Out vals:  [0x4a 0x4a]
  Converter: stream=0, channel=0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x23 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L
  Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-Out vals:  [0x4a 0x4a]
  Converter: stream=0, channel=0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x24 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L
  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1
  Amp-In vals:  [0x4a 0x4a]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x1e
Node 0x25 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L
  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1
  Amp-In vals:  [0x4a 0x4a]
  Converter: stream=0, channel=0
  SDI-Select: 0
  PCM:
    rates [0x540]: 48000 96000 192000
    bits [0xa]: 16 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x27
Node 0x26 [Pin Complex] wcaps 0x400501: Stereo
  Pincap 0x00010010: OUT EAPD
  EAPD 0x2: EAPD
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x40: OUT
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 1
     0x23
Node 0x27 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x2f, mute=0
  Amp-In vals:  [0x00 0x00]
  Pincap 0x00000020: IN
  Pin Default 0x40f001f0: [N/A] Other at Ext N/A
    Conn = Unknown, Color = Unknown
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x00:
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
Node 0x28 [Vendor Defined Widget] wcaps 0xf00000: Mono
Codec: Intel Icelake HDMI
Address: 2
AFG Function Id: 0x1 (unsol 0)
Vendor Id: 0x8086280f
Subsystem Id: 0x80860101
Revision Id: 0x100000
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 D3 CLKSTOP EPSS
  Power: setting=D0, actual=D0, Clock-stop-OK
GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, 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
  In-driver Connection: 1
     0x03
Node 0x05 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, 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 0x06 [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
  In-driver Connection: 2
     0x03 0x05
Node 0x07 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, 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 0x08 [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
  In-driver Connection: 3
     0x03 0x05 0x07
Node 0x09 [Audio Output] wcaps 0x6611: 8-Channels Digital
  Converter: stream=0, 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 0x0a [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
  In-driver Connection: 4
     0x03 0x05 0x07 0x09
Node 0x0b [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
  In-driver Connection: 4
     0x03 0x05 0x07 0x09
--endcollapse--


!!ALSA Device nodes
!!-----------------

crw-rw----+ 1 root audio 116, 13 Nov 22 00:53 /dev/snd/controlC0
crw-rw----+ 1 root audio 116, 11 Nov 22 00:53 /dev/snd/hwC0D0
crw-rw----+ 1 root audio 116, 12 Nov 22 00:53 /dev/snd/hwC0D2
crw-rw----+ 1 root audio 116,  3 Nov 22 00:53 /dev/snd/pcmC0D0c
crw-rw----+ 1 root audio 116,  2 Nov 22 00:53 /dev/snd/pcmC0D0p
crw-rw----+ 1 root audio 116,  8 Nov 22 00:53 /dev/snd/pcmC0D10p
crw-rw----+ 1 root audio 116,  9 Nov 22 00:53 /dev/snd/pcmC0D11p
crw-rw----+ 1 root audio 116, 10 Nov 22 00:53 /dev/snd/pcmC0D12p
crw-rw----+ 1 root audio 116,  4 Nov 22 00:53 /dev/snd/pcmC0D3p
crw-rw----+ 1 root audio 116,  5 Nov 22 00:53 /dev/snd/pcmC0D7p
crw-rw----+ 1 root audio 116,  6 Nov 22 00:53 /dev/snd/pcmC0D8p
crw-rw----+ 1 root audio 116,  7 Nov 22 00:53 /dev/snd/pcmC0D9p
crw-rw----+ 1 root audio 116,  1 Nov 22 00:53 /dev/snd/seq
crw-rw----+ 1 root audio 116, 33 Nov 22 00:53 /dev/snd/timer

/dev/snd/by-path:
total 0
drwxr-xr-x. 2 root root  60 Nov 22 00:53 .
drwxr-xr-x. 3 root root 340 Nov 22 00:53 ..
lrwxrwxrwx. 1 root root  12 Nov 22 00:53 pci-0000:00:1f.3 -> ../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: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 11: HDMI 5 [HDMI 5]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 12: HDMI 6 [HDMI 6]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: Generic Analog [Generic Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

!!Amixer output
!!-------------

!!-------Mixer controls for card 0 [PCH]

Card hw:0 'PCH'/'HDA Intel PCH at 0x601d160000 irq 149'
  Mixer name	: 'Conexant Generic'
  Components	: 'HDA:14f120d0,10251407,00100001 HDA:8086280f,80860101,00100000'
  Controls      : 65
  Simple ctrls  : 14
Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 74
  Mono: Playback 62 [84%] [-12.00dB] [on]
Simple mixer control 'Headphone',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 74
  Mono:
  Front Left: Playback 0 [0%] [-74.00dB] [off]
  Front Right: Playback 0 [0%] [-74.00dB] [off]
Simple mixer control 'Speaker',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 74
  Mono:
  Front Left: Playback 74 [100%] [0.00dB] [on]
  Front Right: Playback 74 [100%] [0.00dB] [on]
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 255 [100%] [0.00dB]
  Front Right: Playback 255 [100%] [0.00dB]
Simple mixer control 'Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 3 [100%] [36.00dB]
  Front Right: 3 [100%] [36.00dB]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
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]
Simple mixer control 'IEC958',4
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',5
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',6
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 80
  Front Left: Capture 80 [100%] [6.00dB] [on]
  Front Right: Capture 80 [100%] [6.00dB] [on]
Simple mixer control 'Auto-Mute Mode',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Enabled'


!!Alsactl output
!!--------------

--startcollapse--
state.PCH {
	control.1 {
		iface MIXER
		name 'Headphone Playback Volume'
		value.0 0
		value.1 0
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 74'
			dbmin -7400
			dbmax 0
			dbvalue.0 -7400
			dbvalue.1 -7400
		}
	}
	control.2 {
		iface MIXER
		name 'Headphone Playback Switch'
		value.0 false
		value.1 false
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.3 {
		iface MIXER
		name 'Speaker Playback Volume'
		value.0 74
		value.1 74
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 74'
			dbmin -7400
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
	control.4 {
		iface MIXER
		name 'Speaker Playback Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.5 {
		iface MIXER
		name 'Auto-Mute Mode'
		value Enabled
		comment {
			access 'read write'
			type ENUMERATED
			count 1
			item.0 Disabled
			item.1 Enabled
		}
	}
	control.6 {
		iface MIXER
		name 'Capture Volume'
		value.0 80
		value.1 80
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 80'
			dbmin -7400
			dbmax 600
			dbvalue.0 600
			dbvalue.1 600
		}
	}
	control.7 {
		iface MIXER
		name 'Capture Switch'
		value.0 true
		value.1 true
		comment {
			access 'read write'
			type BOOLEAN
			count 2
		}
	}
	control.8 {
		iface MIXER
		name 'Mic Boost Volume'
		value.0 3
		value.1 3
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 3'
			dbmin 0
			dbmax 3600
			dbvalue.0 3600
			dbvalue.1 3600
		}
	}
	control.9 {
		iface MIXER
		name 'Master Playback Volume'
		value 62
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '0 - 74'
			dbmin -7400
			dbmax 0
			dbvalue.0 -1200
		}
	}
	control.10 {
		iface MIXER
		name 'Master Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.11 {
		iface CARD
		name 'Mic Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.12 {
		iface CARD
		name 'Headphone Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.13 {
		iface CARD
		name 'Speaker Phantom Jack'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.14 {
		iface PCM
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.15 {
		iface PCM
		name 'Capture Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.16 {
		iface CARD
		name 'HDMI/DP,pcm=3 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.17 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.18 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.19 {
		iface MIXER
		name 'IEC958 Playback Default'
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.20 {
		iface MIXER
		name 'IEC958 Playback Switch'
		value false
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.21 {
		iface PCM
		device 3
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.22 {
		iface CARD
		name 'HDMI/DP,pcm=7 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.23 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 1
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.24 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 1
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.25 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 1
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.26 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 1
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.27 {
		iface PCM
		device 7
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.28 {
		iface CARD
		name 'HDMI/DP,pcm=8 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.29 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 2
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.30 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 2
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.31 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 2
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.32 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 2
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.33 {
		iface PCM
		device 8
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.34 {
		iface CARD
		name 'HDMI/DP,pcm=9 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.35 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 3
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.36 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 3
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.37 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 3
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.38 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 3
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.39 {
		iface PCM
		device 9
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.40 {
		iface CARD
		name 'HDMI/DP,pcm=10 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.41 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 4
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.42 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 4
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.43 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 4
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.44 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 4
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.45 {
		iface PCM
		device 10
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.46 {
		iface CARD
		name 'HDMI/DP,pcm=11 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.47 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 5
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.48 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 5
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.49 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 5
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.50 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 5
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.51 {
		iface PCM
		device 11
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.52 {
		iface CARD
		name 'HDMI/DP,pcm=12 Jack'
		value false
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
	control.53 {
		iface MIXER
		name 'IEC958 Playback Con Mask'
		index 6
		value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.54 {
		iface MIXER
		name 'IEC958 Playback Pro Mask'
		index 6
		value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access read
			type IEC958
			count 1
		}
	}
	control.55 {
		iface MIXER
		name 'IEC958 Playback Default'
		index 6
		value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
		comment {
			access 'read write'
			type IEC958
			count 1
		}
	}
	control.56 {
		iface MIXER
		name 'IEC958 Playback Switch'
		index 6
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.57 {
		iface PCM
		device 12
		name ELD
		value ''
		comment {
			access 'read volatile'
			type BYTES
			count 0
		}
	}
	control.58 {
		iface PCM
		device 3
		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.59 {
		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.60 {
		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.61 {
		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'
		}
	}
	control.62 {
		iface PCM
		device 10
		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.63 {
		iface PCM
		device 11
		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.64 {
		iface PCM
		device 12
		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.65 {
		iface MIXER
		name 'PCM Playback Volume'
		value.0 255
		value.1 255
		comment {
			access 'read write user'
			type INTEGER
			count 2
			range '0 - 255'
			tlv '0000000100000008ffffec1400000014'
			dbmin -5100
			dbmax 0
			dbvalue.0 0
			dbvalue.1 0
		}
	}
}
--endcollapse--


!!All Loaded Modules
!!------------------

Module
rfcomm
ccm
xt_CHECKSUM
xt_MASQUERADE
nf_nat_tftp
nf_conntrack_tftp
tun
bridge
stp
llc
nf_conntrack_netbios_ns
nf_conntrack_broadcast
xt_CT
ip6t_REJECT
nf_reject_ipv6
ip6t_rpfilter
ipt_REJECT
nf_reject_ipv4
xt_conntrack
ebtable_nat
ebtable_broute
ip6table_nat
ip6table_mangle
ip6table_raw
ip6table_security
iptable_nat
nf_nat
iptable_mangle
iptable_raw
iptable_security
nf_conntrack
nf_defrag_ipv6
nf_defrag_ipv4
ip_set
nfnetlink
ebtable_filter
ebtables
ip6table_filter
ip6_tables
iptable_filter
cmac
bnep
sunrpc
vfat
fat
btusb
btrtl
uvcvideo
btbcm
btintel
bluetooth
videobuf2_vmalloc
videobuf2_memops
videobuf2_v4l2
videobuf2_common
videodev
mc
ecdh_generic
ecc
intel_rapl_msr
intel_rapl_common
x86_pkg_temp_thermal
intel_powerclamp
snd_hda_codec_hdmi
coretemp
kvm_intel
nvidia_drm
snd_hda_codec_generic
ledtrig_audio
nvidia_modeset
kvm
nvidia_uvm
snd_hda_intel
joydev
snd_hda_codec
irqbypass
iTCO_wdt
spi_pxa2xx_platform
mei_hdcp
iTCO_vendor_support
snd_hda_core
crct10dif_pclmul
dw_dmac
hid_multitouch
crc32_pclmul
snd_hwdep
ghash_clmulni_intel
snd_seq
iwlmvm
intel_cstate
snd_seq_device
intel_uncore
snd_pcm
mac80211
snd_timer
intel_rapl_perf
intel_wmi_thunderbolt
libarc4
snd
iwlwifi
acer_wmi
wmi_bmof
soundcore
i2c_i801
nvidia
mei_me
cfg80211
ucsi_acpi
idma64
typec_ucsi
ipmi_devintf
mei
intel_lpss_pci
ipmi_msghandler
intel_lpss
rfkill
typec
int3403_thermal
acer_wireless
int340x_thermal_zone
int3400_thermal
intel_hid
acpi_thermal_rel
acpi_pad
sparse_keymap
ip_tables
btrfs
libcrc32c
xor
zstd_decompress
zstd_compress
raid6_pq
i915
i2c_algo_bit
drm_kms_helper
nvme
drm
crc32c_intel
nvme_core
serio_raw
i2c_hid
pinctrl_icelake
wmi
video
pinctrl_intel
fuse


!!Sysfs Files
!!-----------

/sys/class/sound/hwC0D0/init_pin_configs:
0x16 0x04211040
0x17 0x91170110
0x18 0x40f001f0
0x19 0x04a11030
0x1a 0x40f001f0
0x1d 0x40f001f0
0x1e 0x40f001f0
0x1f 0x40f001f0
0x21 0x40f001f0
0x26 0x40f001f0
0x27 0x40f001f0

/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:

/sys/class/sound/hwC0D2/init_pin_configs:
0x04 0x18560010
0x06 0x18560010
0x08 0x18560010
0x0a 0x18560010
0x0b 0x18560010

/sys/class/sound/hwC0D2/driver_pin_configs:

/sys/class/sound/hwC0D2/user_pin_configs:

/sys/class/sound/hwC0D2/init_verbs:

/sys/class/sound/hwC0D2/hints:


!!ALSA/HDA dmesg
!!--------------

[    0.271294] ACPI: Added _OSI(Linux-Dell-Video)
[    0.271294] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[    0.271294] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
--
[    2.466320] pci 0000:2b:00.0: reg 0x30: [mem 0xfff80000-0xffffffff pref]
[    2.466339] pci 0000:2b:00.0: Enabling HDA controller
[    2.466530] pci 0000:00:1c.0: PCI bridge to [bus 2b]
--
[    5.457479] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  440.31  Sun Oct 27 02:19:35 UTC 2019
[    5.479037] snd_hda_intel 0000:00:1f.3: enabling device (0000 -> 0002)
[    5.481193] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    5.507835] nvidia-uvm: Loaded the UVM driver, major device number 234.
--
[    5.569310] [drm] [nvidia-drm] [GPU ID 0x00002b00] Loading driver
[    5.569449] snd_hda_codec_generic hdaudioC0D0: autoconfig for Generic: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[    5.569451] snd_hda_codec_generic hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    5.569452] snd_hda_codec_generic hdaudioC0D0:    hp_outs=1 (0x16/0x0/0x0/0x0/0x0)
[    5.569453] snd_hda_codec_generic hdaudioC0D0:    mono: mono_out=0x0
[    5.569453] snd_hda_codec_generic hdaudioC0D0:    inputs:
[    5.569454] snd_hda_codec_generic hdaudioC0D0:      Mic=0x19
[    5.588893] ACPI Warning: \_SB.PCI0.RP05.PXSX._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20190703/nsarguments-59)
[    5.609289] nvidia 0000:2b:00.0: DMAR: 32bit DMA uses non-identity mapping
[    5.611553] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input21
[    5.611602] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input22
[    5.611644] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input23
[    5.611680] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input24
[    5.611717] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input25
[    5.611755] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input26
[    5.611796] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input27
[    5.611839] input: HDA Intel PCH HDMI/DP,pcm=11 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input28
[    5.611878] input: HDA Intel PCH HDMI/DP,pcm=12 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input29
[    6.010217] intel_rapl_common: Found RAPL domain package

Comment 17 Jaroslav Kysela 2019-11-21 23:46:16 UTC
zogar5@gmail.com : Please, try to symlink the gcc version of the cnl firmware (/usr/lib/firmware/intel/sof/gcc/sof-cnl.ri -> /usr/lib/firmware/intel/sof/sof-cnl.ri) and reboot. It seems that the signed firmware using the Intel key is not accepted on your hardware.

Comment 18 m.frueauff 2019-11-22 10:11:30 UTC
Hi

I cave Lenovo X1 7th gen and experiencing the same sound issue.
With new rc-8 kernel, and SOF drivers, my microphone seems to be detected, however, sound recorded by it, is just a noise.

[barni@BaCarbon ~]$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 1: HDA Digital (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 6: DMIC32 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 7: DMIC16 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0



[barni@BaCarbon ~]$ dmesg |grep SOF
[   24.671987] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   24.809232] snd_soc_skl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   24.961318] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver


Regs
Marek

Comment 19 zogar5 2019-11-22 14:48:01 UTC
(In reply to Jaroslav Kysela from comment #17)
> zogar5@gmail.com : Please, try to symlink the gcc version of the cnl
> firmware (/usr/lib/firmware/intel/sof/gcc/sof-cnl.ri ->
> /usr/lib/firmware/intel/sof/sof-cnl.ri) and reboot. It seems that the signed
> firmware using the Intel key is not accepted on your hardware.

Well, this didn't do the trick, and the output is the same.

Comment 20 Jaroslav Kysela 2019-11-22 21:01:53 UTC
(In reply to m.frueauff from comment #18)
> I cave Lenovo X1 7th gen and experiencing the same sound issue.
> With new rc-8 kernel, and SOF drivers, my microphone seems to be detected,
> however, sound recorded by it, is just a noise.

Workaround:

1) edit /usr/share/alsa/ucm2/sof-hda-dsp/HiFi.conf , change CaptureChannels "4" in SectionDevice."DigitalMic" (at the end)
2) on command line: amixer -c 0 set 'PGA10.0 10 Master' 100%
3) reboot machine

I am working on a more user friendly solution. Thank you for the test.

Comment 21 Jaroslav Kysela 2019-11-22 21:03:05 UTC
(In reply to zogar5 from comment #19)
> (In reply to Jaroslav Kysela from comment #17)
> > zogar5@gmail.com : Please, try to symlink the gcc version of the cnl
> > firmware (/usr/lib/firmware/intel/sof/gcc/sof-cnl.ri ->
> > /usr/lib/firmware/intel/sof/sof-cnl.ri) and reboot. It seems that the signed
> > firmware using the Intel key is not accepted on your hardware.
> 
> Well, this didn't do the trick, and the output is the same.

Unfortunately, it looks like a firmware issue. I created a ticket in the SOF project: https://github.com/thesofproject/sof/issues/2126

Comment 22 Peter F. Patel-Schneider 2019-11-24 18:06:07 UTC
I'm trying this on a Lenovo Yoga C940, which has a digital far-field mic pair.  But something is going wrong - there is no /usr/lib/firmware/intel/sof directory.  Presumably I'm not loading enough RPMs, but what am I missing? 

I downloaded several RPMs from the koji build and installed them as

sudo dnf install kernel-5.4.0-0.rc8.git0.1.alsa4.fc31.x86_64.rpm kernel-core-5.4.0-0.rc8.git0.1.alsa4.fc31.x86_64.rpm kernel-modules-5.4.0-0.rc8.git0.1.alsa4.fc31.x86_64.rpm
sudo dnf install kernel-modules-extra-5.4.0-0.rc8.git0.1.alsa4.fc31.x86_64.rpm kernel-modules-internal-5.4.0-0.rc8.git0.1.alsa4.fc31.x86_64.rpm 

What I am seeing is
idefix ~> dmesg | grep sof
...
[    4.379763] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    4.379906] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    4.379918] sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
[    4.380099] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
[    4.380111] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[    4.380261] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
[    4.380448] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    4.384322] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[    4.384324] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[    5.438200] sof-audio-pci 0000:00:1f.3: error: codec #2 probe error, ret: -5
[    5.438416] sof-audio-pci 0000:00:1f.3: Direct firmware load for intel/sof/sof-icl.ri failed with error -2
[    5.438418] sof-audio-pci 0000:00:1f.3: error: request firmware intel/sof/sof-icl.ri failed err: -2
[    5.438418] sof-audio-pci 0000:00:1f.3: error: failed to load DSP firmware -2
[    5.438419] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -2

Comment 23 Jaroslav Kysela 2019-11-24 18:16:21 UTC
Peter: See comment 9. Install recent 'alsa-ucm' and 'alsa-firmware' packages version 1.2.1.1.

Comment 24 Peter F. Patel-Schneider 2019-11-24 19:35:39 UTC
I ended up with alsa-firmware-1.2.1 and alsa-ucm-1.2.1.1.
I experienced the same problem as zogar5 in Comment 16 so I did the linking suggested in Comment 17. 
 
That didn't work.  The error log is very similar to what zogar5 is experiencing:

[    4.286091] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    4.286213] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    4.286225] sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
[    4.286412] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
[    4.286418] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[    4.286546] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
[    4.286737] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    4.290985] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[    4.290986] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[    5.328957] sof-audio-pci 0000:00:1f.3: error: codec #2 probe error, ret: -5
[    5.331010] sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
[    5.331014] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[    8.399958] sof-audio-pci 0000:00:1f.3: error: cl_copy_fw: timeout HDA_DSP_SRAM_REG_ROM_STATUS read
[    8.400470] sof-audio-pci 0000:00:1f.3: error: load fw failed ret: -110
[    8.400490] sof-audio-pci 0000:00:1f.3: error: status = 0x0000002c panic = 0x00000000
[    8.400496] sof-audio-pci 0000:00:1f.3: error: failed to reset DSP
[    8.400497] sof-audio-pci 0000:00:1f.3: error: failed to boot DSP firmware -110
[    8.400498] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -110


The laptop is a Lenovo Yoga C940 with cpu IceLake i7-1065G7 and audio controller

00:1f.3 Multimedia audio controller: Intel Corporation Device 34c8 (rev 30)
	Subsystem: Lenovo Device 382e
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 32, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 167
	Region 0: Memory at 601d160000 (64-bit, non-prefetchable) [size=16K]
	Region 4: Memory at 601d000000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [80] Vendor Specific Information: Len=14 <?>
	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
		Address: 00000000fee00798  Data: 0000
	Kernel driver in use: sof-audio-pci
	Kernel modules: snd_hda_intel, snd_sof_pci

Comment 25 Jaroslav Kysela 2019-11-24 19:41:40 UTC
(In reply to Peter F. Patel-Schneider from comment #24)
> The laptop is a Lenovo Yoga C940 with cpu IceLake i7-1065G7 and audio
> controller
> 
> 00:1f.3 Multimedia audio controller: Intel Corporation Device 34c8 (rev 30)
> 	Subsystem: Lenovo Device 382e

Ok, created a new issue in the SOF project: https://github.com/thesofproject/sof/issues/2134

Comment 26 Jaroslav Kysela 2019-11-25 15:21:11 UTC
(In reply to Jaroslav Kysela from comment #21)
> (In reply to zogar5 from comment #19)
> > (In reply to Jaroslav Kysela from comment #17)
> > > zogar5@gmail.com : Please, try to symlink the gcc version of the cnl
> > > firmware (/usr/lib/firmware/intel/sof/gcc/sof-cnl.ri ->
> > > /usr/lib/firmware/intel/sof/sof-cnl.ri) and reboot. It seems that the signed
> > > firmware using the Intel key is not accepted on your hardware.
> > 
> > Well, this didn't do the trick, and the output is the same.
> 
> Unfortunately, it looks like a firmware issue. I created a ticket in the SOF
> project: https://github.com/thesofproject/sof/issues/2126

Intel asks for a test in the above ticket. Please, follow the SOF issue. Thank you.

Comment 27 Jaroslav Kysela 2019-12-02 21:39:16 UTC
Another round, kernel fixes, ucm fixes, PA modifications to make things stable and usable (please, install all of packages/updates):

- kernel-5.4.0-2.alsa8.fc31: https://koji.fedoraproject.org/koji/taskinfo?taskID=39412965
- alsa-lib-1.2.1.2: in testing repo, will be soon in stable
- alsa-firmware-1.2.1-2.fc31: in stable repo (FW is not updated - v1.3, we have no working signed 1.4 firmware from Intel)
- pulseaudio-13.0-901.fc31: https://koji.fedoraproject.org/koji/taskinfo?taskID=39389687

Modifications (listed only some):

- use DAC1 for all integrated speakers on Carbon X1 (to enable hardware volume control)
- hardware volume support (PA)
- fixed detection for digital microphones (2 or 4), thus the capture rate (fixes the broken behaviour of v1.3 fw)

Known issues:

1) the HDMI output works only when the PA is killed (respawned) when the monitor is plugged in (will look into it), it's a PA issue
2) mixer (internal): the 'Bass Speaker' switch should be off synchronously when 'Speaker' switch is off (for the power saving)
3) no v1.4 SOF firmware (https://github.com/thesofproject/sof/issues/2118)

Request (please):

If you have 'Bass Speaker' volume control in the alsa mixer (alsamixer -c 0), please, attach 'alsa-info.sh --no-upload' (Lenovo Yoga?). We need probably fix the HDA codec routes in the kernel driver like for Carbon X1.

Used kernel patches (since v5.4 tag):

  github: https://github.com/perexg/linux/commits/perex/fedora-sof
  diff:   https://github.com/torvalds/linux/compare/torvalds:v5.4...perexg:perex/fedora-sof.diff

Comment 28 Jaroslav Kysela 2019-12-02 21:41:09 UTC
I forgot to add the URL to the pulseaudio changes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/213

Comment 29 Anders Kaseorg 2019-12-02 23:03:42 UTC
Created attachment 1641515 [details]
alsa-info from ThinkPad X1 Yoga Gen 4 20SA000KUS

On my ThinkPad X1 Yoga Gen 4 (20SA000KUS, Comet Lake-U) with your packages (kernel-5.4.0-2.alsa8.fc31, alsa-lib-1.2.1.2-1.fc32, alsa-firmware-1.2.1-2.fc32, pulseaudio-13.0-901.fc31), ALSA finds no sound cards at all.

When booted into the standard kernel 5.3.12-300.fc31, ‘alsamixer -c 0’ shows a ‘Bass Speaker’ mute switch but no volume slider.  Attaching ‘alsa-info.sh --no-upload’ from here.

Comment 30 Peter F. Patel-Schneider 2019-12-03 02:19:01 UTC
Is there a way to download all the rpms needed for the kernel?  Right now I'm downloading them one by one, but that's a bit of a pain.

Comment 31 Jaroslav Kysela 2019-12-03 09:44:29 UTC
(In reply to Anders Kaseorg from comment #29)
> Created attachment 1641515 [details]
> alsa-info from ThinkPad X1 Yoga Gen 4 20SA000KUS
> 
> On my ThinkPad X1 Yoga Gen 4 (20SA000KUS, Comet Lake-U) with your packages
> (kernel-5.4.0-2.alsa8.fc31, alsa-lib-1.2.1.2-1.fc32,
> alsa-firmware-1.2.1-2.fc32, pulseaudio-13.0-901.fc31), ALSA finds no sound
> cards at all.

Yes, you need the 1.4 firmware. This update cannot do much without the working DSP firmware.

> When booted into the standard kernel 5.3.12-300.fc31, ‘alsamixer -c 0’ shows
> a ‘Bass Speaker’ mute switch but no volume slider.  Attaching ‘alsa-info.sh
> --no-upload’ from here.

It seems that this hardware requires also the DAC output rerouting. Please, try this with the 5.4.0-2.alsa8 kernel:

echo "options snd-intel-dspcfg dsp_driver=1" > /etc/modprobe.d/alsa.conf
echo "options snd-hda-intel model=alc285-speaker2-to-dac1" >> /etc/modprobe.d/alsa.conf

reboot..

Run 'alsamixer -c 0' and try if 'Speaker' and 'Bass Speaker' works correctly (volume level / mute) and if there is a change in the sound when you mute/umute the Bass Speaker (the sound should be more rich - all speakers will be activated).

Comment 32 ryan@testtoast.com 2019-12-03 10:26:35 UTC
Created attachment 1641630 [details]
alsainfo.sh with 5.4-alsa8 kernel from Lenovo X1Y4 20QF

> If you have 'Bass Speaker' volume control in the alsa mixer (alsamixer -c 0), please, attach 'alsa-info.sh --no-upload' (Lenovo Yoga?). We need probably fix the HDA codec routes in the kernel driver like for Carbon X1.

Thanks again Jaroslav for your work on this. From my X1 Yoga (20QF - Cannon Lake) with the latest kernel/ALSA/PA I have Bass speaker switch without volume control as previously in alsamixer, and the volume is always at 100% despite the master or speaker volume settings.

alsainfo attached. I'll try the module settings you've posted above.

Comment 33 Anders Kaseorg 2019-12-03 11:39:37 UTC
(In reply to Jaroslav Kysela from comment #31)
> Yes, you need the 1.4 firmware. This update cannot do much without the
> working DSP firmware.

Alright. I assume we’re still waiting on Intel for that, as https://github.com/thesofproject/sof/releases/tag/v1.4.1 only has APL, CNL, and ICL binaries.

> It seems that this hardware requires also the DAC output rerouting. Please,
> try this with the 5.4.0-2.alsa8 kernel:
> 
> echo "options snd-intel-dspcfg dsp_driver=1" > /etc/modprobe.d/alsa.conf
> echo "options snd-hda-intel model=alc285-speaker2-to-dac1" >>
> /etc/modprobe.d/alsa.conf
> 
> reboot..
> 
> Run 'alsamixer -c 0' and try if 'Speaker' and 'Bass Speaker' works correctly
> (volume level / mute) and if there is a change in the sound when you
> mute/umute the Bass Speaker (the sound should be more rich - all speakers
> will be activated).

All the speakers are now active in the Analog Stereo Output configuration.  In the Analog Surround 4.0 Output configuration I think I’m only hearing the rear channels in the rear speakers, and the front channels are silent.

Bass Speaker still has a mute but no volume slider.  However, the Master and Speaker volume sliders work correctly.  Of the three mutes (Master, Speaker, Bass Speaker), I only get any sound at all if all three are unmuted; I get no sound with any one muted and the other two unmuted.

Comment 34 Peter F. Patel-Schneider 2019-12-03 12:36:55 UTC
Here are some results from my Ice Lake Lenovo Yoga C940, with a similar speaker setup but the hda audio chip is ALC298.  (The Lenovo Yoga C930 is *very* similar but with the previous generation CPU.)

Booting into kernel-5.4.0-2.alsa8.fc31.x86_64 with alsa-firmware-1.2.1-2.fc31.noarch, alsa-lib-1.2.1.2-1.fc31.x86_64, and pulseaudio-13.0-901.fc31.x86_64 there are still problems on boot

Dec 03 07:13:57 idefix kernel: sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Dec 03 07:13:57 idefix kernel: sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
Dec 03 07:13:57 idefix kernel: sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
Dec 03 07:13:57 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
Dec 03 07:13:57 idefix kernel: sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
Dec 03 07:13:57 idefix kernel: sof-audio-pci 0000:00:1f.3: use msi interrupt mode
Dec 03 07:13:57 idefix kernel: sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
Dec 03 07:13:57 idefix kernel: sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
Dec 03 07:13:57 idefix kernel: sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
Dec 03 07:13:58 idefix kernel: sof-audio-pci 0000:00:1f.3: error: codec #2 probe error, ret: -5
Dec 03 07:13:58 idefix kernel: sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
Dec 03 07:13:58 idefix kernel: sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Dec 03 07:13:59 idefix rsyslogd[1178]: [origin software="rsyslogd" swVersion="8.1911.0" x-pid="1178" x-info="https://www.rsyslog.com"] start
Dec 03 07:14:01 idefix kernel: sof-audio-pci 0000:00:1f.3: error: cl_copy_fw: timeout HDA_DSP_SRAM_REG_ROM_STATUS read
Dec 03 07:14:01 idefix kernel: sof-audio-pci 0000:00:1f.3: error: load fw failed ret: -110
Dec 03 07:14:01 idefix kernel: sof-audio-pci 0000:00:1f.3: error: status = 0x0000002c panic = 0x00000000
Dec 03 07:14:01 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to reset DSP
Dec 03 07:14:01 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to boot DSP firmware -110
Dec 03 07:14:01 idefix kernel: sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -110

I guess these are from missing firmware.

Comment 35 Jaroslav Kysela 2019-12-03 12:46:14 UTC
(In reply to Anders Kaseorg from comment #33)
> Bass Speaker still has a mute but no volume slider.  However, the Master and
> Speaker volume sliders work correctly.  Of the three mutes (Master, Speaker,
> Bass Speaker), I only get any sound at all if all three are unmuted; I get
> no sound with any one muted and the other two unmuted.

The first DAC is used for all four speakers (no surround) with the patched kernel. The volume is assigned to DAC1 ('Speaker' control), the mute switches are separate for 2 + 2 speakers ('Speaker' and 'Bass Speaker' controls). I don't see a reason to use the surround (4.0) for laptop speakers, because it's a bit difficult to put the head inside the speaker array :-)

But you should hear a difference when you unmute 'Master' + 'Speaker' without 'Bass Speaker' and all three unmuted (more "strong" sound). Correct?

Comment 36 Anders Kaseorg 2019-12-03 13:02:15 UTC
(In reply to Jaroslav Kysela from comment #35)
> But you should hear a difference when you unmute 'Master' + 'Speaker'
> without 'Bass Speaker' and all three unmuted (more "strong" sound). Correct?

If I unmute Master and Speaker without Bass Speaker, I get no sound at all.  I need to have all three unmuted to get sound.  I assume that’s not quite what you’re expecting.

Comment 37 Jaroslav Kysela 2019-12-03 13:27:00 UTC
(In reply to Anders Kaseorg from comment #36)
> (In reply to Jaroslav Kysela from comment #35)
> > But you should hear a difference when you unmute 'Master' + 'Speaker'
> > without 'Bass Speaker' and all three unmuted (more "strong" sound). Correct?
> 
> If I unmute Master and Speaker without Bass Speaker, I get no sound at all. 
> I need to have all three unmuted to get sound.  I assume that’s not quite
> what you’re expecting.

It seems that the speaker configuration should be similar to Carbon X1 7th (not Yoga):

https://forums.lenovo.com/t5/ThinkPad-X-Series-Laptops/X1-Carbon-7th-gen-speaker-problem/m-p/4526221#M105122

Could you check some high-band sounds?

Comment 38 Peter F. Patel-Schneider 2019-12-03 14:25:37 UTC
[This is getting off the topic of the bug, but since we are on speakers ....  If there is some place better to have this addressed just let me know.]

My laptop is the Yoga C940, with five speakers.  Out of the box only two work.  With the updates and patches above the subwoofer works.  However, the two speakers on the bottom front to not appear to work.  What's a good way of figuring out how they might work.

I did look at the patch for the X1 7th gen, but I'm having problems understanding it.  It appears to change the connection of the speaker(s) connected to 0x17 to their second connection, which should be mixer 0x0d, but when I look at /proc/asound/card0/codec#0 it looks as if they are (still) connected to 0x0c.  What is going on?

Comment 39 Jaroslav Kysela 2019-12-03 14:37:27 UTC
(In reply to Peter F. Patel-Schneider from comment #38)
> [This is getting off the topic of the bug, but since we are on speakers ....
> If there is some place better to have this addressed just let me know.]
> 
> My laptop is the Yoga C940, with five speakers.  Out of the box only two
> work.  With the updates and patches above the subwoofer works.  However, the
> two speakers on the bottom front to not appear to work.  What's a good way
> of figuring out how they might work.
> 
> I did look at the patch for the X1 7th gen, but I'm having problems
> understanding it.  It appears to change the connection of the speaker(s)
> connected to 0x17 to their second connection, which should be mixer 0x0d,
> but when I look at /proc/asound/card0/codec#0 it looks as if they are
> (still) connected to 0x0c.  What is going on?

The DAC 0x02 -> PIN 0x17 route is activated in the X1 patch to share the stereo source for all four speakers. You need to determine which PIN is for the non-working speakers (attach also 'alsa-info.sh --no-upload' here).

  Node 0x17 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
    Connection: 3
       0x02* 0x03 0x06
    In-driver Connection: 1
       0x02

Comment 40 Peter F. Patel-Schneider 2019-12-03 15:21:49 UTC
Created attachment 1641710 [details]
alsa-info.sh output for Lenovo Yoga C940

I've attached the output of alsa-info.sh

I've been trying to figure out which speakers are which.  In the setup I have at boot time, it looks as if there are three "pairs" of speakers connected from 0x02 through 0x0c - 0x17, 0x1a, and 0x21 - which makes some sense, but the descriptions of these are screwy.  But it doesn't look as if I'm getting output from all of theses.  
Then there is a separate path from 0x03 through 0x0d to 0x14 which I guess is the headphone jack. 
My question is what can I do to turn off a pin complex while the computer is running (preferably, although requiring a reboot would be OK) so that I can check for sure which speakers are which.

Comment 41 Jaroslav Kysela 2019-12-03 15:43:34 UTC
(In reply to Peter F. Patel-Schneider from comment #40)
> Created attachment 1641710 [details]
> alsa-info.sh output for Lenovo Yoga C940
> 
> I've attached the output of alsa-info.sh

In this case, it would make sense to create a bug at https://bugzilla.kernel.org to track this (I'll be assigned to it automatically). Attach the alsa-info output again, please. Thank you. You may try to use hda-analyzer to enable/disable routes and unmute mixer paths without the driver to analyze the connections. It seems that the nodes 0x17,0x1a might have connected speakers. Try to activate route to 0x0d (like the node 0x14 - Speaker output). The codec is different from X1 (ALC285 vs ALC298).

Comment 42 Anders Kaseorg 2019-12-04 06:04:40 UTC
(In reply to Jaroslav Kysela from comment #37)
> > If I unmute Master and Speaker without Bass Speaker, I get no sound at all. 
> > I need to have all three unmuted to get sound.  I assume that’s not quite
> > what you’re expecting.
> 
> It seems that the speaker configuration should be similar to Carbon X1 7th
> (not Yoga):
> 
> https://forums.lenovo.com/t5/ThinkPad-X-Series-Laptops/X1-Carbon-7th-gen-
> speaker-problem/m-p/4526221#M105122
> 
> Could you check some high-band sounds?

I checked a full 20 Hz – 20000 Hz sine sweep, with Master unmuted at 100, Speaker unmuted at 100, and Bass Speaker muted.  Nothing.  I even used a spectrogram app on my phone to be sure my ears weren’t tricking me.

Comment 43 Jaroslav Kysela 2019-12-09 12:59:47 UTC
I have no issues with this on Carbon X1, everything should work like the "legacy" ALSA profiles in pulseaudio now:

- kernel-5.4.0-2.alsa8.fc31: https://koji.fedoraproject.org/koji/taskinfo?taskID=39412965 (no change)
- alsa-lib-1.2.1.2-4.fc31: pushing to testing (https://koji.fedoraproject.org/koji/taskinfo?taskID=39464066)
- alsa-firmware-1.2.1-3.fc31 : in testing repo with SOF v1.4.1 firmware
- pulseaudio-13.0-2.20191206gite677.fc31: https://koji.fedoraproject.org/koji/taskinfo?taskID=39389687
  - waiting for some changes to be accepted to upstream: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/217

The goals for now:

- put the kernel patches to the Fedora 5.4 kernel
- put the pulseaudio ALSA UCM changes to the Fedora pulseaudio package when upstreamed
- try to fix the hardware specific configurations

Unfortunately, I have not received the hardware details for other laptops from Lenovo, thus the integrated speakers will continue to work only partially on this hardware.

Comment 44 David Ward 2019-12-10 04:58:32 UTC
(In reply to Jaroslav Kysela from comment #43)
> - pulseaudio-13.0-2.20191206gite677.fc31:
> https://koji.fedoraproject.org/koji/taskinfo?taskID=39389687

That link was for the previous test build of PulseAudio.
It has a regression on my Dell Latitude 7350 (Broadwell): sound will play through both the speakers and headphones simultaneously after the headphones are plugged in. The released version (13.0-1.fc31) does not do this.


I believe your current test build (13.0-2.20191206gite677.fc31) is here:
https://koji.fedoraproject.org/koji/taskinfo?taskID=39463730

This version simply aborts at startup for me. In the journal I see:

    pulseaudio[1558]: E: [pulseaudio] channelmap.c: Assertion 'pa_channels_valid(channels)' failed at pulse/channelmap.c:401, function pa_channel_map_init_extend(). Aborting.

Comment 45 Jaroslav Kysela 2019-12-10 16:10:54 UTC
(In reply to David Ward from comment #44)
> (In reply to Jaroslav Kysela from comment #43)
> > - pulseaudio-13.0-2.20191206gite677.fc31:
> > https://koji.fedoraproject.org/koji/taskinfo?taskID=39389687
> 
> That link was for the previous test build of PulseAudio.
> It has a regression on my Dell Latitude 7350 (Broadwell): sound will play
> through both the speakers and headphones simultaneously after the headphones
> are plugged in. The released version (13.0-1.fc31) does not do this.
> 
> 
> I believe your current test build (13.0-2.20191206gite677.fc31) is here:
> https://koji.fedoraproject.org/koji/taskinfo?taskID=39463730

Yes, wrong link. Please, use this instead (taskID=39463730). Thank you.

> 
> This version simply aborts at startup for me. In the journal I see:
> 
>     pulseaudio[1558]: E: [pulseaudio] channelmap.c: Assertion
> 'pa_channels_valid(channels)' failed at pulse/channelmap.c:401, function
> pa_channel_map_init_extend(). Aborting.

It's broadwell-rt268 UCM config, right? Could you test this one?

https://github.com/alsa-project/alsa-ucm-conf/tree/testing/ucm2/broadwell-rt286

Comment 46 Jaroslav Kysela 2019-12-11 16:13:52 UTC
A little info for Lenovo users (Yoga X1, C940): There are some I2S amplifiers on the path to buildin speakers and while they are initialized with some basic values for Carbon X1 in BIOS, the Yoga X1 and C940 has initialization only for two speakers there. I am trying to gather the necessary information to improve the kernel driver to support all speakers and the sound quality.

Comment 47 Peter F. Patel-Schneider 2019-12-13 16:33:39 UTC
I'm at the stage where I can check out whether the mic is working on my Yoga C940.  What should I do to test it out on the most recent stuff?

Comment 48 dovla091 2019-12-15 11:01:20 UTC
I cannot see my bug report for microphone and speakers on HP Spectre x360 13" 2018, and it redirects me on this link. I assume that Jaroslav has merged my bug report with this. If so, I need to give a feedback. My Spectre does not have sound on front right speaker, only front left is working. Also, this model has 4 speakers which means that 3/4 are down, not working. On top of that microphone is still non functional.
I am currently runing:

Manufacturer:      HP
Product Name:      HP Spectre x360 Convertible 13-ap0xxx
Product Version:   
Firmware Version:  F.33
Board Vendor:      HP
Board Name:        8514

Kernel release:    5.5.0-0.rc1.git0.1.fc32.x86_64
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         x86_64
SMP Enabled:       Yes

Driver version:     k5.5.0-0.rc1.git0.1.fc32.x86_64
Library version:    
Utilities version:  1.2.1

Chip - ALC285

Any info about this, what is wrong with it?

Comment 49 dovla091 2019-12-15 11:02:01 UTC
Created attachment 1645284 [details]
HP Spectre - Alsa

Spectre alsa script output

Comment 50 dovla091 2019-12-15 11:04:03 UTC
I found some explanation from Jaroslav on this link: https://bugzilla.kernel.org/show_bug.cgi?id=203129

Comment 51 Jaroslav Kysela 2019-12-15 18:42:58 UTC
Yoga C940, HP Spectre x360 13" 2018:

Please, use only kernel and the user space packages for Fedora 31 from my last comments (comment 43 and pulseaudio from comment 45). To enable the digital mic, the dsp_driver option for snd_intel_dspcfg kernel module must not be altered (defaults to auto). The dsp_driver=1 option disables the DSP driver. I suggested this only for test when the firmware was not available.

The news:

Fedora 5.4 kernel will have all SOF patches in (available next week).
alsa-lib, alsa-firmware: in stable

So only all updates and my version of pulseaudio must be installed when Fedora 5.4 kernel is available.

Comment 52 Joe Thompson 2019-12-18 20:33:42 UTC
I tried to download the kernel RPMs from the link in comment 43 but it looks like that was marked as "scratch" and the build already got garbage-collected.  Are those RPMs persisted somewhere else?  (The PulseAudio RPMs in comment 45 were fine.)

Comment 53 David Ward 2019-12-25 04:54:23 UTC
(In reply to Jaroslav Kysela from comment #45)
> It's broadwell-rt268 UCM config, right? Could you test this one?
> 
> https://github.com/alsa-project/alsa-ucm-conf/tree/testing/ucm2/broadwell-
> rt286

Yes, this change fixes it. Thank you!


(In reply to Jaroslav Kysela from comment #15)
> (In reply to David Ward from comment #14)
> > ... Broadwell with the Dell Latitude 7350.
> > 
> > Note: this is a separate issue, but microphone jack detection in ALSA does
> > not work on this platform, and hasn't for a long time ...
> 
> Please, could you create a new issue for this (alsa-lib package)? Attach
> 'alsa-info.sh --no-upload' contents. 
> It may be problem with the UCM configuration for your particular hw.

Sure, I have created an issue here:
https://bugzilla.kernel.org/show_bug.cgi?id=205961

Comment 54 Justin M. Forbes 2020-01-02 19:44:22 UTC
So it seems alsa doesn't have a requirement on alsa-firmware.  This is causing people with perfectly working systems with 5.3 kernels to lose sound with the 5.4 kernels because the firmware that the new drivers need doesn't exist on their system.

Comment 55 Bernie Innocenti 2020-01-02 20:22:50 UTC
(In reply to Justin M. Forbes from comment #54)
> So it seems alsa doesn't have a requirement on alsa-firmware.  This is
> causing people with perfectly working systems with 5.3 kernels to lose sound
> with the 5.4 kernels because the firmware that the new drivers need doesn't
> exist on their system.

Which released version of alsa-firmware contains the required firmware file?

When I boot my Thinkpad X1 Gen 7 with kernel 5.4 (or 5.5 from rawhide), I see this error in dmesg:

     sof-audio-pci 0000:00:1f.3: Direct firmware load for intel/sof/sof-cml.ri failed with error -2

sof-cml.ri was added as a symlink in this patch in the SOF fork of linux-firmware):

     https://github.com/thesofproject/linux-firmware/commit/beff732e6642bd77dac5dd08514264f055fc4d10#diff-76c141712563cc9d4730eb63acb36ad5R3807-R3808

But this symlink is still missing in alsa-firmware-1.2.1-3.fc32.noarch

Comment 56 Bernie Innocenti 2020-01-02 22:27:39 UTC
The author of the kernel patch which requires sof-cml.ri just notified me that they're still working on the linux-firmware bits:

  https://mailman.alsa-project.org/pipermail/alsa-devel/2020-January/160858.html

Comment 57 Robert Hancock 2020-01-04 00:05:57 UTC
There is also a problem with Coffee Lake where the firmware symlink is missing, see bug 1787387. Attempting to use the CNL firmware seems to cause the machine to hard-freeze.

I have to wonder how much any of this code has been tested given the obvious problems that people are running into, which makes me think it's not really ready for prime time and risks causing a bunch of regressions if a kernel that enables this stuff ends up in stable..

Comment 58 Bernie Innocenti 2020-01-04 05:56:14 UTC
> I have to wonder how much any of this code has been tested given the obvious problems that people are running into,
> which makes me think it's not really ready for prime time and risks causing a bunch of regressions if a kernel that enables this stuff ends up in stable..

Indeed, I can't believe this was pulled into 5.4 before the required firmware file was available, and without a fallback to the old code. This effectively killed sound on the ThinkPad X1 Gen 7 and any other CML-based devices.

Comment 59 Jaroslav Kysela 2020-01-04 09:35:11 UTC
There is a fallback, but it requires the user assistance:

  echo "options snd-intel-dspcfg dsp_driver=1" > /etc/modprobe.d/alsa.conf

I am sorry that you're running those issues, but it seems that the word "working" has different meaning for Intel and others. They claimed to have the Linux support a half of year ago.

At least we know that there are issues which can be reported back to Intel: https://github.com/thesofproject/sof/issues/

I can only resolve alsa-firmware bits (sof-cml.ri symlink), but they depends on the Intel's binaries anyway. If we don't enable the DSP driver for the more broader testing, the issues won't be resolved.

Comment 60 ryan@testtoast.com 2020-01-04 11:05:50 UTC
Created attachment 1649614 [details]
PA log with 5.5rc4 kernel

There are pros and cons obviously, but the old HDA driver has significant issues, doesn't support multi-speaker setups as on the X1C7/Y4, and doesn't support the DMIC. 

Jaroslav, I've built a 5.5rc4 kernel with your patches ported over on my CNL X1Y4, with no issues loading the CNL firmware, and aplayer/amixer working fine, but PA -901 (and the current version in FC31) is having issues loading the UCM verbs as attached.

Comment 61 Jaroslav Kysela 2020-01-04 11:25:09 UTC
(In reply to ryan@testtoast.com from comment #60)
> Created attachment 1649614 [details]
> PA log with 5.5rc4 kernel
> 
> There are pros and cons obviously, but the old HDA driver has significant
> issues, doesn't support multi-speaker setups as on the X1C7/Y4, and doesn't
> support the DMIC. 
> 
> Jaroslav, I've built a 5.5rc4 kernel with your patches ported over on my CNL
> X1Y4, with no issues loading the CNL firmware, and aplayer/amixer working
> fine, but PA -901 (and the current version in FC31) is having issues loading
> the UCM verbs as attached.

It seems that the dmic channels are 4 instead 2:

  D: [pulseaudio] alsa-util.c: Managed to open hw:sofhdadsp,6
  D: [pulseaudio] alsa-util.c: snd_pcm_hw_params_set_channels(2) failed: Invalid argument

The driver should pass the dmic count information in the components field (amixer info).

The speaker issue won't be resolved with the DSP driver, because the speaker output is using the legacy (old) HDA driver. Unfortunately, I have not received the right information from Lenovo to setup the audio amplifiers which are behind the HDA codec yet.

Comment 62 ryan@testtoast.com 2020-01-06 23:49:00 UTC
> It seems that the dmic channels are 4 instead 2:

I think there are 4 separate dmics on the Yoga at least yes. Is there any work around for this? I have had the mic working well previously. Playback via ALSA is still working well.

RE the speakers, these seem to be working well (when PA is working) under the SOF driver, with your latest code I get a single sof-hda-dsp device in alsamixer with separate volumes for the Bass and treble speakers, at 100% volume for both I get nice sound from both, with clear separation of high and low frequencies with one or other set muted.

Comment 63 ryan@testtoast.com 2020-01-08 22:32:17 UTC
> The speaker issue won't be resolved with the DSP driver, because the speaker output is using the legacy (old) HDA driver.

I've now built a custom kernel from the SOF project, the 5.4 series weren't working either, but now the 5.5rc4 and 5.5rc5 kernels are working, although I've also had to build pulseaudio from git (I note your recent patches are now merged). 

Hardware volume seems to be enabled which is great, however it has a weird issue where using a pactl command to raise or lower the default sink sequentially lowers the speaker channel to zero volume, then lowers master to zero, and only mutes the Bass speaker (which seems to have no separate volume control, only a mute or unmute switch) once the master is at zero volume. This changes the sound significantly depending on the volume setting, and is quite undesirable. At least with the previous SW volume control, I could set all the ALSA channels to 100% and have nice quality sound from both the woofers and tweeters. 

Is this something you see on your X1? I understand the mainboards are identical, and it's just a hidden BIOS setting which determines whether it acts as a Yoga Vs Carbon model.

Comment 64 Jaroslav Kysela 2020-01-13 09:44:18 UTC
Fedora 5.4 kernel has the SOF driver build-in with all 5.5 and some 5.6 changes. If you have any issues, let me know.

We need to add this patch for Yoga to enable all speakers:  https://github.com/torvalds/linux/commit/54a6a7dc107da0492a9e84fd7e9a107b3c58138d

Regarding the volume control: PA controls the master and speaker volume. The bass speaker has only on/off switch (with the patch above). It looked fine in my tests, the master volume is just software attenuation, so it's better to control the hardware volume at first to get the better dynamic range.

Comment 65 ryan@testtoast.com 2020-01-13 10:53:27 UTC
Thanks, I tried the current FC31 updates-testing kernel (5.4-10-200) and it doesn't seem to load the SOF driver at all, so I had no sound (having blacklisted the old SST driver). Is this the Fedora kernel you mean? 

However applying the quirk you linked to the sof-dev tree, I was able to get proper volume control for the bass and treble speakers which works well, and sound much better thanks! Mic working well too.

Comment 66 Jaroslav Kysela 2020-01-13 11:21:15 UTC
Remove the blacklist. The SST driver must be loaded for the all-in-kernel configurations. The snd-intel-dspcfg module will decide which driver will be activated for the new kernels.

Comment 67 ryan@testtoast.com 2020-01-13 11:31:37 UTC
Ok, have done, but only the SST driver is loaded with the Fedora 5.4.10-200 kernel (no SOF probe or FW load in dmesg), and the mic doesn't work. With the 5.5-rc5 sof-dev kernel both seem to load (I get snd_hda_codec_realtek messages as well as the SOF firmware messages) and both sound output and the mic work fine.

Comment 68 Jaroslav Kysela 2020-01-13 13:22:36 UTC
Ok, the SOF driver was silently removed in Fedora 5.4.10 kernel (it was in 5.4.9). I was not aware of it. Jeremy?

Comment 69 Jeremy Cline 2020-01-13 15:21:05 UTC
Hi Jaroslav,

I apologize for not letting you know before dropping the backports. There was a good bit of hesitation among the other maintainers about pulling this in and it's not something we normally do, but, since you kindly prepared the backports I was willing to pull it provided there was no trouble. There as been some problems, though, and we thought it would be best to pull out of the stable kernels. I think it's reasonable to carry the patches in Rawhide for the present and I can do the work to make that happen if you're okay with that, but I don't want to include something that is not yet stable in the stable kernels.

Comment 70 Peter F. Patel-Schneider 2020-01-13 15:34:44 UTC
I can understand dropping SOF as it does not appear to be quite ready for prime time, but it was getting very close and there are a lot of laptops where the microphone won't work without it.

What is the situation with rawhide?  I may be able to run rawhide to help get the remaining kinks ironed out.

Comment 71 Peter F. Patel-Schneider 2020-01-13 15:38:53 UTC
It occurs to me that having the backports in but shipping with the alsa directive to use hda might get the best of both worlds.  People like me who are willing to test out SOF could easily do so but everyone else would not be using SOF.  (At least that's what I think the situation would be.)

Comment 72 Jaroslav Kysela 2020-01-13 15:41:26 UTC
Yes, I already proposed that way to Jeremy via e-mail. Jeremy?


  diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
  index be1df80ed013..2167ae360e97 100644
  --- a/sound/hda/intel-dsp-config.c
  +++ b/sound/hda/intel-dsp-config.c
  @@ -9,7 +9,7 @@
   #include <sound/intel-dsp-config.h>
   #include <sound/intel-nhlt.h>
 
  -static int dsp_driver;
  +static int dsp_driver = 1;
 
   module_param(dsp_driver, int, 0444);
   MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF)");

Comment 73 Jeremy Cline 2020-01-13 16:11:31 UTC
Is that patch going upstream? Has it been tested? I'm assuming the answer is no to both those questions, and while it is a simple patch that seems reasonably likely to work, it doesn't even have a commit message. As a rule, we don't pull in patches that aren't already upstream or well on their way to upstream. The stable kernels are not intended to be a testing ground and while it is unfortunate that newer hardware doesn't work with current stable kernels, I don't want to be in the business of taking care of huge swathes of feature backports and causing regressions in other hardware.

I am sorry, but I stuck out my neck when I pulled in all the 5.5 and 5.6 sof work and it didn't work out. I'm not the only maintainer that has to live with my decisions so I'm trying to be cautious.

Comment 74 Jaroslav Kysela 2020-01-13 16:30:10 UTC
The problem with the hardware support is that we are always behind the hardware vendors. The modprobe config in comment#59 always worked to my knowledge - it forces the old legacy driver as default, so we can take this as tested. I don't know which bugs do you refer - what was the exact reason to remove SOF (regressions). I had no chance to fix things. So we need to wait for Fedora 5.6 stable kernel (half year)? Ok, so... let's wait.

Comment 75 Jeremy Cline 2020-01-13 16:42:02 UTC
Why isn't Rawhide an okay place to do this? It's easily available for people to test, and once you demonstrate it's working there we can consider bringing it into the stable Fedora releases.

Comment 76 Hans de Goede 2020-01-13 17:09:28 UTC
@Jaroslav, note that this does mean that the users need to fully run rawhide, it is usually no problem at all to use a rawhide kernel on an older Fedora. It might be best if you ask users to test this to point them to a rc#.git0 build, these have the extra debugging rawhide kernels have disabled (OTOH a lockdep check on the new code might actually be a good idea). Anyways a non extra debug enabled kernel would be:  https://koji.fedoraproject.org/koji/buildinfo?buildID=1426552

And you can point people here for instructions for installing a kernel directly from koji:
https://fedorapeople.org/~jwrdegoede/kernel-test-instructions.txt

Although I can some value (less adventurous, might see more testing) in having the SOF drivers available in the regular F31 kernels but runtime disabled.

Comment 77 Jaroslav Kysela 2020-01-13 19:11:16 UTC
2 commits for rawhide (only required changes to enable UCM auto-detection): https://src.fedoraproject.org/fork/perex/rpms/kernel/commits/perex/sof-rawhide

Comment 78 David Ward 2020-01-13 20:19:16 UTC
Aside from the kernel, this is still going to require an update to PulseAudio, right?:

(In reply to ryan@testtoast.com from comment #63)
> I've also had to build pulseaudio from git (I note your recent patches are
> now merged). 

Reminder that this would completely break sound on Broadwell systems with the current UCM2 profile (see comment 44).

Jaroslav updated the UCM2 profile and that fixed it (see comment 53), but that still needs to be merged upstream and included in the alsa-ucm package in Fedora.
https://github.com/alsa-project/alsa-ucm-conf/pull/9

Comment 79 ryan@testtoast.com 2020-01-13 22:50:55 UTC
> Aside from the kernel, this is still going to require an update to PulseAudio, right?

I need the UCM changes in PA-master at least for my system (X1 Yoga Cannon Point=LP with ALC285). With PA-master and the Fedora 5.4.8-200 kernel I do get sound (although without good volume control for my bass speakers which relies on the other kernel patch Jaroslav posted above).

As much as I'd like to stop building my own kernel, I think waiting for 5.6 (or at least 5.5), and new PA and ALSA packages might be appropriate. Breaking working HW is bad, but then so is non-working microphones on a business/developer laptop. Even though Jaroslav is doing great work, I can appreciate it may not be ready for stable release yet, and targeting rawhide/FC32 seems like a good idea.

Comment 80 David Ward 2020-01-14 15:21:15 UTC
(In reply to ryan@testtoast.com from comment #79)
> > Aside from the kernel, this is still going to require an update to PulseAudio, right?
> 
> I need the UCM changes in PA-master at least for my system (X1 Yoga Cannon
> Point=LP with ALC285).

Can the PulseAudio package in Rawhide be updated to a development snapshot then?

Comment 81 Hans de Goede 2020-01-14 16:28:53 UTC
(In reply to David Ward from comment #80)
> (In reply to ryan@testtoast.com from comment #79)
> > > Aside from the kernel, this is still going to require an update to PulseAudio, right?
> > 
> > I need the UCM changes in PA-master at least for my system (X1 Yoga Cannon
> > Point=LP with ALC285).
> 
> Can the PulseAudio package in Rawhide be updated to a development snapshot
> then?

It might be better to do a COPR with a pulseaudio snapshot, so that users who just want to test the audio bits can use F31 + the rawhide kernel + that COPR.

Comment 82 David Ward 2020-01-14 18:50:01 UTC
(In reply to Hans de Goede from comment #81)
> > Can the PulseAudio package in Rawhide be updated to a development snapshot
> > then?
> 
> It might be better to do a COPR with a pulseaudio snapshot, so that users
> who just want to test the audio bits can use F31 + the rawhide kernel + that
> COPR.

So my Broadwell system actually does not use the SOF driver. However the new UCM2 profile fully broke its sound — but this only occurs with the updated PulseAudio (not with release 13.0).

Again, Jaroslav provided a fix for ALSA userspace almost immediately (comment 45), which was just merged upstream. Is this believed to have been an isolated issue? I admit I would not have discovered this if I wasn't actively following this bug (because of bug 1750194). I happened to come across a thread about issues with UCM2 profiles for Baytrail-CR (which also does not use the SOF driver): https://bbs.archlinux.org/viewtopic.php?pid=1877396#p1877396

If the intention is to update PulseAudio for Fedora 32 to enable SOF, I would think that uploading it directly to Rawhide might help to reveal any other regressions like this sooner rather than later. Thoughts?

Comment 83 Jaroslav Kysela 2020-01-14 19:48:45 UTC
PA changes are already merged to rawhide:

  https://src.fedoraproject.org/rpms/pulseaudio/pull-request/4
  https://bodhi.fedoraproject.org/updates/FEDORA-2020-490b391246

The simplest way to install only pulseaudio from rawhide:

  dnf install fedora-repos-rawhide
  dnf --enablerepo=rawhide install pulseaudio

(waiting to confirm when the rawhide repo will be updated)

> Is this believed to have been an isolated issue?

I need to review the UCM2 profiles again, because PA correctly inherits the values among devices / verbs / defaults now. I will start to work on this tomorrow. We need a conformance test tool to check the UCM profiles from the application perspective. It's everything on my todo list.

> If the intention is to update PulseAudio for Fedora 32 to enable SOF, I would think that uploading it directly to Rawhide might help to reveal any other regressions like this sooner rather than later. Thoughts?

Yes, and yes for the kernel with the SOF driver available.

Comment 84 Rex Dieter 2020-01-15 14:32:21 UTC
FYI, pulseaudio copr tracks rawhide packaging for stable releases too,
https://copr.fedorainfracloud.org/coprs/rdieter/pulseaudio/

Comment 85 ryan@testtoast.com 2020-01-16 05:23:23 UTC
> We need to add this patch for Yoga to enable all speakers:  https://github.com/torvalds/linux/commit/54a6a7dc107da0492a9e84fd7e9a107b3c58138d

I'm just wondering if rerouting the Bass speaker sound like this is expected to have any impact on sound quality? It's hard to A-B reliably as I'm having to reboot to switch between kernels to test, but it seems like the bass output is a bit lacking with this patch compared with the old behaviour. Has anyone else noticed this or am I just imagining it?

Comment 86 Timothy Rees 2020-01-17 16:06:27 UTC
X1C7 user here, can I quickly confirm what I need to do to test out the fixes outline in this bug to test working audio on this notebook?  Do I just need to install the latest rawhide kernel and then use the following copr pulseaudio?

https://copr.fedorainfracloud.org/coprs/rdieter/pulseaudio/

Or are there also alsa patches I need to apply?

Comment 87 Bernie Innocenti 2020-01-20 20:19:48 UTC
(In reply to Timothy Rees from comment #86)
> X1C7 user here, can I quickly confirm what I need to do to test out the
> fixes outline in this bug to test working audio on this notebook?  Do I just
> need to install the latest rawhide kernel and then use the following copr
> pulseaudio?
> 
> https://copr.fedorainfracloud.org/coprs/rdieter/pulseaudio/
> 
> Or are there also alsa patches I need to apply?

I'm also an X1C7 user, and even with a full rawhide install, I still can't get audio working: kernel 5.5 is trying to load sof-cml.ri, which is not packaged in alsa-firmware at this time.

I believe this is the firmware we need (untested):

  https://github.com/thesofproject/linux-firmware/commit/beff732e6642bd77dac5dd08514264f055fc4d10#diff-76c141712563cc9d4730eb63acb36ad5R3804-R3808

Comment 88 Jaroslav Kysela 2020-01-20 20:23:02 UTC
Install latest alsa-firmware package 1.2.1-4 . The file is correctly symlinked to sof-cnl.ri there.

Comment 89 Bernie Innocenti 2020-01-20 20:27:56 UTC
(In reply to Jaroslav Kysela from comment #88)
> Install latest alsa-firmware package 1.2.1-4 . The file is correctly
> symlinked to sof-cnl.ri there.

Oh, indeed, thanks! Oddly, this build is available as an F31 update, but not in Rawhide:

  https://koji.fedoraproject.org/koji/buildinfo?buildID=1426494

Comment 90 Jaroslav Kysela 2020-01-20 20:36:28 UTC
I probably forget to build rawhide package, it should be fixed in few minutes: https://bodhi.fedoraproject.org/updates/FEDORA-2020-c0004b62e0 . Thanks for the report.

Comment 91 Bernie Innocenti 2020-01-20 20:41:50 UTC
Ok, I booted with alsa-firmware-1.2.1-4 and , and now the driver finds its firmware and initializes various outputs and inputs:

[    8.974207] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[    8.977046] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    9.191713] snd_soc_skl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[    9.193279] snd_soc_skl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    9.297108] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[    9.297610] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[    9.298492] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
[    9.298533] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380
[    9.299078] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
[    9.300017] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    9.310319] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[    9.310322] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[    9.383017] sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
[    9.383027] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[    9.482910] sof-audio-pci 0000:00:1f.3: Firmware info: version 1:1:0-fcf6c
[    9.482913] sof-audio-pci 0000:00:1f.3: Firmware: ABI 3:11:0 Kernel ABI 3:11:0
[    9.483398] sof-audio-pci 0000:00:1f.3: firmware boot complete
[    9.489712] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link iDisp1
[    9.489720] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link iDisp2
[    9.489721] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link iDisp3
[    9.489723] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link Analog Playback and Capture
[    9.489724] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link Digital Playback and Capture
[    9.489726] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link dmic01
[    9.489727] skl_hda_dsp_generic skl_hda_dsp_generic: info: override BE DAI link dmic16k
[    9.491522] sof-audio-pci 0000:00:1f.3: Topology: ABI 3:11:0 Kernel ABI 3:11:0
[    9.491528] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name iDisp3 Tx not handled
[    9.492633] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name codec0_in not handled
[    9.492637] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name iDisp2 Tx not handled
[    9.493490] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name codec1_in not handled
[    9.493494] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name iDisp1 Tx not handled
[    9.494322] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name codec0_out not handled
[    9.494327] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name Analog CPU Playback not handled
[    9.495106] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name codec1_out not handled
[    9.495110] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name Digital CPU Playback not handled
[    9.495114] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name codec2_in not handled
[    9.495117] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name Alt Analog CPU Playback not handled
[    9.495121] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name codec2_out not handled
[    9.495125] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name Analog CPU Capture not handled
[    9.495964] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name iDisp1_out not handled
[    9.495968] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name Digital CPU Capture not handled
[    9.496788] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name iDisp2_out not handled
[    9.496792] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name Alt Analog CPU Capture not handled
[    9.497677] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name iDisp3_out not handled
[    9.505980] sof-audio-pci 0000:00:1f.3: ASoC: Parent card not yet available, widget card binding deferred
[    9.525417] snd_hda_codec_realtek ehdaudio0D0: autoconfig for ALC285: line_outs=2 (0x14/0x17/0x0/0x0/0x0) type:speaker
[    9.525419] snd_hda_codec_realtek ehdaudio0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    9.525421] snd_hda_codec_realtek ehdaudio0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[    9.525422] snd_hda_codec_realtek ehdaudio0D0:    mono: mono_out=0x0
[    9.525424] snd_hda_codec_realtek ehdaudio0D0:    inputs:
[    9.525425] snd_hda_codec_realtek ehdaudio0D0:      Mic=0x19
[    9.564331] snd_hda_codec_realtek ehdaudio0D0: ASoC: sink widget AIF1TX overwritten
[    9.564342] snd_hda_codec_realtek ehdaudio0D0: ASoC: source widget AIF1RX overwritten
[    9.564406] skl_hda_dsp_generic skl_hda_dsp_generic: intel-hdmi-hifi1 <-> iDisp1 Pin mapping ok
[    9.564413] skl_hda_dsp_generic skl_hda_dsp_generic: intel-hdmi-hifi2 <-> iDisp2 Pin mapping ok
[    9.564420] skl_hda_dsp_generic skl_hda_dsp_generic: intel-hdmi-hifi3 <-> iDisp3 Pin mapping ok
[    9.564427] skl_hda_dsp_generic skl_hda_dsp_generic: Analog Codec DAI <-> Analog CPU DAI mapping ok
[    9.564435] skl_hda_dsp_generic skl_hda_dsp_generic: Digital Codec DAI <-> Digital CPU DAI mapping ok
[    9.564442] skl_hda_dsp_generic skl_hda_dsp_generic: dmic-hifi <-> DMIC01 Pin mapping ok
[    9.564449] skl_hda_dsp_generic skl_hda_dsp_generic: dmic-hifi <-> DMIC16k Pin mapping ok
[    9.564493] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> DMIC48kHz 6 mapping ok
[    9.564531] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> DMIC16kHz 7 mapping ok
[    9.564586] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDA Analog 0 mapping ok
[    9.564664] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDA Digital 1 mapping ok
[    9.564716] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI1 3 mapping ok
[    9.564772] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI2 4 mapping ok
[    9.564831] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI3 5 mapping ok
[    9.564901] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi3 overwritten
[    9.564905] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi2 overwritten
[    9.564909] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi1 overwritten
[    9.564912] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Codec Output Pin1 overwritten
[    9.564916] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Codec Input Pin1 overwritten
[    9.564922] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Analog Codec Playback overwritten
[    9.564928] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Digital Codec Playback overwritten
[    9.564932] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Alt Analog Codec Playback overwritten
[    9.564938] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Analog Codec Capture overwritten
[    9.564942] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Digital Codec Capture overwritten
[    9.564947] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Alt Analog Codec Capture overwritten
[    9.580287] input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input15
[    9.580819] input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input16
[    9.580988] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input17
[    9.581150] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input18
[    9.581340] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input19

Comment 92 Bernie Innocenti 2020-01-20 20:45:06 UTC
Oops, I hadn't scrolled far down enough:

[   19.581960] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[   19.676540] sof-audio-pci 0000:00:1f.3: firmware boot complete
[...]
[   24.980635] sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
[   24.980658] sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
[   24.980668]  Analog Playback and Capture: ASoC: trigger BE failed -22
[   24.980670]  HDA Analog: ASoC: trigger FE cmd: 0 failed: -22
[   24.981840] sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
[   24.981844] sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
[   24.981846]  Analog Playback and Capture: ASoC: trigger BE failed -22
[   24.981848]  HDA Analog: ASoC: trigger FE cmd: 0 failed: -22
[   24.983468] sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
[   24.983472] sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp1
[   24.983475]  iDisp1: ASoC: trigger BE failed -22
[   24.983478]  HDMI1: ASoC: trigger FE cmd: 0 failed: -22
[   24.984403] sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
[   24.984407] sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp2
[   24.984411]  iDisp2: ASoC: trigger BE failed -22
[   24.984414]  HDMI2: ASoC: trigger FE cmd: 0 failed: -22
[   24.985863] sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
[   24.985873] sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp3
[   24.985880]  iDisp3: ASoC: trigger BE failed -22
[   24.985884]  HDMI3: ASoC: trigger FE cmd: 0 failed: -22

And, as soon as I start playing back anything:

[  331.251163] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[  334.342362] sof-audio-pci 0000:00:1f.3: error: cl_copy_fw: timeout HDA_DSP_SRAM_REG_ROM_STATUS read
[  334.342384] sof-audio-pci 0000:00:1f.3: error: load fw failed ret: -110
[  334.342773] sof-audio-pci 0000:00:1f.3: error: status = 0x00000000 panic = 0x00000000
[  334.342786] sof-audio-pci 0000:00:1f.3: error: failed to reset DSP
[  334.342793] sof-audio-pci 0000:00:1f.3: error: failed to boot DSP firmware after resume -110
[  334.848497] sof-audio-pci 0000:00:1f.3: error: ipc timed out for 0x80010000 size 120
[  334.848541] sof-audio-pci 0000:00:1f.3: error: status = 0x001d003c panic = 0x00000003
[  334.848557] sof-audio-pci 0000:00:1f.3: error: hda irq intsts 0x00000000 intlctl 0x00000000 rirb 00
[  334.848564] sof-audio-pci 0000:00:1f.3: error: dsp irq ppsts 0x00000000 adspis 0x00000000
[  334.848577] sof-audio-pci 0000:00:1f.3: error: host status 0x00000000 dsp status 0x00040000 mask 0x00000000
[  334.848627] sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
[  334.848666] sof-audio-pci 0000:00:1f.3: ASoC: can't set Analog CPU DAI hw params: -110
[  334.848696]  Analog Playback and Capture: ASoC: hw_params BE failed -110
[  334.848714]  HDA Analog: ASoC: hw_params BE failed -110
[  335.352830] sof-audio-pci 0000:00:1f.3: error: ipc timed out for 0x80010000 size 120
[  335.352840] sof-audio-pci 0000:00:1f.3: error: status = 0x001d003c panic = 0x00000003
[  335.352849] sof-audio-pci 0000:00:1f.3: error: hda irq intsts 0x00000000 intlctl 0x00000000 rirb 00
[  335.352852] sof-audio-pci 0000:00:1f.3: error: dsp irq ppsts 0x00000000 adspis 0x00000000
[  335.352858] sof-audio-pci 0000:00:1f.3: error: host status 0x00000000 dsp status 0x00040000 mask 0x00000000
[  335.352862] sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
[  335.352865] sof-audio-pci 0000:00:1f.3: ASoC: can't set Analog CPU DAI hw params: -110
[  335.352874]  Analog Playback and Capture: ASoC: hw_params BE failed -110
[  335.352876]  HDA Analog: ASoC: hw_params BE failed -110
[  335.856458] sof-audio-pci 0000:00:1f.3: error: ipc timed out for 0x80010000 size 120
[  335.856479] sof-audio-pci 0000:00:1f.3: error: status = 0x001d003c panic = 0x00000003
[  335.856495] sof-audio-pci 0000:00:1f.3: error: hda irq intsts 0x00000000 intlctl 0x00000000 rirb 00
[  335.856503] sof-audio-pci 0000:00:1f.3: error: dsp irq ppsts 0x00000000 adspis 0x00000000

Comment 93 Bernie Innocenti 2020-01-20 20:53:00 UTC
Ok, so it's not working :-(

Applications trying to play sound just hang, and pulseaudio-13.0-2.20200105gitf5d36.fc32 is spewing errors:

Jan 21 05:38:22 giskard pulseaudio[1136]: E: [alsa-sink-HDA Analog (*)] alsa-sink.c: Failed to set hardware parameters: Connection timed out
Jan 21 05:38:25 giskard pulseaudio[1136]: E: [alsa-sink-HDA Analog (*)] alsa-sink.c: Failed to set hardware parameters: Connection timed out
Jan 21 05:38:28 giskard pulseaudio[1136]: E: [alsa-sink-HDA Analog (*)] alsa-sink.c: Failed to set hardware parameters: Connection timed out
Jan 21 05:44:27 giskard pulseaudio[1136]: E: [alsa-sink-HDA Analog (*)] alsa-sink.c: Failed to set hardware parameters: Connection timed out
...

Comment 94 Jaroslav Kysela 2020-01-20 20:57:27 UTC
The errors in comment 92 mean that the driver does not communicate properly with DSP. I've not checked the rawhide kernel (the 5.4 kernel was a bit different). I'll do it tomorrow. Thank you for the test.

Comment 95 Bernie Innocenti 2020-01-20 21:05:30 UTC
(In reply to Jaroslav Kysela from comment #94)
> The errors in comment 92 mean that the driver does not communicate properly
> with DSP. I've not checked the rawhide kernel (the 5.4 kernel was a bit
> different). I'll do it tomorrow. Thank you for the test.

This is amazing realtime support, please accept my eternal gratitude! :-)

Happy to run more tests, send logs or downgrade to 5.4 if it's supposed to work.

Comment 96 Jeremy Cline 2020-01-21 21:01:24 UTC
Okay, I've pulled the driver back into Fedora 31 including the patch from https://bugzilla.redhat.com/show_bug.cgi?id=1772498#c72 and it's available in kernel-5.4.13-201.fc31.

Comment 97 Peter F. Patel-Schneider 2020-01-21 22:21:39 UTC
Great.  Where is this kernel so that I can give it a whirl?

Comment 98 Javier Martinez Canillas 2020-01-21 22:25:23 UTC
(In reply to Peter F. Patel-Schneider from comment #97)
> Great.  Where is this kernel so that I can give it a whirl?

https://bodhi.fedoraproject.org/updates/FEDORA-2020-aa144b34ed

Comment 99 Jaroslav Kysela 2020-01-21 22:27:13 UTC
Note that this kernel will require this extra configuration to activate the SOF driver:

  echo "options snd-intel-dspcfg dsp_driver=0" > /etc/modprobe.d/alsa.conf

Comment 100 Jaroslav Kysela 2020-01-22 08:36:23 UTC
For testers: Do not use kernel-5.4.13-201.fc31 nor rawhide kernels at the moment. Both have issues. I am trying to find the root of the problems.

The only working kernel is vanilla mainline kernel: https://fedoraproject.org/wiki/Kernel_Vanilla_Repositories (tested with kernel-5.5.0-0.rc7.git0.1.vanilla.knurd.1.fc31.x86_64).

The 5.5 vanilla kernel requires this UCM change (no automatic dmic channel count detection):

  # diff -u /usr/share/alsa/ucm2/sof-hda-dsp/HiFi.conf~ /usr/share/alsa/ucm2/sof-hda-dsp/HiFi.conf
  --- /usr/share/alsa/ucm2/sof-hda-dsp/HiFi.conf~	2019-12-09 13:53:48.000000000 +0100
  +++ /usr/share/alsa/ucm2/sof-hda-dsp/HiFi.conf	2020-01-22 09:03:43.084400628 +0100
  @@ -150,7 +150,7 @@
 				CaptureChannels "4"
 			}
 			False {
  -				CaptureChannels "2"
  +				CaptureChannels "4"
 			}
 		}
 		If.vol {

The user space is fine (pulseaudio from copr, latest alsa-lib/alsa-ucm/alsa-firmware). I upgraded SOF firmware in the alsa-firmware package to 1.4.2 (fc31: https://bodhi.fedoraproject.org/updates/FEDORA-2020-18cc548263, already in rawhide).

Comment 101 Jaroslav Kysela 2020-01-22 19:13:50 UTC
I found the kernel issue with the current 5.4.13 stable kernel (it exists since 5.4.11): https://lore.kernel.org/alsa-devel/20200122190752.3081016-1-perex@perex.cz/T/#u

Jeremy, could you, please, apply my patch to the Fedora 5.4 kernel? The 5.5 kernel is not affected. Thank you.

I will check the rawhide kernel now.

Comment 102 Jeremy Cline 2020-01-24 09:15:54 UTC
(In reply to Jaroslav Kysela from comment #101)
> I found the kernel issue with the current 5.4.13 stable kernel (it exists
> since 5.4.11):
> https://lore.kernel.org/alsa-devel/20200122190752.3081016-1-perex@perex.cz/T/
> #u
> 
> Jeremy, could you, please, apply my patch to the Fedora 5.4 kernel? The 5.5
> kernel is not affected. Thank you.
> 
> I will check the rawhide kernel now.

I’ve pulled this into Fedora’s v5.4.14 (https://bodhi.fedoraproject.org/updates/FEDORA-2020-3278105741).

Comment 103 Benjamin Berg 2020-01-27 11:02:08 UTC
Seems like the kernel is working fine on the X1 now. The driver loads.

However, it tries to load intel/sof-tplg/sof-hda-generic-4ch.tplg but I only have intel/sof-tplg/sof-hda-generic.tplg installed on the machine.

Comment 104 ryan@testtoast.com 2020-01-27 22:25:05 UTC
> However, it tries to load intel/sof-tplg/sof-hda-generic-4ch.tplg but I only have intel/sof-tplg/sof-hda-generic.tplg installed on the machine.

If you installed that topology file manually, remove it and install the alsa-firmware and alsa-ucm packages, which are now up to date and contain all the required topology files including sof-hda-generic-4ch.tplg.

Comment 105 Benjamin Berg 2020-01-28 11:33:50 UTC
Created attachment 1655994 [details]
dmesg output with firmware loading

Hmm, yeah, that did help a lot. Things are mostly working, there is an error though (which I guess is harmless):

[   15.041250] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[   15.139138] sof-audio-pci 0000:00:1f.3: firmware boot complete

OK, so, I have a few other notes/issues:
 1. After reboot, the profile was "Off"; I turned it to "Play HiFi quality Music (unavailable)" using pavucontrol and then it started working
 2. All input devices are marked as "unplugged", *including* the "Digital Microphone"
 3. Plugging in a headset -> profile switches off again (sometimes it switches to "available" after selecting the profile in pavucontrol)
 4. The input gains are still not automatically adjusted
 5. I have 4 holes at the top of the laptop, these seem to be the "DMIC" microphones. There is another hole next to the camera, this one does not seem to do anything. I don't know whether the hole next to the camera is a indeed a microphone. But if it is, it would probably have a much better directional characteristic for making calls using the laptop. While the ones on the top would be great as a room microphone.

HDMI/DP seems to be detected correctly.

Comment 106 Benjamin Berg 2020-01-28 11:37:52 UTC
 3. Plugging in a headset -> profile switches off again (sometimes it switches to "available" after selecting the profile in pavucontrol)

I should say, that this seems to only happen when I have a USB sound card attached (via a dock). But the outputs just disappear in a way that make them impossible to select it in GNOME control center at least.

Comment 107 Jaroslav Kysela 2020-01-29 10:18:39 UTC
Do you have the pulseaudio from copr (comment 84) ?

Comment 108 Benjamin Berg 2020-01-29 11:11:26 UTC
(In reply to Jaroslav Kysela from comment #107)
> Do you have the pulseaudio from copr (comment 84) ?

I did not! Unfortunately, I might not be able to test this again until next week.

Comment 109 Javier Martinez Canillas 2020-01-29 11:15:51 UTC
(In reply to Jaroslav Kysela from comment #107)
> Do you have the pulseaudio from copr (comment 84) ?

Will that land in F31 as well?

Comment 110 Rex Dieter 2020-01-29 22:50:41 UTC
In general, pulseaudio git snapshots (what is in copr at the moment), are not good candidates for stable release updates.

Comment 111 Denzil Ferreira 2020-01-30 15:58:40 UTC
Hi guys,

Using Lenovo Thinkpad X1 Carbon 7th Gen. Now I have a working laptop with functional speakers and microphone! WOOHOO!

Kernel: Linux ferreira-x1c7g 5.4.14-200.fc31.x86_64 #1 SMP Thu Jan 23 13:06:12 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
pulseaudio: 13.0 from copr comment 84
enabled Fedora testing repos

I've added this to /etc/modprobe.d/alsa.conf
> options snd-intel-dspcfg dsp_driver=0

I've edited /etc/pulse/daemon.conf to have these:
> remixing-produce-lfe = yes
> remixing-consume-lfe = yes

This enables volume control on the speakers!

Removed this line for /etc/pulse/default.pa
> load-module module-alsa-source device=hw:0,7

Rebooted and voilá! Thanks!!!

Comment 112 Denzil Ferreira 2020-01-30 19:40:03 UTC
I did further tests at home: 
- HDMI/DP audio is also working properly and doesn't mess up the setup. 
- I can adjust the volume too, both over HDMI, speakers, and DMIC!

Working great as far as I can tell. Speaker sound is greatly improved to what it was before and I don't need to run alsamixer to raise the DMIC volume anymore.

Output of: sudo dmesg | grep sof
[   13.243130] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[   13.243232] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   13.243386] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
[   13.243392] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040380
[   13.243516] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
[   13.243648] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[   13.254896] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
[   13.254897] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[   13.304496] sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
[   13.304497] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[   13.390040] sof-audio-pci 0000:00:1f.3: Firmware info: version 1:4:2-66a5a
[   13.390042] sof-audio-pci 0000:00:1f.3: Firmware: ABI 3:11:0 Kernel ABI 3:11:0
[   13.390289] sof-audio-pci 0000:00:1f.3: firmware boot complete
[   13.393117] sof-audio-pci 0000:00:1f.3: Topology: ABI 3:11:0 Kernel ABI 3:11:0
[   13.393120] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name iDisp3 Tx not handled
[   13.393962] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name codec0_in not handled
[   13.393964] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name iDisp2 Tx not handled
[   13.395117] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name codec1_in not handled
[   13.395118] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name iDisp1 Tx not handled
[   13.396499] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name codec0_out not handled
[   13.396502] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name Analog CPU Playback not handled
[   13.399670] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name codec1_out not handled
[   13.399672] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name Digital CPU Playback not handled
[   13.399674] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name codec2_in not handled
[   13.399675] sof-audio-pci 0000:00:1f.3: warning: widget type 7 name Alt Analog CPU Playback not handled
[   13.399676] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name codec2_out not handled
[   13.399678] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name Analog CPU Capture not handled
[   13.400611] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name iDisp1_out not handled
[   13.400612] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name Digital CPU Capture not handled
[   13.402114] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name iDisp2_out not handled
[   13.402116] sof-audio-pci 0000:00:1f.3: warning: widget type 0 name Alt Analog CPU Capture not handled
[   13.402895] sof-audio-pci 0000:00:1f.3: warning: widget type 1 name iDisp3_out not handled
[   13.417895] sof-audio-pci 0000:00:1f.3: ASoC: Parent card not yet available, widget card binding deferred
[   13.508013] input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card2/input20
[   13.508072] input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card2/input21
[   13.508117] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card2/input22
[   13.508157] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card2/input23
[   13.509911] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card2/input24
[   18.304799] sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
[   18.399783] sof-audio-pci 0000:00:1f.3: firmware boot complete

Output of: sudo dmesg | grep snd
[   12.862256] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[   12.862384] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   13.027832] usbcore: registered new interface driver snd-usb-audio
[   13.159486] snd_soc_skl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040380
[   13.159612] snd_soc_skl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   13.447299] snd_hda_codec_realtek ehdaudio0D0: autoconfig for ALC285: line_outs=2 (0x14/0x17/0x0/0x0/0x0) type:speaker
[   13.447301] snd_hda_codec_realtek ehdaudio0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   13.447302] snd_hda_codec_realtek ehdaudio0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[   13.447303] snd_hda_codec_realtek ehdaudio0D0:    mono: mono_out=0x0
[   13.447304] snd_hda_codec_realtek ehdaudio0D0:    inputs:
[   13.447305] snd_hda_codec_realtek ehdaudio0D0:      Mic=0x19
[   13.490915] snd_hda_codec_realtek ehdaudio0D0: ASoC: sink widget AIF1TX overwritten
[   13.490920] snd_hda_codec_realtek ehdaudio0D0: ASoC: source widget AIF1RX overwritten
[   13.491089] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> DMIC48kHz 6 mapping ok
[   13.491115] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> DMIC16kHz 7 mapping ok
[   13.491149] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDA Analog 0 mapping ok
[   13.491186] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDA Digital 1 mapping ok
[   13.491211] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI1 3 mapping ok
[   13.491235] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI2 4 mapping ok
[   13.491261] skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI3 5 mapping ok

Comment 113 Javier Martinez Canillas 2020-01-31 10:11:46 UTC
(In reply to Rex Dieter from comment #110)
> In general, pulseaudio git snapshots (what is in copr at the moment), are
> not good candidates for stable release updates.

Yes, I know. What I tried to ask is if there was a plan to get the needed changes in F31 (either backporting the needed changes to the pulseaudio version in F31 or expecting a new release soon that can be a candidate a stable update).

Or will F31 users necessarily need to install this pulseaudio snapshot from COPR to have the audio working?

Comment 114 Hans de Goede 2020-01-31 10:53:24 UTC
Note that last time I tried them the pulseaudio git snapshots were causing regressions on Intel devices using the SST driver (instead of the HDA driver), like the SOF driver the SST driver uses the ASoC framework and it needs working UCM profiles for some reason the pulseaudio changes to improve the UCM support in pulse are breaking UCN support for decices with SST audio.

I plan to look into this next week.

Comment 115 Jaroslav Kysela 2020-01-31 15:17:01 UTC
(In reply to Hans de Goede from comment #114)
> Note that last time I tried them the pulseaudio git snapshots were causing
> regressions on Intel devices using the SST driver (instead of the HDA
> driver), like the SOF driver the SST driver uses the ASoC framework and it
> needs working UCM profiles for some reason the pulseaudio changes to improve
> the UCM support in pulse are breaking UCN support for decices with SST audio.
> 
> I plan to look into this next week.

I already isolated that issue. The problem is that the current UCM configurations are weak in the specific cases and we should handle this in a more systematic way.

All PlaybackPCM / CapturePCM values must be assigned to the SectionDevice only with the latest PA which handles correctly the inheritance of Value section among Device / Verb / Defaults. So all PlaybackPCM / CapturePCM values should be removed from SectionVerb. It's not only that problem. There are problems with the device naming (out of specification), missing priorities etc., inconsistend SupportedDevices / ConflictingDevices etc. While I was trying to fix all configs manually, I found that's really difficult to do this, because I don't have the real immediate feedback. I ended to create a verification tool which will detect those problems without the hardware.

Give me, please, more few days to finish this and push updated UCM configs which will work with old and new PA and we will have a real tool to do such checks. Basically, this tool will do the basic syntactic and value checks and emulate the real hardware using the alsa-info text files.

Comment 116 Peter F. Patel-Schneider 2020-02-01 19:55:41 UTC
My experience on my Lenovo Yoga C940 is not so good.

I have 
Kernel: Linux idefix 5.4.14-200.fc31.x86_64 #1 SMP Thu Jan 23 13:06:12 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
pulseaudio: 13.0 from copr 
didn't enable testing repo - got kernel directly from bodhi build

: I've added this to /etc/modprobe.d/alsa.conf
: > options snd-intel-dspcfg dsp_driver=0
Ditto.  This is required to have the sof stuff functional, I believe.

: I've edited /etc/pulse/daemon.conf to have these:
: > remixing-produce-lfe = yes
: > remixing-consume-lfe = yes
: 
: This enables volume control on the speakers!
What exactly does this do?  Do you have extra volume controls in alsamixer? 

: Removed this line for /etc/pulse/default.pa
: > load-module module-alsa-source device=hw:0,7
I didn't have this line in /etc/pulse/default.pa.  I end up with three HDMI/DP outputs, as expected, but their plugged-in state isn't updated.

On some boots things work as expected, but the extra speakers don't work because they are powered off by default.


On other boots I see
Feb 01 14:42:08 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: failed to init link iDisp1: -517
and no sound cards are found.

Comment 117 Denzil Ferreira 2020-02-02 09:19:26 UTC
: I've edited /etc/pulse/daemon.conf to have these:
: > remixing-produce-lfe = yes
: > remixing-consume-lfe = yes
: 
: This enables volume control on the speakers!
What exactly does this do?  Do you have extra volume controls in alsamixer? 

This allows me to progressively adjust the volume using the keyboard keys. Without it, the volume stayed loud all the way down to turn off when reaching 0%.


I also installed alsa-firmware and alsa-ucm from testing repo. Maybe that's missing for your machine?

Comment 118 Peter F. Patel-Schneider 2020-02-02 13:09:38 UTC
: I also installed alsa-firmware and alsa-ucm from testing repo. Maybe that's missing for your machine?

I tried upgrading these from updates-testing, but nothing new comes through.

Comment 119 Denzil Ferreira 2020-02-03 12:11:06 UTC
(In reply to Peter F. Patel-Schneider from comment #118)
> : I also installed alsa-firmware and alsa-ucm from testing repo. Maybe
> that's missing for your machine?
> 
> I tried upgrading these from updates-testing, but nothing new comes through.

If you install pavucontrol, in the configuration tab, do you see Cannon Point-LP High Definition Audio Controller and is the profile set to "Play High quality Music"?

In the Input Devices, I see on mine "Digital Microphone" under Cannon Point-LP High Definition Audio Controller Digital Microphone

I'm also using the Gnome Extension: https://extensions.gnome.org/extension/906/sound-output-device-chooser/

Which allows me to quickly select the input and output sources for the audio controller.

Hope it helps!
Denzil

Comment 120 Benjamin Berg 2020-02-11 15:33:40 UTC
OK, I did another test, this time with:

 * pulseaudio-13.0-2.20200105gitf5d36
 * alsa-firmware-1.2.1-5
 * alsa-ucm-1.2.1.2-4.fc31
 * Kernel: 5.4.18-200.fc31
 * Correctly set "options snd-intel-dspcfg dsp_driver=0"
 * Driver has loaded

And, pulseaudio is unhappy, complaining when trying to load the module after detecting the card:

  E: [pulseaudio] module-alsa-card.c: Failed to find a working profile.

So yeah, this is *not* working in my test.

Some observations, but I am not getting audio from PA so stopped there right now:
 1. I am still getting the "error: no reply expected, received 0x0" kernel warning
 2. alsamixer is showing me an insane amount of ports
 3. The Playback category is showing me "Mic Boost", etc.; seems like the category is not quite right?

(This is a fresh F31 installation; last time I already had some UCM files and firmware dropped in separately which might explain some differences.)

Comment 121 Jaroslav Kysela 2020-02-11 16:05:59 UTC
There's an issue with IPC errors (probably related to the video interface) in 5.5 kernel: https://github.com/thesofproject/linux/issues/1747

The workaround:

  # cat /etc/modprobe.d/alsa.conf
  options snd-sof-pci sof_pci_debug=1
  options snd-intel-dspcfg dsp-driver=0

I suspect that this patch might resolve this (will test ASAP):

  https://mailman.alsa-project.org/pipermail/alsa-devel/2020-February/162648.html

> 1. I am still getting the "error: no reply expected, received 0x0" kernel warning

We reported many times this to Intel people. Nobody care. It's harmless.

> 2. alsamixer is showing me an insane amount of ports

Yes, welcome to the ASoC driver jungle. Those tools become useless.

> 3. The Playback category is showing me "Mic Boost", etc.; seems like the category is not quite right?

It belongs to both playback (loopback) and capture. So we select only one category and the playback is first.

Comment 122 Benjamin Berg 2020-02-11 16:31:00 UTC
> We reported many times this to Intel people. Nobody care. It's harmless.

Yeah, I figured as much … just not very nice to throw around errors if everything is fine

> Yes, welcome to the ASoC driver jungle. Those tools become useless.
> It belongs to both playback (loopback) and capture. So we select only one category and the playback is first.

Fair enough.

I am not running into the IPC errors though, and the issue that PA refuses to use the device remains.

Comment 123 Peter F. Patel-Schneider 2020-02-11 17:49:58 UTC
Created attachment 1662509 [details]
system log extract on successful SOF boot

Comment 124 Peter F. Patel-Schneider 2020-02-11 17:55:32 UTC
My recent test was very successful.

Packages
 * pulseaudio-13.0-2.20200105gitf5d36
 * alsa-firmware-1.2.1-5
 * alsa-ucm-1.2.1.2-4.fc31
 * Kernel: 5.4.17-200.fc31
Options
# cat /etc/modprobe.d/alsa.conf
options snd-sof-pci sof_pci_debug=1
options snd-intel-dspcfg dsp-driver=0

The driver loads, alsa and pulseaudio are happy, sound plays, etc.  I'm going to keep running this to see if anything bad happens after suspend, etc.
There are a bunch of warnings about various widgets not being handled.  I've attached an extract of the system log

@Denzil In pavucontrol I see configuration "Smart Sound Technology Audio Controller" with profile "Play HiFi quality Music".  There are Input Device "Digital Microphone" and three unplugged HDMI outputs plus the analogue output.

Comment 125 Peter F. Patel-Schneider 2020-02-11 17:56:03 UTC
Created attachment 1662511 [details]
system log extract on successful SOF boot

Comment 126 m.frueauff 2020-02-11 19:20:37 UTC
Peter,

Same config as Yours but kernel kernel-5.4.18-200.fc31.x86_64 and sound is not working any more.

Attached the system logs.


regs.
Marek

btw.
With exactly the same config as Yours only 2 of 4 speakers plays sound on X1 Carbon 7th.

Comment 127 m.frueauff 2020-02-11 19:23:51 UTC
Created attachment 1662515 [details]
kernel-5.4.18-200.fc31.x86_64 - faild to initiate sound - syslog

Comment 128 Peter F. Patel-Schneider 2020-02-11 20:36:27 UTC
Marek:  I also only have two speakers (of the five on my Yoga C940) producing sound.  This is a separate problem having to do with the post-sound-card amplifiers.  There might be a known solution for your X1.

Comment 129 Denzil Ferreira 2020-02-12 07:01:50 UTC
(In reply to Peter F. Patel-Schneider from comment #124)
> My recent test was very successful.
> 
> Packages
>  * pulseaudio-13.0-2.20200105gitf5d36
>  * alsa-firmware-1.2.1-5
>  * alsa-ucm-1.2.1.2-4.fc31
>  * Kernel: 5.4.17-200.fc31
> Options
> # cat /etc/modprobe.d/alsa.conf
> options snd-sof-pci sof_pci_debug=1
> options snd-intel-dspcfg dsp-driver=0
> 
> The driver loads, alsa and pulseaudio are happy, sound plays, etc.  I'm
> going to keep running this to see if anything bad happens after suspend, etc.
> There are a bunch of warnings about various widgets not being handled.  I've
> attached an extract of the system log
> 
> @Denzil In pavucontrol I see configuration "Smart Sound Technology Audio
> Controller" with profile "Play HiFi quality Music".  There are Input Device
> "Digital Microphone" and three unplugged HDMI outputs plus the analogue
> output.

Also working for me with kernel 5.4.18-200! 

My installed packages:
- pulseaudio: 13.0-2.20200105gitf5d36.fc31
- alsa-firmware: 1.2.1-5.fc31
- alsa-ucm: 1.2.1.2-4.fc31
- kernel: Linux ferreira-x1c7g 5.4.18-200.fc31.x86_64

I added the snf-sof-pci sof_pci_debug=1 to my modprobe too. This is looking great and makes my X1 Carbon 7th Gen working flawlessly with Fedora 31 now. Suspend works (I have it set to Linux in the BIOS) and battery life is easily 7-9h on the UHD 4K display (not touchscreen) :-D

Comment 130 Denzil Ferreira 2020-02-12 07:04:14 UTC
(In reply to Peter F. Patel-Schneider from comment #128)
> Marek:  I also only have two speakers (of the five on my Yoga C940)
> producing sound.  This is a separate problem having to do with the
> post-sound-card amplifiers.  There might be a known solution for your X1.

@Marek

edit /etc/pulse/default.pa and add these two lines:

load-module module-alsa-sink device=hw:0,0 channels=4
load-module module-alsa-source device=hw:0,7 channels=4

That should enable all speakers.

Comment 131 Denzil Ferreira 2020-02-12 07:14:41 UTC
(In reply to Denzil Ferreira from comment #130)
> (In reply to Peter F. Patel-Schneider from comment #128)
> > Marek:  I also only have two speakers (of the five on my Yoga C940)
> > producing sound.  This is a separate problem having to do with the
> > post-sound-card amplifiers.  There might be a known solution for your X1.
> 
> @Marek
> 
> edit /etc/pulse/default.pa and add these two lines:
> 
> load-module module-alsa-sink device=hw:0,0 channels=4
> load-module module-alsa-source device=hw:0,7 channels=4
> 
> That should enable all speakers.

For full disclosure, I got these from here: https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_7)
On that wiki, they also say to blacklist snd_hda_intel and snd_soc_skl but I didn't have to do that at all on Fedora.

Comment 132 m.frueauff 2020-02-12 08:21:41 UTC
(In reply to Denzil Ferreira from comment #131)
> (In reply to Denzil Ferreira from comment #130)
> > (In reply to Peter F. Patel-Schneider from comment #128)
> > > Marek:  I also only have two speakers (of the five on my Yoga C940)
> > > producing sound.  This is a separate problem having to do with the
> > > post-sound-card amplifiers.  There might be a known solution for your X1.
> > 
> > @Marek
> > 
> > edit /etc/pulse/default.pa and add these two lines:
> > 
> > load-module module-alsa-sink device=hw:0,0 channels=4
> > load-module module-alsa-source device=hw:0,7 channels=4
> > 
> > That should enable all speakers.
> 
> For full disclosure, I got these from here:
> https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_7)
> On that wiki, they also say to blacklist snd_hda_intel and snd_soc_skl but I
> didn't have to do that at all on Fedora.

Denzil

Thanks a lot - Your trick do the job ! :)
Now I have all 4 speakers generating sound !

regs.
Marek

Comment 133 Jaroslav Kysela 2020-02-12 09:02:51 UTC
Could you attach C940 alsa-info.sh output running 5.5 kernel? Thank you.

Comment 134 Denzil Ferreira 2020-02-12 11:07:14 UTC
Just in case you face the same issue as I just did today. I got a new monitor today, with built-in speakers. I attached my X1 Carbon 7th Gen to the monitor using an HDMI cable and booted it up from cold. I don't get any output devices detected. This was weird, because until then I had sound on the laptop (albeit no external speakers).

So I rebooted, this time without the monitor attached. Output devices detected! I connected the monitor, all OK and I can transition from the laptop to the monitor speakers no issue. 

So if you are using your laptop connected to an external display with built-in speakers: boot first and only then connect the monitor!

May help some people here :o)

Comment 135 Peter F. Patel-Schneider 2020-02-12 12:02:35 UTC
I'm still in the situation that some boots are not successful on my C940.  No change from https://bugzilla.redhat.com/show_bug.cgi?id=1772498#c124 but there is an error from sof-audio-pci.  Here is the log extract:

idefix ~> journalctl -b | grep "sof-\|hda[-_]"
Feb 12 06:50:07 idefix kernel: snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Feb 12 06:50:07 idefix kernel: snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
Feb 12 06:50:07 idefix kernel: sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Feb 12 06:50:07 idefix kernel: sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
Feb 12 06:50:07 idefix kernel: sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
Feb 12 06:50:07 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
Feb 12 06:50:07 idefix kernel: sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
Feb 12 06:50:07 idefix kernel: sof-audio-pci 0000:00:1f.3: use msi interrupt mode
Feb 12 06:50:07 idefix kernel: sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
Feb 12 06:50:07 idefix kernel: sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
Feb 12 06:50:07 idefix kernel: sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
Feb 12 06:50:08 idefix kernel: sof-audio-pci 0000:00:1f.3: error: codec #2 probe error, ret: -5
Feb 12 06:50:08 idefix kernel: sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
Feb 12 06:50:08 idefix kernel: sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Feb 12 06:50:08 idefix kernel: sof-audio-pci 0000:00:1f.3: Firmware info: version 1:1:0-fcf6c
Feb 12 06:50:08 idefix kernel: sof-audio-pci 0000:00:1f.3: Firmware: ABI 3:11:0 Kernel ABI 3:11:0
Feb 12 06:50:08 idefix kernel: sof-audio-pci 0000:00:1f.3: firmware boot complete
Feb 12 06:50:08 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: failed to init link iDisp1: -517

Also, sometimes suspending and resuming causes problems.  I'll try to get better information on this, but it may be related to the above.

Comment 136 Peter F. Patel-Schneider 2020-02-12 12:06:49 UTC
I'm attaching the output of alsa-info.sh for an unsuccessful boot on my C940.  This is with kernel 5.4.17-200.fc31.x86_64+debug.  I have an older vanilla 5.5, do you specifically want that or just output for a successful boot on this kernel?

Comment 137 Peter F. Patel-Schneider 2020-02-12 12:09:23 UTC
Created attachment 1662656 [details]
alsa-info.sh for unsuccessful boot on Lenovo Yoga C940 with kernel 5.4.17-200.fc31.x86_64+debug

Comment 138 Jaroslav Kysela 2020-02-12 14:19:32 UTC
Peter, could you test kernel from http://people.redhat.com/~jkysela/sof/kernel-i915/ ? The kernel fix mentioned in comment#121 is there.

Also, please, attach alsa-info output from the working boot. Thank you.

Comment 139 Peter F. Patel-Schneider 2020-02-12 14:40:14 UTC
I just got this alsa-info.sh output from a working boot.  :-)
I'm attaching the output.  
I'll try the new kernel soon-ish.

Comment 140 Peter F. Patel-Schneider 2020-02-12 14:41:29 UTC
Created attachment 1662687 [details]
alsa-info.sh for successful boot on Lenovo Yoga C940 with kernel 5.4.17-200.fc31.x86_64+debug

Comment 141 Peter F. Patel-Schneider 2020-02-12 14:44:46 UTC
Here is a system log extract that might show some extra information:

idefix 2020 CRD> journalctl -b | grep "sof-\|hda[-_]"
Feb 12 08:30:11 idefix kernel: snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Feb 12 08:30:11 idefix kernel: snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: use msi interrupt mode
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: unexpected ipc interrupt raised!
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: Firmware info: version 1:1:0-fcf6c
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: Firmware: ABI 3:11:0 Kernel ABI 3:11:0
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: firmware boot complete
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: info: override FE DAI link iDisp1
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: info: override FE DAI link iDisp2
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: info: override FE DAI link iDisp3
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: info: override FE DAI link Analog Playback and Capture
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: info: override FE DAI link Digital Playback and Capture
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: info: override FE DAI link dmic01
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: info: override FE DAI link dmic16k
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: Topology: ABI 3:11:0 Kernel ABI 3:11:0
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 7 name iDisp3 Tx not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 0 name codec0_in not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 7 name iDisp2 Tx not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 0 name codec1_in not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 7 name iDisp1 Tx not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 1 name codec0_out not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 7 name Analog CPU Playback not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 1 name codec1_out not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 7 name Digital CPU Playback not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 0 name codec2_in not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 7 name Alt Analog CPU Playback not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 1 name codec2_out not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 0 name Analog CPU Capture not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 1 name iDisp1_out not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 0 name Digital CPU Capture not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 1 name iDisp2_out not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 0 name Alt Analog CPU Capture not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: warning: widget type 1 name iDisp3_out not handled
Feb 12 08:30:11 idefix kernel: sof-audio-pci 0000:00:1f.3: ASoC: Parent card not yet available, widget card binding deferred
Feb 12 08:30:11 idefix kernel: snd_hda_codec_realtek ehdaudio0D0: autoconfig for ALC298: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
Feb 12 08:30:11 idefix kernel: snd_hda_codec_realtek ehdaudio0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
Feb 12 08:30:11 idefix kernel: snd_hda_codec_realtek ehdaudio0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
Feb 12 08:30:11 idefix kernel: snd_hda_codec_realtek ehdaudio0D0:    mono: mono_out=0x0
Feb 12 08:30:11 idefix kernel: snd_hda_codec_realtek ehdaudio0D0:    inputs:
Feb 12 08:30:11 idefix kernel: snd_hda_codec_realtek ehdaudio0D0:      Mic=0x18
Feb 12 08:30:11 idefix kernel: snd_hda_codec_realtek ehdaudio0D0: ASoC: sink widget AIF1TX overwritten
Feb 12 08:30:11 idefix kernel: snd_hda_codec_realtek ehdaudio0D0: ASoC: source widget AIF1RX overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: intel-hdmi-hifi1 <-> iDisp1 Pin mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: intel-hdmi-hifi2 <-> iDisp2 Pin mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: intel-hdmi-hifi3 <-> iDisp3 Pin mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: Analog Codec DAI <-> Analog CPU DAI mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: Digital Codec DAI <-> Digital CPU DAI mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: dmic-hifi <-> DMIC01 Pin mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: dmic-hifi <-> DMIC16k Pin mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> DMIC48kHz 6 mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> DMIC16kHz 7 mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDA Analog 0 mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDA Digital 1 mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI1 3 mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI2 4 mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: snd-soc-dummy-dai <-> HDMI3 5 mapping ok
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi3 overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi2 overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget hifi1 overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Codec Output Pin1 overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Codec Input Pin1 overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Analog Codec Playback overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Digital Codec Playback overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: sink widget Alt Analog Codec Playback overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Analog Codec Capture overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Digital Codec Capture overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: source widget Alt Analog Codec Capture overwritten
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
Feb 12 08:30:11 idefix kernel: skl_hda_dsp_generic skl_hda_dsp_generic: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 4
Feb 12 08:30:11 idefix kernel: input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input32
Feb 12 08:30:11 idefix kernel: input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input33
Feb 12 08:30:11 idefix kernel: input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input34
Feb 12 08:30:11 idefix kernel: input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input35
Feb 12 08:30:11 idefix kernel: input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input36
Feb 12 08:30:13 idefix alsactl[1071]: Found hardware: "sof-hda-dsp" "Realtek ALC298" "HDA:8086280f,80860101,00100000 HDA:10ec0298,17aa3818,00100103 cfg-dmics:2" "" ""

Comment 142 Peter F. Patel-Schneider 2020-02-12 15:20:34 UTC
 Jaroslav, kernel 5.5.2-200.sof1.fc31.x86_64 appears to be working.

I do see some errors:

Feb 12 10:04:35 idefix alsactl[1049]: Found hardware: "sof-hda-dsp" "Realtek ALC298" "HDA:8086280f,80860101,00100000 HDA:10ec0298,17aa3818,00100103 cfg-dmics:2" "" ""
Feb 12 10:04:46 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:04:46 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 12 10:04:52 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:04:52 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp3
Feb 12 10:04:52 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:04:52 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 12 10:04:52 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:04:52 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp1
Feb 12 10:04:52 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:04:52 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp2

I have two options in /etc/modprobe.d/alsa.conf 
options snd-sof-pci sof_pci_debug=1
options snd-intel-dspcfg dsp-driver=0

What should this be for this kernel?

Comment 143 Hans de Goede 2020-02-12 15:26:53 UTC
Peter, in my own experience with the 5.5 kernels (without the extra patch which Jaroslav has added) my X1 7th gen crashes when suspending it,
passing "options snd-intel-dspcfg dsp-driver=1" fixes this, so it most likely has something to do with the SOF driver.

I don't have time to look into this atm, since you are running 5.5.2-200.sof1.fc31.x86_64 now, can you check if that one has working suspend / resume (while using the SOF driver) ?

Comment 144 Jaroslav Kysela 2020-02-12 15:33:33 UTC
The SOF bug for IPC errors is here:  https://github.com/thesofproject/linux/issues/1747

It appears like a wrong timing / usage of IPC calls from the driver side. Hopefully, Intel will respond with a solution.

Note that sof_pci_debug=1 means SOF_PCI_DISABLE_PM_RUNTIME ...

Comment 145 Peter F. Patel-Schneider 2020-02-12 15:35:43 UTC
I don't get a crash but there are some problems.   I think I had a sound play loop a bit after resuming, but it wasn't permanent.

Here are some errors in the system log when restoring and just after:

Feb 12 10:28:32 idefix kernel: sof-audio-pci 0000:00:1f.3: error: cl_dsp_init: timeout for HIPCIE done
Feb 12 10:28:32 idefix kernel: sof-audio-pci 0000:00:1f.3: error: status = 0xffffffff panic = 0xffffffff
Feb 12 10:28:32 idefix kernel: sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Feb 12 10:28:32 idefix kernel: sof-audio-pci 0000:00:1f.3: firmware boot complete
Feb 12 10:28:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:28:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture

I wasn't playing sound when suspending but started shortly thereafter.

Comment 146 Peter F. Patel-Schneider 2020-02-12 15:41:53 UTC
Suspend and resume work, but produce a few errors, again with the two-line /etc/modprobe.d/alsa.conf 

>> lid close and then open
Feb 12 10:38:45 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:38:45 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 12 10:38:45 idefix kernel:  Analog Playback and Capture: ASoC: trigger BE failed -22
Feb 12 10:38:45 idefix kernel:  HDA Analog: ASoC: trigger FE cmd: 5 failed: -22
Feb 12 10:38:45 idefix kernel: sof-audio-pci 0000:00:1f.3: error: cl_dsp_init: timeout for HIPCIE done
Feb 12 10:38:45 idefix kernel: sof-audio-pci 0000:00:1f.3: error: status = 0xffffffff panic = 0xffffffff
Feb 12 10:38:45 idefix kernel: sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Feb 12 10:38:45 idefix kernel: sof-audio-pci 0000:00:1f.3: firmware boot complete

>> suspend via shutdown menu and resume via Fn key
Feb 12 10:39:54 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:39:54 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 12 10:39:54 idefix kernel:  Analog Playback and Capture: ASoC: trigger BE failed -22
Feb 12 10:39:54 idefix kernel:  HDA Analog: ASoC: trigger FE cmd: 5 failed: -22
Feb 12 10:39:54 idefix kernel: sof-audio-pci 0000:00:1f.3: error: cl_dsp_init: timeout for HIPCIE done
Feb 12 10:39:54 idefix kernel: sof-audio-pci 0000:00:1f.3: error: status = 0xffffffff panic = 0xffffffff
Feb 12 10:39:54 idefix kernel: sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Feb 12 10:39:54 idefix kernel: sof-audio-pci 0000:00:1f.3: firmware boot complete

Comment 147 Peter F. Patel-Schneider 2020-02-12 15:50:47 UTC
With an empty /etc/modprobe.d/alsa.conf things are still working, but more errors show up on boot:

Feb 12 10:43:06 idefix alsactl[1045]: Found hardware: "sof-hda-dsp" "Realtek ALC298" "HDA:8086280f,80860101,00100000 HDA:10ec0298,17aa3818,00100103 cfg-dmics:2" "" ""
Feb 12 10:43:17 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:43:17 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 12 10:43:17 idefix kernel:  Analog Playback and Capture: ASoC: trigger BE failed -22
Feb 12 10:43:17 idefix kernel:  HDA Analog: ASoC: trigger FE cmd: 0 failed: -22
Feb 12 10:43:22 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:43:22 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp1
Feb 12 10:43:22 idefix kernel:  iDisp1: ASoC: trigger BE failed -22
Feb 12 10:43:22 idefix kernel:  HDMI1: ASoC: trigger FE cmd: 0 failed: -22
Feb 12 10:43:22 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:43:22 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp2
Feb 12 10:43:22 idefix kernel:  iDisp2: ASoC: trigger BE failed -22
Feb 12 10:43:22 idefix kernel:  HDMI2: ASoC: trigger FE cmd: 0 failed: -22
Feb 12 10:43:22 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:43:22 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp3
Feb 12 10:43:22 idefix kernel:  iDisp3: ASoC: trigger BE failed -22
Feb 12 10:43:22 idefix kernel:  HDMI3: ASoC: trigger FE cmd: 0 failed: -22
Feb 12 10:43:22 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:43:22 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 12 10:43:22 idefix kernel:  Analog Playback and Capture: ASoC: trigger BE failed -22
Feb 12 10:43:22 idefix kernel:  HDA Analog: ASoC: trigger FE cmd: 0 failed: -22

and on restore from suspend:

 journalctl -f | grep "sof-\|hda[-_]\|ASoC"
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 12 10:49:57 idefix kernel:  Analog Playback and Capture: ASoC: trigger BE failed -22
Feb 12 10:49:57 idefix kernel:  HDA Analog: ASoC: trigger FE cmd: 5 failed: -22
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 12 10:49:57 idefix kernel:  Analog Playback and Capture: ASoC: trigger BE failed -22
Feb 12 10:49:57 idefix kernel:  HDA Analog: ASoC: trigger FE cmd: 5 failed: -22
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp1
Feb 12 10:49:57 idefix kernel:  iDisp1: ASoC: trigger BE failed -22
Feb 12 10:49:57 idefix kernel:  HDMI1: ASoC: trigger FE cmd: 5 failed: -22
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp2
Feb 12 10:49:57 idefix kernel:  iDisp2: ASoC: trigger BE failed -22
Feb 12 10:49:57 idefix kernel:  HDMI2: ASoC: trigger FE cmd: 5 failed: -22
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for iDisp3
Feb 12 10:49:57 idefix kernel:  iDisp3: ASoC: trigger BE failed -22
Feb 12 10:49:57 idefix kernel:  HDMI3: ASoC: trigger FE cmd: 5 failed: -22
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: cl_dsp_init: timeout for HIPCIE done
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: status = 0xffffffff panic = 0xffffffff
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Feb 12 10:49:57 idefix kernel: sof-audio-pci 0000:00:1f.3: firmware boot complete

Comment 148 Parker Berberian 2020-02-14 03:40:07 UTC
I am experiencing some issues on my X1 Carbon gen 7.
My sound output it only 2 channels, and sounds very poor quality and sounds tinny.

My sound card (Cannon Point-LP High Definition Audio Controller) is listed in pavucontrol for input and output device, but under "Configuration" it says "no cards are available for configuration"

My setup:

kernel: 5.4.19-200.fc31.x86_64
alsa-firmware: 1.2.1-5
alsa-ucm: 1.2.1.2-4
pulseaudio: 13.0

[~]$ cat /etc/modprobe.d/alsa.conf 
options snd-sof-pci sof-pci_debug=1
options snd-intel-dspcfg dsp_driver=0

[~]$ cat /etc/modprobe.d/blacklist.conf 
blacklist snd_hda_intel
blacklist snd_soc_skl

I also added these two lines to /etc/pulse/default.pa
load-module module-alsa-sink device=hw:0,0 channels=4
load-module module-alsa-source device=hw:0,7 channels=4


It seems like other people in this thread are able to see their device in the configuration tab. Any ideas?

Comment 149 Denzil Ferreira 2020-02-14 04:46:41 UTC
(In reply to Parker Berberian from comment #148)
> [~]$ cat /etc/modprobe.d/blacklist.conf 
> blacklist snd_hda_intel
> blacklist snd_soc_skl

You don't need to blacklist these modules. That's why the card is not detected properly.

D

Comment 150 Parker Berberian 2020-02-14 05:09:06 UTC
> You don't need to blacklist these modules. That's why the card is not
> detected properly.


I blacklisted those modules based on the documentation from the arch wiki (also how I got the pulseaudio config): https://wiki.archlinux.org/index.php/Lenovo_ThinkPad_X1_Carbon_(Gen_7)

I just removed the lines from the blacklist file and double checked that they are loaded, but there is no change. The sound card is still not detected properly.

Comment 151 Peter F. Patel-Schneider 2020-02-14 13:28:41 UTC
I'm now running with 5.5.2-200.sof1.fc31.x86_6 and an empty /etc/modprobe/alsa.conf and everything else standard F31, except pulseaudio 
13.0  2.20200105gitf5d36.fc31 from rdieter's copr repository.   Should I go back to pulseaudio from F31?

Things are mostly good.  I've had a boot where pulseaudio doesn't start up correctly, causing aplay -l to list outputs but then hang and playing sound does not work.  This appears to be less common than the previous problem with no sound cards being detected at all, but my sample size is small.

Suspend and resume doesn't cause problems playing or recording sound but some errors are produced on resume.  Here are extracts from the system log 

Feb 14 04:45:27 idefix kernel: sof-audio-pci 0000:00:1f.3: error: cl_dsp_init: timeout for HIPCIE done
Feb 14 04:45:27 idefix kernel: sof-audio-pci 0000:00:1f.3: error: status = 0xffffffff panic = 0xffffffff
Feb 14 04:45:27 idefix kernel: sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Feb 14 04:45:27 idefix kernel: sof-audio-pci 0000:00:1f.3: firmware boot complete
Feb 14 06:46:20 idefix kernel: sof-audio-pci 0000:00:1f.3: error: cl_dsp_init: timeout for HIPCIE done
Feb 14 06:46:20 idefix kernel: sof-audio-pci 0000:00:1f.3: error: status = 0xffffffff panic = 0xffffffff
Feb 14 06:46:20 idefix kernel: sof-audio-pci 0000:00:1f.3: error: no reply expected, received 0x0
Feb 14 06:46:20 idefix kernel: sof-audio-pci 0000:00:1f.3: firmware boot complete

I also see errors reported but these don't seem to be producing any noticeable effects

Feb 14 07:14:03 idefix dnf[21687]: Copr repo for pulseaudio owned by rdieter        12 kB/s | 3.3 kB     00:00
Feb 14 08:11:11 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 14 08:11:11 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 14 08:18:04 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 14 08:18:04 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
Feb 14 08:20:43 idefix kernel: sof-audio-pci 0000:00:1f.3: error: ipc error for 0x80010000 size 12
Feb 14 08:20:43 idefix kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture

Comment 152 Parker Berberian 2020-02-14 14:24:34 UTC
(In reply to Peter F. Patel-Schneider from comment #151)
> I'm now running with 5.5.2-200.sof1.fc31.x86_6 and an empty
> /etc/modprobe/alsa.conf and everything else standard F31, except pulseaudio 
> 13.0  2.20200105gitf5d36.fc31 from rdieter's copr repository.   Should I go
> back to pulseaudio from F31?


Have you modified your pulseaudio configuration at all? Pulseaudio cannot recognize my sound card at all without specifying 

load-module module-alsa-sink device=hw:0,0 channels=4

in the default.pa. And I still cannot access device profiles or configurations, so pulseaudio does not fully recognize the sound card.

Comment 153 Sammy 2020-02-14 19:30:22 UTC
This is driving me crazy! I have Carbon X1 (gen 7) and tried all the recipes discussed here (including running the sof1 kernel) etc. Pulseaduio git from copr and all the updated alsa-lib etc. Fedora 31 x86_64.

In all cases the devices are found and the system startup sound comes loud and clear (running KDE plasma). After that it is all downhill. Trying to watch any video on any browser (youtube, cnn on firefox or chrome) kills the sound and almost the system due to repeated kernel messages:

========================
 kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
 kernel: sof-audio-pci 0000:00:1f.3: ASoC: can't set Analog CPU DAI hw params: -110
 kernel: Analog Playback and Capture: ASoC: hw_params BE failed -110
 kernel: HDA Analog: ASoC: hw_params BE failed -110
 pulseaudio[1421]: E: [alsa-sink-HDA Analog (*)] alsa-sink.c: Failed to set hardware parameters: Connection timed out
 kernel: sof-audio-pci 0000:00:1f.3: error: ipc timed out for 0x80010000 size 120
 kernel: sof-audio-pci 0000:00:1f.3: error: status = 0x001c003c panic = 0x00000003
 kernel: sof-audio-pci 0000:00:1f.3: error: hda irq intsts 0x00000000 intlctl 0x00000000 rirb 00
 kernel: sof-audio-pci 0000:00:1f.3: error: dsp irq ppsts 0x00000000 adspis 0x00000000
 kernel: sof-audio-pci 0000:00:1f.3: error: host status 0x00000000 dsp status 0x00040000 mask 0x00000000
 kernel: sof-audio-pci 0000:00:1f.3: error: failed to set dai config for Analog Playback and Capture
 kernel: sof-audio-pci 0000:00:1f.3: ASoC: can't set Analog CPU DAI hw params: -110
 kernel: Analog Playback and Capture: ASoC: hw_params BE failed -110
==========================

Any help would be appreciated!

Comment 154 Jaroslav Kysela 2020-02-14 19:42:29 UTC
Try to disable runtime PM (options snd-sof-pci sof-pci_debug=1) to avoid DSP lockup. Anyway, the IPC errors means that the driver does not operate correctly. I am trying to resolve this with Intel: https://github.com/thesofproject/linux/issues/1747 . Until resolved, we cannot expect the full functionality.

Comment 155 Sammy 2020-02-14 19:45:26 UTC
Thank you for all your efforts. I will be patient and follow this thread to test as things become available.

Comment 156 Peter F. Patel-Schneider 2020-02-15 14:39:26 UTC
(In reply to Parker Berberian from comment #152)
> (In reply to Peter F. Patel-Schneider from comment #151)
> > I'm now running with 5.5.2-200.sof1.fc31.x86_6 and an empty
> > /etc/modprobe/alsa.conf and everything else standard F31, except pulseaudio 
> > 13.0  2.20200105gitf5d36.fc31 from rdieter's copr repository.   Should I go
> > back to pulseaudio from F31?
> 
> 
> Have you modified your pulseaudio configuration at all? Pulseaudio cannot
> recognize my sound card at all without specifying 
> 
> load-module module-alsa-sink device=hw:0,0 channels=4
> 
> in the default.pa. And I still cannot access device profiles or
> configurations, so pulseaudio does not fully recognize the sound card.

I have a Yoga C940, which has some differences from the X1 (Generation 7).  I don't need any changes to pulseaudio, but I am running a pre-release pulseaudio.  I don't know whether this is a good idea - I think I went to the pre-release version a while ago because of some other problems.

peter


Note You need to log in before you can comment on or make changes to this bug.