On Fri, 23 Feb 2024 13:05:12 +0100, Gergo Koteles wrote: > > Hi, > > The Lenovo Yoga Slim Pro 9 14IRP8 has tas2781 amplifiers, but it can > only pickup its fixup with the hda_model=17aa:38be module parameter. > > The 17aa:38be is the SSID of its Codec. The PCI SSID is 17aa:3802. > > The patch_realtek.c has these fixup: > SND_PCI_QUIRK(0x17aa, 0x3802, "Lenovo Yoga DuetITL 2021", > ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), > SND_PCI_QUIRK(0x17aa, 0x38be, "Yoga S980-14.5 proX YC Dual", > ALC287_FIXUP_TAS2781_I2C), > > And the snd_hda_pick_fixup() picks the former fixup because of the same > PCI SSID, but that is a Codec SSID? > > At least it worked without that line. > https://bugzilla.kernel.org/show_bug.cgi?id=208555#c839 > > It would be nice if it can be work without the module parameter. > > What is the best way to add this strangeness to patch_realtek.c? That's a bad collision that happens rarely but more than once... In this case, we'd need to fix 17aa:3802 matching to be a special function that checks the model more closely. e.g. create a quirk function that checks the codec SSID additionally and apply the different quirks from there. thanks, Takashi