Cannon Lake PCH cAVS (ALC892) not detected by kernel driver
Hello,
the audio chip Cannon Lake PCH cAVS ALC892 does not get recognized on my system. Only the HDMI devices are recognized.
lspci shows the following audio device: 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
dmesg only shows:
[ 189.559786] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_exit [i915]) [ 189.581395] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input20 [ 189.581503] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input21 [ 189.581628] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input22 [ 189.581711] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input23 [ 189.581849] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input24
ALSA-info file: http://alsa-project.org/db/?f=96102ee84f258d1cac83ed33795356550181511c
There is a workaround availble:
echo auto | tee /sys/devices/pci0000:00/0000:00:1f.3/power/control echo 1 | tee /sys/devices/pci0000:00/0000:00:1f.3/remove echo 1 | tee /sys/bus/pci/rescan
unfortunately this doesn't work for me. The device never shows up. Sound on winX works fine on this device btw. I'm happy to assist with any attempts to make the sound work.
On 2/8/22 12:46, dmummenschanz@web.de wrote:
Hello,
the audio chip Cannon Lake PCH cAVS ALC892 does not get recognized on my system. Only the HDMI devices are recognized.
lspci shows the following audio device: 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
dmesg only shows:
[ 189.559786] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_exit [i915]) [ 189.581395] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input20 [ 189.581503] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input21 [ 189.581628] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input22 [ 189.581711] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input23 [ 189.581849] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input24
ALSA-info file: http://alsa-project.org/db/?f=96102ee84f258d1cac83ed33795356550181511c
I see to references to ALC892 in this profile, is this information based on the hardware specs or Windows logs?
we usually ask people to try with a more recent kernel, but in your case I would try to go back to a mainline release. I have no idea what this version might contain audio-wise: 5.17.0-rc3-drmtip
There is a workaround availble:
echo auto | tee /sys/devices/pci0000:00/0000:00:1f.3/power/control echo 1 | tee /sys/devices/pci0000:00/0000:00:1f.3/remove echo 1 | tee /sys/bus/pci/rescan
unfortunately this doesn't work for me. The device never shows up. Sound on winX works fine on this device btw. I'm happy to assist with any attempts to make the sound work.
The information about the codec is based on the string windows provides:
HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS_15580351&REV_1003\4&16AF2B56&& 0001
Here is the alsa-info output for the 5.16 mainline kernel:
http://alsa-project.org/db/?f=38c48cd24dc4ba9a9487dd96f857120cc9ce4367
Kernel config for the sound part:
CONFIG_SOUND=y CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m CONFIG_SND_JACK=y CONFIG_SND_JACK_INPUT_DEV=y CONFIG_SND_PCM_TIMER=y CONFIG_SND_HRTIMER=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_MAX_CARDS=8 CONFIG_SND_PROC_FS=y CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_CTL_LED=m CONFIG_SND_PCI=y # # HD-Audio # CONFIG_SND_HDA=m CONFIG_SND_HDA_GENERIC_LEDS=y CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_CODEC_REALTEK=m CONFIG_SND_HDA_CODEC_ANALOG=m CONFIG_SND_HDA_CODEC_SIGMATEL=m CONFIG_SND_HDA_CODEC_VIA=m CONFIG_SND_HDA_CODEC_HDMI=m CONFIG_SND_HDA_CODEC_CIRRUS=m CONFIG_SND_HDA_CODEC_CS8409=m CONFIG_SND_HDA_CODEC_CONEXANT=m CONFIG_SND_HDA_CODEC_CA0110=m CONFIG_SND_HDA_CODEC_CA0132=m CONFIG_SND_HDA_CODEC_CA0132_DSP=y CONFIG_SND_HDA_CODEC_CMEDIA=m CONFIG_SND_HDA_CODEC_SI3054=m CONFIG_SND_HDA_GENERIC=m CONFIG_SND_HDA_POWER_SAVE_DEFAULT=5 # end of HD-Audio
Also tried current ubuntu distro with same results.
Any advice?
Gesendet: Dienstag, 08. Februar 2022 um 22:55 Uhr Von: "Pierre-Louis Bossart" pierre-louis.bossart@linux.intel.com An: dmummenschanz@web.de, alsa-devel@alsa-project.org Betreff: Re: Cannon Lake PCH cAVS (ALC892) not detected by kernel driver On 2/8/22 12:46, dmummenschanz@web.de wrote:
Hello,
the audio chip Cannon Lake PCH cAVS ALC892 does not get recognized on my system. Only the HDMI devices are recognized.
lspci shows the following audio device: 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
dmesg only shows:
[ 189.559786] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_exit [i915]) [ 189.581395] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input20 [ 189.581503] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input21 [ 189.581628] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input22 [ 189.581711] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input23 [ 189.581849] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input24
ALSA-info file:
[1]http://alsa-project.org/db/?f=96102ee84f258d1cac83ed3379535655018151 1c I see to references to ALC892 in this profile, is this information based on the hardware specs or Windows logs? we usually ask people to try with a more recent kernel, but in your case I would try to go back to a mainline release. I have no idea what this version might contain audio-wise: 5.17.0-rc3-drmtip
There is a workaround availble:
echo auto | tee /sys/devices/pci0000:00/0000:00:1f.3/power/control echo 1 | tee /sys/devices/pci0000:00/0000:00:1f.3/remove echo 1 | tee /sys/bus/pci/rescan
unfortunately this doesn't work for me. The device never shows up. Sound on winX works fine on this device btw. I'm happy to assist with any attempts to make the sound work.
References
1. http://alsa-project.org/db/?f=96102ee84f258d1cac83ed33795356550181511c
On 2/9/22 01:14, dmummenschanz@web.de wrote:
The information about the codec is based on the string windows provides:
HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS_15580351&REV_1003\4&16AF2B56&& 0001
Here is the alsa-info output for the 5.16 mainline kernel:
http://alsa-project.org/db/?f=38c48cd24dc4ba9a9487dd96f857120cc9ce4367
The use of this option is not clear:
snd_intel_dspcfg: dsp_driver=1
This means you are trying to force the use of the legacy driver. is this intentional? Can you remove it and see what happens?
The results show you don't have a driver bound to the PCI device, so likely something goes boink in the probe.
It wouldn't hurt to enable dynamic debug as well.
options snd_hda_intel dyndbg=+p options snd_intel_dspcfg dyndbg=+p
snd_intel_dspcfg: dsp_driver=1
was a leftover from testing. I' ve removed all parameters, add added the debug options you've asked.
http://alsa-project.org/db/?f=6e30e9f598bd2f03b2f5cff0df261f78719ea29d
Some googling reveals that others suffer from the same problen on the same laptop as well. Some report that the device appears after pci-bus rescanning however that did not work in my case so I agree there might be an issue with probing the relatek device. Unfortunately I'm not a kernel dev so I don't even know where to start looking however I'm happy to investigate with your help.
Gesendet: Mittwoch, 09. Februar 2022 um 16:51 Uhr Von: "Pierre-Louis Bossart" pierre-louis.bossart@linux.intel.com An: dmummenschanz@web.de, alsa-devel@alsa-project.org Betreff: Re: Aw: Re: Cannon Lake PCH cAVS (ALC892) not detected by kernel driver On 2/9/22 01:14, dmummenschanz@web.de wrote:
The information about the codec is based on the string windows provides:
HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS_15580351&REV_1003\4&16AF2B56&&
0001
Here is the alsa-info output for the 5.16 mainline kernel:
[1]http://alsa-project.org/db/?f=38c48cd24dc4ba9a9487dd96f857120cc9ce43 67 The use of this option is not clear: snd_intel_dspcfg: dsp_driver=1 This means you are trying to force the use of the legacy driver. is this intentional? Can you remove it and see what happens? The results show you don't have a driver bound to the PCI device, so likely something goes boink in the probe. It wouldn't hurt to enable dynamic debug as well. options snd_hda_intel dyndbg=+p options snd_intel_dspcfg dyndbg=+p
References
1. http://alsa-project.org/db/?f=38c48cd24dc4ba9a9487dd96f857120cc9ce4367
I did some more digging into the code to find out what goes boink. For comparison I took my wife's desktop wich has a Cannon Lake chipset as well along with a working a ALC892 AVS device.
It seems there is a codec mask issue selected in the chip->bus struct. Inside the function
static int azx_probe_continue(struct azx *chip)
of hda_intel.c the bus->codec_mask on my wife's pc contains the integer value "5" and both ALC892 and the HDMI is found. On my device it is "4" and only the HDMI is found.
/* create codec instances */ if (bus->codec_mask) { err = azx_probe_codecs(chip, azx_max_codecs[chip->driver_type]); if (err < 0) goto out_free; }
After forcing the falue before probing: "bus->codec_mask = 5;" the ALC892 is finally detected on my system and I have sound! alsa-info below: Please pardon the trash printk's in the log ;-)
http://alsa-project.org/db/?f=057aac1a0e9591de3847dca5ebc424dd65c8a221
I'll do some more digging into it next week but it would probably save tons of time if someone could point me is the right direction where to look further?
Gesendet: Mittwoch, 09. Februar 2022 um 17:47 Uhr Von: dmummenschanz@web.de An: "Pierre-Louis Bossart" pierre-louis.bossart@linux.intel.com, alsa-devel@alsa-project.org Betreff: Aw: Re: Re: Cannon Lake PCH cAVS (ALC892) not detected by kernel driver snd_intel_dspcfg: dsp_driver=1 was a leftover from testing. I' ve removed all parameters, add added the debug options you've asked. [1]http://alsa-project.org/db/?f=6e30e9f598bd2f03b2f5cff0df261f78719ea2 9d Some googling reveals that others suffer from the same problen on the same laptop as well. Some report that the device appears after pci-bus rescanning however that did not work in my case so I agree there might be an issue with probing the relatek device. Unfortunately I'm not a kernel dev so I don't even know where to start looking however I'm happy to investigate with your help. Gesendet: Mittwoch, 09. Februar 2022 um 16:51 Uhr Von: "Pierre-Louis Bossart" pierre-louis.bossart@linux.intel.com An: dmummenschanz@web.de, alsa-devel@alsa-project.org Betreff: Re: Aw: Re: Cannon Lake PCH cAVS (ALC892) not detected by kernel driver On 2/9/22 01:14, dmummenschanz@web.de wrote:
The information about the codec is based on the string windows provides:
HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS_15580351&REV_1003\4&16AF2B56&&
0001
Here is the alsa-info output for the 5.16 mainline kernel:
[1][2]http://alsa-project.org/db/?f=38c48cd24dc4ba9a9487dd96f857120cc9c e43 67 The use of this option is not clear: snd_intel_dspcfg: dsp_driver=1 This means you are trying to force the use of the legacy driver. is this intentional? Can you remove it and see what happens? The results show you don't have a driver bound to the PCI device, so likely something goes boink in the probe. It wouldn't hurt to enable dynamic debug as well. options snd_hda_intel dyndbg=+p options snd_intel_dspcfg dyndbg=+p References 1. [3]http://alsa-project.org/db/?f=38c48cd24dc4ba9a9487dd96f857120cc9ce43 67
References
1. http://alsa-project.org/db/?f=6e30e9f598bd2f03b2f5cff0df261f78719ea29d 2. http://alsa-project.org/db/?f=38c48cd24dc4ba9a9487dd96f857120cc9ce43 3. http://alsa-project.org/db/?f=38c48cd24dc4ba9a9487dd96f857120cc9ce4367
On 2/12/22 05:33, dmummenschanz@web.de wrote:
I did some more digging into the code to find out what goes boink. For comparison I took my wife's desktop wich has a Cannon Lake chipset as well along with a working a ALC892 AVS device.
It seems there is a codec mask issue selected in the chip->bus struct. Inside the function
static int azx_probe_continue(struct azx *chip)
of hda_intel.c the bus->codec_mask on my wife's pc contains the integer value "5" and both ALC892 and the HDMI is found. On my device it is "4" and only the HDMI is found.
/* create codec instances */ if (bus->codec_mask) { err = azx_probe_codecs(chip, azx_max_codecs[chip->driver_type]); if (err < 0) goto out_free; }
After forcing the falue before probing: "bus->codec_mask = 5;" the ALC892 is finally detected on my system and I have sound! alsa-info below: Please pardon the trash printk's in the log ;-)
http://alsa-project.org/db/?f=057aac1a0e9591de3847dca5ebc424dd65c8a221
I'll do some more digging into it next week but it would probably save tons of time if someone could point me is the right direction where to look further?
Adding Kai and Takashi, in case they haven't see this codec_mask issue. I personally don't recall having seen this before.
On Sat, 12 Feb 2022 20:42:28 +0100, Pierre-Louis Bossart wrote:
On 2/12/22 05:33, dmummenschanz@web.de wrote:
I did some more digging into the code to find out what goes boink. For comparison I took my wife's desktop wich has a Cannon Lake chipset as well along with a working a ALC892 AVS device.
It seems there is a codec mask issue selected in the chip->bus struct. Inside the function
static int azx_probe_continue(struct azx *chip)
of hda_intel.c the bus->codec_mask on my wife's pc contains the integer value "5" and both ALC892 and the HDMI is found. On my device it is "4" and only the HDMI is found.
/* create codec instances */ if (bus->codec_mask) { err = azx_probe_codecs(chip, azx_max_codecs[chip->driver_type]); if (err < 0) goto out_free; }
After forcing the falue before probing: "bus->codec_mask = 5;" the ALC892 is finally detected on my system and I have sound! alsa-info below: Please pardon the trash printk's in the log ;-)
http://alsa-project.org/db/?f=057aac1a0e9591de3847dca5ebc424dd65c8a221
I'll do some more digging into it next week but it would probably save tons of time if someone could point me is the right direction where to look further?
Adding Kai and Takashi, in case they haven't see this codec_mask issue. I personally don't recall having seen this before.
This means BIOS trying to hide this codec by some reason. It's seen sometimes in the past although it's rare.
You can forcibly probe it via probe_mask=0x105 option for snd-hda-intel module in this case. If this is confirmed to work reliably, we can add a static quirk table in the driver cideo.
HTH,
Takashi
Thanks for the scoop. I've added "options snd-hda-intel probe_mask=0x105" to /etc/modules-d/alsa.conf. Unfortunately that didn't help. The ALC892 didn't show up. Why the log below says "codec_mask forced to 0x5" but I've explicitly set the value to 0x105 I don't know.
[ 109.071253] snd_hda_intel 0000:00:1f.3: codec_mask forced to 0x5 [ 109.071329] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_exit [i915]) [ 109.092895] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input20 [ 109.093808] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input21 [ 109.093883] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input22 [ 109.093953] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input23 [ 109.095354] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input24
Gesendet: Sonntag, 13. Februar 2022 um 10:08 Uhr Von: "Takashi Iwai" tiwai@suse.de An: "Pierre-Louis Bossart" pierre-louis.bossart@linux.intel.com Cc: "Vehmanen, Kai" kai.vehmanen@intel.com, alsa-devel@alsa-project.org, dmummenschanz@web.de Betreff: Re: Cannon Lake PCH cAVS (ALC892) not detected by kernel driver On Sat, 12 Feb 2022 20:42:28 +0100, Pierre-Louis Bossart wrote:
On 2/12/22 05:33, dmummenschanz@web.de wrote:
I did some more digging into the code to find out what goes boink. For comparison I took my wife's desktop wich has a Cannon Lake
chipset
as well along with a working a ALC892 AVS device.
It seems there is a codec mask issue selected in the chip->bus
struct.
Inside the function
static int azx_probe_continue(struct azx *chip)
of hda_intel.c the bus->codec_mask on my wife's pc contains the
integer
value "5" and both ALC892 and the HDMI is found. On my device it is
"4"
and only the HDMI is found.
/* create codec instances */ if (bus->codec_mask) { err = azx_probe_codecs(chip, azx_max_codecs[chip->driver_type]); if (err < 0) goto out_free; }
After forcing the falue before probing: "bus->codec_mask = 5;" the ALC892 is finally detected on my system and I have sound! alsa-info below: Please pardon the trash printk's in the log ;-)
[1]http://alsa-project.org/db/?f=057aac1a0e9591de3847dca5ebc424dd65c8a2 21
I'll do some more digging into it next week but it would probably save tons of time if someone could point me is the right direction where to look further?
Adding Kai and Takashi, in case they haven't see this codec_mask
issue.
I personally don't recall having seen this before.
This means BIOS trying to hide this codec by some reason. It's seen sometimes in the past although it's rare. You can forcibly probe it via probe_mask=0x105 option for snd-hda-intel module in this case. If this is confirmed to work reliably, we can add a static quirk table in the driver cideo. HTH, Takashi
References
1. http://alsa-project.org/db/?f=057aac1a0e9591de3847dca5ebc424dd65c8a221
On Mon, 14 Feb 2022 07:49:55 +0100, dmummenschanz@web.de wrote:
Thanks for the scoop. I've added "options snd-hda-intel probe_mask=0x105" to / etc/modules-d/alsa.conf. Unfortunately that didn't help. The ALC892 didn't show up. Why the log below says "codec_mask forced to 0x5" but I've explicitly set the value to 0x105 I don't know.
The bit 0x100 means to forcibly set the codec probe mask, so this is fine. But the actual work of the forced bit doesn't seem right.
Could you try the patch below and test with probe_mask=0x105 again?
thanks,
Takashi
--- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1798,8 +1798,6 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci,
assign_position_fix(chip, check_position_fix(chip, position_fix[dev]));
- check_probe_mask(chip, dev); - if (single_cmd < 0) /* allow fallback to single_cmd at errors */ chip->fallback_to_single_cmd = 1; else /* explicitly set to single_cmd or not */ @@ -2280,6 +2278,8 @@ static int azx_probe_continue(struct azx *chip) chip->beep_mode = beep_mode[dev]; #endif
+ check_probe_mask(chip, dev); + /* create codec instances */ if (bus->codec_mask) { err = azx_probe_codecs(chip, azx_max_codecs[chip->driver_type]);
Applied yout patch with "probe_mask=0x105" option. ALC892 is now found and I have sound. Thanks! :)
[ 25.986154] snd_hda_intel 0000:00:1f.3: codec_mask forced to 0x5 [ 25.997511] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC892: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker [ 25.997516] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [ 25.997518] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0) [ 25.997520] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0 [ 25.997521] snd_hda_codec_realtek hdaudioC0D0: dig-out=0x1e/0x0 [ 25.997522] snd_hda_codec_realtek hdaudioC0D0: inputs: [ 25.997524] snd_hda_codec_realtek hdaudioC0D0: Mic=0x18 [ 25.997525] snd_hda_codec_realtek hdaudioC0D0: Internal Mic=0x12 [ 26.005460] elogind-daemon[1040]: Watching system buttons on /dev/input/event2 (Lid Switch) [ 26.022595] elogind-daemon[1040]: Watching system buttons on /dev/input/event6 (Intel HID events) [ 26.022736] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input15 [ 26.022793] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input16 [ 26.022830] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input17 [ 26.022863] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input18 [ 26.022896] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input19 [ 26.022927] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input20 [ 26.022957] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input21
Gesendet: Montag, 14. Februar 2022 um 08:08 Uhr Von: "Takashi Iwai" tiwai@suse.de An: dmummenschanz@web.de Cc: alsa-devel@alsa-project.org, "Pierre-Louis Bossart" pierre-louis.bossart@linux.intel.com Betreff: Re: Cannon Lake PCH cAVS (ALC892) not detected by kernel driver On Mon, 14 Feb 2022 07:49:55 +0100, dmummenschanz@web.de wrote:
Thanks for the scoop. I've added "options snd-hda-intel
probe_mask=0x105" to /
etc/modules-d/alsa.conf. Unfortunately that didn't help. The ALC892 didn't show up. Why the log below says "codec_mask forced to 0x5" but
I've
explicitly set the value to 0x105 I don't know.
The bit 0x100 means to forcibly set the codec probe mask, so this is fine. But the actual work of the forced bit doesn't seem right. Could you try the patch below and test with probe_mask=0x105 again? thanks, Takashi --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1798,8 +1798,6 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci, assign_position_fix(chip, check_position_fix(chip, position_fix[dev])); - check_probe_mask(chip, dev); - if (single_cmd < 0) /* allow fallback to single_cmd at errors */ chip->fallback_to_single_cmd = 1; else /* explicitly set to single_cmd or not */ @@ -2280,6 +2278,8 @@ static int azx_probe_continue(struct azx *chip) chip->beep_mode = beep_mode[dev]; #endif + check_probe_mask(chip, dev); + /* create codec instances */ if (bus->codec_mask) { err = azx_probe_codecs(chip, azx_max_codecs[chip->driver_type]);
On Mon, 14 Feb 2022 08:38:52 +0100, dmummenschanz@web.de wrote:
Applied yout patch with "probe_mask=0x105" option. ALC892 is now found and I have sound. Thanks! :)
Good to hear.
Below are two patches, one for a slightly revised version of probe_mask fix, and another to add your device to the quirk table. Could you give those a try, and test without probe_mask option?
thanks,
Takashi
Okay, I reverted the previous patch, removed the probe_mask option and applied both of your patches. Looks good! ALC is detected and I have sound. Thank you. Any chance this will hit the mainline kernel for upcomming 5.17 release?
[ 25.947927] EXT4-fs (nvme0n1p8): mounted filesystem with ordered data mode. Quota mode: disabled. [ 25.963952] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC892: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker [ 25.963958] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [ 25.963961] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0) [ 25.963963] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0 [ 25.963964] snd_hda_codec_realtek hdaudioC0D0: dig-out=0x1e/0x0 [ 25.963965] snd_hda_codec_realtek hdaudioC0D0: inputs: [ 25.963967] snd_hda_codec_realtek hdaudioC0D0: Mic=0x18 [ 25.963968] snd_hda_codec_realtek hdaudioC0D0: Internal Mic=0x12 [ 25.985493] urandom_read: 3 callbacks suppressed [ 25.985496] random: dbus-daemon: uninitialized urandom read (12 bytes read) [ 25.986786] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input15 [ 25.986825] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input16 [ 25.986862] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input17 [ 25.986896] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input18 [ 25.986927] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input19 [ 25.986957] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input20 [ 25.986997] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input21 [ 25.992193] random: dbus-daemon: uninitialized urandom read (12 bytes read)
Gesendet: Montag, 14. Februar 2022 um 09:42 Uhr Von: "Takashi Iwai" tiwai@suse.de An: dmummenschanz@web.de Cc: alsa-devel@alsa-project.org Betreff: Re: Cannon Lake PCH cAVS (ALC892) not detected by kernel driver On Mon, 14 Feb 2022 08:38:52 +0100, dmummenschanz@web.de wrote:
Applied yout patch with "probe_mask=0x105" option. ALC892 is now
found and I
have sound. Thanks! :)
Good to hear. Below are two patches, one for a slightly revised version of probe_mask fix, and another to add your device to the quirk table. Could you give those a try, and test without probe_mask option? thanks, Takashi
On Mon, 14 Feb 2022 10:23:33 +0100, dmummenschanz@web.de wrote:
Okay, I reverted the previous patch, removed the probe_mask option and applied both of your patches. Looks good! ALC is detected and I have sound. Thank you. Any chance this will hit the mainline kernel for upcomming 5.17 release?
Yes, I'll submit and merge those for the next pull request.
Takashi
participants (3)
-
dmummenschanz@web.de
-
Pierre-Louis Bossart
-
Takashi Iwai