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

Takashi Iwai tiwai at suse.de
Sun Feb 13 10:08:46 CET 2022


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 ;-)
> > 
> >    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


More information about the Alsa-devel mailing list