Cannon Lake PCH cAVS (ALC892) not detected by kernel driver

dmummenschanz at web.de dmummenschanz at web.de
Mon Feb 14 07:49:55 CET 2022


   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 at suse.de>
   An: "Pierre-Louis Bossart" <pierre-louis.bossart at linux.intel.com>
   Cc: "Vehmanen, Kai" <kai.vehmanen at intel.com>,
   alsa-devel at alsa-project.org, dmummenschanz at 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 at 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


More information about the Alsa-devel mailing list