Also using a Lenovo X1 7th generation. I can confirm that everything works using 5.3.0-20. I suspect that I've compared to Joel above me, taken a few extra steps:
* Added snd_hda_intel and snd_soc_skl to /etc/modprobe/blacklist.conf * Added the alsa-ucm files from [1] to /usr/share/alsa/ucm/sof- skl_hda_card * Added this sof topology file [2] from a Lenovo employee to /usr/lib/firmware/intel/sof-tplg I have the following devices displayed using `arecord -l` card 0: sofsklhdacard [sof-skl_hda_card], device 0: HDA Analog (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofsklhdacard [sof-skl_hda_card], device 1: HDA Digital (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofsklhdacard [sof-skl_hda_card], device 6: DMIC32 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: sofsklhdacard [sof-skl_hda_card], device 7: DMIC16 (*) [] Subdevices: 1/1 Subdevice #0: subdevice #0 In pulseaudio I have the following sources index: 4 name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_0_5__sink.monitor> driver: <module-alsa-card.c> flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 1030 volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB balance 0,00 base volume: 65536 / 100% / 0,00 dB volume steps: 65537 muted: no current latency: 0,00 ms max rewind: 0 KiB sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configured latency: 0,00 ms; range is 0,50 .. 341,00 ms monitor_of: 2 card: 2 <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic> module: 9 properties: device.description = "Monitor of Cannon Point-LP High Definition Audio Controller HDMI3/DP3 Output" device.class = "monitor" alsa.card = "0" alsa.card_name = "sof-skl_hda_card" alsa.long_card_name = "LENOVO-20QDS0A600-ThinkPadX1Carbon7th-20QDS0A600" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "9dc8" device.product.name = "Cannon Point-LP High Definition Audio Controller" device.string = "0" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" index: 5 name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_0_4__sink.monitor> driver: <module-alsa-card.c> flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 1030 volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB balance 0,00 base volume: 65536 / 100% / 0,00 dB volume steps: 65537 muted: no current latency: 0,00 ms max rewind: 0 KiB sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configured latency: 0,00 ms; range is 0,50 .. 341,00 ms monitor_of: 3 card: 2 <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic> module: 9 properties: device.description = "Monitor of Cannon Point-LP High Definition Audio Controller HDMI2/DP2 Output" device.class = "monitor" alsa.card = "0" alsa.card_name = "sof-skl_hda_card" alsa.long_card_name = "LENOVO-20QDS0A600-ThinkPadX1Carbon7th-20QDS0A600" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "9dc8" device.product.name = "Cannon Point-LP High Definition Audio Controller" device.string = "0" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" index: 6 name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_0_3__sink.monitor> driver: <module-alsa-card.c> flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 1030 volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB balance 0,00 base volume: 65536 / 100% / 0,00 dB volume steps: 65537 muted: no current latency: 0,00 ms max rewind: 0 KiB sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configured latency: 0,00 ms; range is 0,50 .. 341,00 ms monitor_of: 4 card: 2 <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic> module: 9 properties: device.description = "Monitor of Cannon Point-LP High Definition Audio Controller HDMI1/DP1 Output" device.class = "monitor" alsa.card = "0" alsa.card_name = "sof-skl_hda_card" alsa.long_card_name = "LENOVO-20QDS0A600-ThinkPadX1Carbon7th-20QDS0A600" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "9dc8" device.product.name = "Cannon Point-LP High Definition Audio Controller" device.string = "0" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" index: 7 name: <alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofsklhdacard_0__sink.monitor> driver: <module-alsa-card.c> flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 1030 volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB balance 0,00 base volume: 65536 / 100% / 0,00 dB volume steps: 65537 muted: no current latency: 0,00 ms max rewind: 0 KiB sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configured latency: 0,00 ms; range is 0,50 .. 341,00 ms monitor_of: 5 card: 2 <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic> module: 9 properties: device.description = "Monitor of Cannon Point-LP High Definition Audio Controller Speaker + Headphone" device.class = "monitor" alsa.card = "0" alsa.card_name = "sof-skl_hda_card" alsa.long_card_name = "LENOVO-20QDS0A600-ThinkPadX1Carbon7th-20QDS0A600" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "9dc8" device.product.name = "Cannon Point-LP High Definition Audio Controller" device.string = "0" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" * index: 8 name: <alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_0_6__source> driver: <module-alsa-card.c> flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 9030 volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB balance 0,00 base volume: 65536 / 100% / 0,00 dB volume steps: 65537 muted: no current latency: 0,00 ms max rewind: 0 KiB sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configured latency: 0,00 ms; range is 0,50 .. 341,00 ms card: 2 <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic> module: 9 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "" alsa.id = "DMIC32 (*)" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "6" alsa.card = "0" alsa.card_name = "sof-skl_hda_card" alsa.long_card_name = "LENOVO-20QDS0A600-ThinkPadX1Carbon7th-20QDS0A600" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "9dc8" device.product.name = "Cannon Point-LP High Definition Audio Controller" device.string = "hw:0,6" device.buffering.buffer_size = "65472" device.buffering.fragment_size = "16320" device.access_mode = "mmap+timer" device.profile.name = "HiFi: hw:0,6: source" device.profile.description = "DMIC Stereo" device.description = "Cannon Point-LP High Definition Audio Controller DMIC Stereo" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" ports: [In] Dmic: DMIC Stereo (priority 100, latency offset 0 usec, available: unknown) properties: active port: <[In] Dmic> index: 9 name: <alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_0_0__source> driver: <module-alsa-card.c> flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 9030 volume: front-left: 61681 / 94% / -1,58 dB, front-right: 61681 / 94% / -1,58 dB balance 0,00 base volume: 65536 / 100% / 0,00 dB volume steps: 65537 muted: no current latency: 0,00 ms max rewind: 0 KiB sample spec: s16le 2ch 48000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configured latency: 0,00 ms; range is 0,50 .. 341,00 ms card: 2 <alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic> module: 9 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "" alsa.id = "HDA Analog (*)" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "0" alsa.card = "0" alsa.card_name = "sof-skl_hda_card" alsa.long_card_name = "LENOVO-20QDS0A600-ThinkPadX1Carbon7th-20QDS0A600" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "9dc8" device.product.name = "Cannon Point-LP High Definition Audio Controller" device.string = "hw:0,0" device.buffering.buffer_size = "65472" device.buffering.fragment_size = "16320" device.access_mode = "mmap+timer" device.profile.name = "HiFi: hw:0,0: source" device.profile.description = "Headset Mic" device.description = "Cannon Point-LP High Definition Audio Controller Headset Mic" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" ports: [In] Headset: Headset Mic (priority 300, latency offset 0 usec, available: no) properties: active port: <[In] Headset> index: 10 name: <alsa_input.hw_0_7> driver: <module-alsa-source.c> flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY state: SUSPENDED suspend cause: IDLE priority: 9030 volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB balance 0,00 base volume: 65536 / 100% / 0,00 dB volume steps: 65537 muted: no current latency: 0,00 ms max rewind: 0 KiB sample spec: s16le 2ch 16000Hz channel map: front-left,front-right Stereo used by: 0 linked by: 0 configured latency: 0,00 ms; range is 0,50 .. 1023,00 ms module: 26 properties: alsa.resolution_bits = "16" device.api = "alsa" device.class = "sound" alsa.class = "generic" alsa.subclass = "generic-mix" alsa.name = "" alsa.id = "DMIC16 (*)" alsa.subdevice = "0" alsa.subdevice_name = "subdevice #0" alsa.device = "7" alsa.card = "0" alsa.card_name = "sof-skl_hda_card" alsa.long_card_name = "LENOVO-20QDS0A600-ThinkPadX1Carbon7th-20QDS0A600" alsa.driver_name = "snd_soc_skl_hda_dsp" device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "9dc8" device.product.name = "Cannon Point-LP High Definition Audio Controller" device.string = "hw:0,7" device.buffering.buffer_size = "65472" device.buffering.fragment_size = "16320" device.access_mode = "mmap+timer" device.description = "Cannon Point-LP High Definition Audio Controller" device.icon_name = "audio-input-microphone-pci" I need to select in Pulseaudio the `DMIC stereo` input to get working microphone. I did have to boost most of the channels in alsamixer record to get acceptable recording level. If I select the "Cannon Point-LP High Definition Audio Controller" I get nothing. I can also list all pulseaudio sinks and alsa playback devices if you like. Notably all HDMI/DP channels show up. So once again, both playback and the DMIC work with the 5.3.0-20. But only if you manual update the ALSA-ucm files, blacklist the modules. It could be that the Lenovo provided topology file is not required. [1] https://github.com/alsa-project/alsa-ucm-conf/tree/master/ucm/sof-skl_hda_card [2] https://forums.lenovo.com/t5/Ubuntu/Guide-X1-Carbon-7th-Generation-Ubuntu-compatability/m-p/4507050/highlight/true#M2873 -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/1848490 Title: eoan: alsa/sof: Enable SOF_HDA link and codec Status in linux package in Ubuntu: Fix Committed Status in linux source package in Eoan: Fix Committed Bug description: [Impact] We tested the EOAN kernel on the LENOVO or Dell machines which have dmic directly connnected to PCH, the dmic didn't work. [Fix] We need to enable SOF_HDA link and codec, then the sof driver and Legacy HDA driver work together to make the dmic work. [Test Case] Install the latest 19.10 image, build a new kernel with this patch and replace the existing kernel, After installing the blacklist package (blacklist snd_hda_intel and snd_soc_skl) and ucm package, the dmic and all output devices (speaker/hdmi) work. [Regression Risk] Low, these configs are already enabled in the oem-b-osp1 kernel for a long time, and we tested it on many lenovo/dell machines witch have or have no dmic, all worked well. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1848490/+subscriptions -- Mailing list: https://launchpad.net/~kernel-packages Post to : kernel-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~kernel-packages More help : https://help.launchpad.net/ListHelp