* How to add 2 different SND_PCI_QUIRKs for 2 models with the same PCI subsys vend + prod ids? @ 2022-06-13 7:54 Hans de Goede 2022-06-13 8:28 ` Takashi Iwai 0 siblings, 1 reply; 6+ messages in thread From: Hans de Goede @ 2022-06-13 7:54 UTC (permalink / raw) To: alsa-devel; +Cc: nikitashvets Hi All, There is a problem with the sound on the Lenovo Yoga Duet 7 13IML05, which requires a SND_PCI_QUIRK to fix. But there already is an existing quirk for another Lenovo laptop using the same PCI subsys vend + prod ids. For more details see: https://wiki.archlinux.org/title/Lenovo_Yoga_Duet_7_13IML05#Audio So I guess this means that we need to add a way to also include a DMI match for SND_PCI_QUIRKs ? Maybe add a: const struct dmi_systemid *dmi_ids; member to struct snd_pci_quirk and a new SND_PCI_QUIRK_DMI macro to set this? Regards, Hans ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to add 2 different SND_PCI_QUIRKs for 2 models with the same PCI subsys vend + prod ids? 2022-06-13 7:54 How to add 2 different SND_PCI_QUIRKs for 2 models with the same PCI subsys vend + prod ids? Hans de Goede @ 2022-06-13 8:28 ` Takashi Iwai 2022-06-13 8:46 ` Hans de Goede 0 siblings, 1 reply; 6+ messages in thread From: Takashi Iwai @ 2022-06-13 8:28 UTC (permalink / raw) To: Hans de Goede; +Cc: nikitashvets, alsa-devel On Mon, 13 Jun 2022 09:54:47 +0200, Hans de Goede wrote: > > Hi All, > > There is a problem with the sound on the Lenovo Yoga Duet 7 13IML05, which > requires a SND_PCI_QUIRK to fix. But there already is an existing quirk > for another Lenovo laptop using the same PCI subsys vend + prod ids. > > For more details see: > https://wiki.archlinux.org/title/Lenovo_Yoga_Duet_7_13IML05#Audio > > So I guess this means that we need to add a way to also include a DMI match > for SND_PCI_QUIRKs ? > > Maybe add a: > > const struct dmi_systemid *dmi_ids; > > member to struct snd_pci_quirk and a new > SND_PCI_QUIRK_DMI macro to set this? Do both machines have the very same codec? I couldn't find alsa-info.sh output for Duet 7, but at least, C940 seems with ALC298 (0x10ec0298), judging from https://bugzilla.kernel.org/show_bug.cgi?id=205755 If Duet 7 has a different codec (e.g. ALC287 0x10ec0287), we can distinguish from that. Takashi ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to add 2 different SND_PCI_QUIRKs for 2 models with the same PCI subsys vend + prod ids? 2022-06-13 8:28 ` Takashi Iwai @ 2022-06-13 8:46 ` Hans de Goede 2022-06-13 9:13 ` Takashi Iwai 0 siblings, 1 reply; 6+ messages in thread From: Hans de Goede @ 2022-06-13 8:46 UTC (permalink / raw) To: Takashi Iwai; +Cc: nikitashvets, alsa-devel Hi, On 6/13/22 10:28, Takashi Iwai wrote: > On Mon, 13 Jun 2022 09:54:47 +0200, > Hans de Goede wrote: >> >> Hi All, >> >> There is a problem with the sound on the Lenovo Yoga Duet 7 13IML05, which >> requires a SND_PCI_QUIRK to fix. But there already is an existing quirk >> for another Lenovo laptop using the same PCI subsys vend + prod ids. >> >> For more details see: >> https://wiki.archlinux.org/title/Lenovo_Yoga_Duet_7_13IML05#Audio >> >> So I guess this means that we need to add a way to also include a DMI match >> for SND_PCI_QUIRKs ? >> >> Maybe add a: >> >> const struct dmi_systemid *dmi_ids; >> >> member to struct snd_pci_quirk and a new >> SND_PCI_QUIRK_DMI macro to set this? > > Do both machines have the very same codec? I couldn't find > alsa-info.sh output for Duet 7, but at least, C940 seems with ALC298 > (0x10ec0298), judging from > https://bugzilla.kernel.org/show_bug.cgi?id=205755 > If Duet 7 has a different codec (e.g. ALC287 0x10ec0287), we can > distinguish from that. I've just asked the reporter of this for alsa-info.sh output. So assuming the codec is indeed different how would I go about fixing this ? Regards, Hans ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to add 2 different SND_PCI_QUIRKs for 2 models with the same PCI subsys vend + prod ids? 2022-06-13 8:46 ` Hans de Goede @ 2022-06-13 9:13 ` Takashi Iwai 2022-06-13 20:53 ` Hans de Goede 0 siblings, 1 reply; 6+ messages in thread From: Takashi Iwai @ 2022-06-13 9:13 UTC (permalink / raw) To: Hans de Goede; +Cc: nikitashvets, alsa-devel On Mon, 13 Jun 2022 10:46:28 +0200, Hans de Goede wrote: > > Hi, > > On 6/13/22 10:28, Takashi Iwai wrote: > > On Mon, 13 Jun 2022 09:54:47 +0200, > > Hans de Goede wrote: > >> > >> Hi All, > >> > >> There is a problem with the sound on the Lenovo Yoga Duet 7 13IML05, which > >> requires a SND_PCI_QUIRK to fix. But there already is an existing quirk > >> for another Lenovo laptop using the same PCI subsys vend + prod ids. > >> > >> For more details see: > >> https://wiki.archlinux.org/title/Lenovo_Yoga_Duet_7_13IML05#Audio > >> > >> So I guess this means that we need to add a way to also include a DMI match > >> for SND_PCI_QUIRKs ? > >> > >> Maybe add a: > >> > >> const struct dmi_systemid *dmi_ids; > >> > >> member to struct snd_pci_quirk and a new > >> SND_PCI_QUIRK_DMI macro to set this? > > > > Do both machines have the very same codec? I couldn't find > > alsa-info.sh output for Duet 7, but at least, C940 seems with ALC298 > > (0x10ec0298), judging from > > https://bugzilla.kernel.org/show_bug.cgi?id=205755 > > If Duet 7 has a different codec (e.g. ALC287 0x10ec0287), we can > > distinguish from that. > > I've just asked the reporter of this for alsa-info.sh output. > > So assuming the codec is indeed different how would I go about > fixing this ? It'll be something like below. Takashi -- 8< -- diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c index cd1db943b7e0..7c6b1fe8dfcc 100644 --- a/sound/pci/hda/hda_auto_parser.c +++ b/sound/pci/hda/hda_auto_parser.c @@ -819,7 +819,7 @@ static void set_pin_targets(struct hda_codec *codec, snd_hda_set_pin_ctl_cache(codec, cfg->nid, cfg->val); } -static void apply_fixup(struct hda_codec *codec, int id, int action, int depth) +void __snd_hda_apply_fixup(struct hda_codec *codec, int id, int action, int depth) { const char *modelname = codec->fixup_name; @@ -829,7 +829,7 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth) if (++depth > 10) break; if (fix->chained_before) - apply_fixup(codec, fix->chain_id, action, depth + 1); + __snd_hda_apply_fixup(codec, fix->chain_id, action, depth + 1); switch (fix->type) { case HDA_FIXUP_PINS: @@ -870,6 +870,7 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth) id = fix->chain_id; } } +EXPORT_SYMBOL_GPL(__snd_hda_apply_fixup); /** * snd_hda_apply_fixup - Apply the fixup chain with the given action @@ -879,7 +880,7 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth) void snd_hda_apply_fixup(struct hda_codec *codec, int action) { if (codec->fixup_list) - apply_fixup(codec, codec->fixup_id, action, 0); + __snd_hda_apply_fixup(codec, codec->fixup_id, action, 0); } EXPORT_SYMBOL_GPL(snd_hda_apply_fixup); diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h index aca592651870..682dca2057db 100644 --- a/sound/pci/hda/hda_local.h +++ b/sound/pci/hda/hda_local.h @@ -348,6 +348,7 @@ void snd_hda_apply_verbs(struct hda_codec *codec); void snd_hda_apply_pincfgs(struct hda_codec *codec, const struct hda_pintbl *cfg); void snd_hda_apply_fixup(struct hda_codec *codec, int action); +void __snd_hda_apply_fixup(struct hda_codec *codec, int id, int action, int depth); void snd_hda_pick_fixup(struct hda_codec *codec, const struct hda_model_fixup *models, const struct snd_pci_quirk *quirk, diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a1a7842e7b5f..f2b0de3aa756 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -7004,6 +7004,7 @@ enum { ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS, ALC287_FIXUP_LEGION_15IMHG05_AUTOMUTE, ALC287_FIXUP_YOGA7_14ITL_SPEAKERS, + ALC298_FIXUP_LENOVO_C940_DUET7, ALC287_FIXUP_13S_GEN2_SPEAKERS, ALC256_FIXUP_SET_COEF_DEFAULTS, ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE, @@ -7022,6 +7023,23 @@ enum { ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE, }; +/* A special fixup for Lenovo C940 and Yoga Duet 7; + * both have the very same PCI SSID, and we need to apply different fixups + * depending on the codec ID + */ +static void alc298_fixup_lenovo_c940_duet7(struct hda_codec *codec, + const struct hda_fixup *fix, + int action) +{ + int id; + + if (codec->core.vendor_id == 0x10ec0298) + id = ALC298_FIXUP_LENOVO_SPK_VOLUME; /* C940 */ + else + id = ALC287_FIXUP_YOGA7_14ITL_SPEAKERS; /* Duet 7 */ + __snd_hda_apply_fixup(codec, id, action, 0); +} + static const struct hda_fixup alc269_fixups[] = { [ALC269_FIXUP_GPIO2] = { .type = HDA_FIXUP_FUNC, @@ -8721,6 +8739,10 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE, }, + [ALC298_FIXUP_LENOVO_C940_DUET7] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc298_fixup_lenovo_c940_duet7, + }, [ALC287_FIXUP_13S_GEN2_SPEAKERS] = { .type = HDA_FIXUP_VERBS, .v.verbs = (const struct hda_verb[]) { @@ -9274,7 +9296,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340), SND_PCI_QUIRK(0x17aa, 0x3802, "Lenovo Yoga DuetITL 2021", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS), - SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940", ALC298_FIXUP_LENOVO_SPK_VOLUME), + SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940 / Yoga Duet 7", ALC298_FIXUP_LENOVO_C940_DUET7), SND_PCI_QUIRK(0x17aa, 0x3819, "Lenovo 13s Gen2 ITL", ALC287_FIXUP_13S_GEN2_SPEAKERS), SND_PCI_QUIRK(0x17aa, 0x3820, "Yoga Duet 7 13ITL6", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), SND_PCI_QUIRK(0x17aa, 0x3824, "Legion Y9000X 2020", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS), ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: How to add 2 different SND_PCI_QUIRKs for 2 models with the same PCI subsys vend + prod ids? 2022-06-13 9:13 ` Takashi Iwai @ 2022-06-13 20:53 ` Hans de Goede 2022-06-14 5:34 ` Takashi Iwai 0 siblings, 1 reply; 6+ messages in thread From: Hans de Goede @ 2022-06-13 20:53 UTC (permalink / raw) To: Takashi Iwai; +Cc: nikitashvets, alsa-devel Hi, On 6/13/22 11:13, Takashi Iwai wrote: > On Mon, 13 Jun 2022 10:46:28 +0200, > Hans de Goede wrote: >> >> Hi, >> >> On 6/13/22 10:28, Takashi Iwai wrote: >>> On Mon, 13 Jun 2022 09:54:47 +0200, >>> Hans de Goede wrote: >>>> >>>> Hi All, >>>> >>>> There is a problem with the sound on the Lenovo Yoga Duet 7 13IML05, which >>>> requires a SND_PCI_QUIRK to fix. But there already is an existing quirk >>>> for another Lenovo laptop using the same PCI subsys vend + prod ids. >>>> >>>> For more details see: >>>> https://wiki.archlinux.org/title/Lenovo_Yoga_Duet_7_13IML05#Audio >>>> >>>> So I guess this means that we need to add a way to also include a DMI match >>>> for SND_PCI_QUIRKs ? >>>> >>>> Maybe add a: >>>> >>>> const struct dmi_systemid *dmi_ids; >>>> >>>> member to struct snd_pci_quirk and a new >>>> SND_PCI_QUIRK_DMI macro to set this? >>> >>> Do both machines have the very same codec? I couldn't find >>> alsa-info.sh output for Duet 7, but at least, C940 seems with ALC298 >>> (0x10ec0298), judging from >>> https://bugzilla.kernel.org/show_bug.cgi?id=205755 >>> If Duet 7 has a different codec (e.g. ALC287 0x10ec0287), we can >>> distinguish from that. >> >> I've just asked the reporter of this for alsa-info.sh output. >> >> So assuming the codec is indeed different how would I go about >> fixing this ? > > It'll be something like below. Thanks. The alsa-info.sh output for the Yoga Duet 7 is here: http://alsa-project.org/db/?f=5500aa1b489d2ef4ee6ac3ee613f11f3ed8ecfa8 This confirms that the codec is different, so I've asked @nikitashvets to test the below patch you suggested and he has confirmed that this fixes things (thank you @nikitashvets). Takashi, if you can turn this into a proper patch (-series?) and merge it that would be great! Regards, Hans > > > Takashi > > -- 8< -- > diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c > index cd1db943b7e0..7c6b1fe8dfcc 100644 > --- a/sound/pci/hda/hda_auto_parser.c > +++ b/sound/pci/hda/hda_auto_parser.c > @@ -819,7 +819,7 @@ static void set_pin_targets(struct hda_codec *codec, > snd_hda_set_pin_ctl_cache(codec, cfg->nid, cfg->val); > } > > -static void apply_fixup(struct hda_codec *codec, int id, int action, int depth) > +void __snd_hda_apply_fixup(struct hda_codec *codec, int id, int action, int depth) > { > const char *modelname = codec->fixup_name; > > @@ -829,7 +829,7 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth) > if (++depth > 10) > break; > if (fix->chained_before) > - apply_fixup(codec, fix->chain_id, action, depth + 1); > + __snd_hda_apply_fixup(codec, fix->chain_id, action, depth + 1); > > switch (fix->type) { > case HDA_FIXUP_PINS: > @@ -870,6 +870,7 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth) > id = fix->chain_id; > } > } > +EXPORT_SYMBOL_GPL(__snd_hda_apply_fixup); > > /** > * snd_hda_apply_fixup - Apply the fixup chain with the given action > @@ -879,7 +880,7 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth) > void snd_hda_apply_fixup(struct hda_codec *codec, int action) > { > if (codec->fixup_list) > - apply_fixup(codec, codec->fixup_id, action, 0); > + __snd_hda_apply_fixup(codec, codec->fixup_id, action, 0); > } > EXPORT_SYMBOL_GPL(snd_hda_apply_fixup); > > diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h > index aca592651870..682dca2057db 100644 > --- a/sound/pci/hda/hda_local.h > +++ b/sound/pci/hda/hda_local.h > @@ -348,6 +348,7 @@ void snd_hda_apply_verbs(struct hda_codec *codec); > void snd_hda_apply_pincfgs(struct hda_codec *codec, > const struct hda_pintbl *cfg); > void snd_hda_apply_fixup(struct hda_codec *codec, int action); > +void __snd_hda_apply_fixup(struct hda_codec *codec, int id, int action, int depth); > void snd_hda_pick_fixup(struct hda_codec *codec, > const struct hda_model_fixup *models, > const struct snd_pci_quirk *quirk, > diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c > index a1a7842e7b5f..f2b0de3aa756 100644 > --- a/sound/pci/hda/patch_realtek.c > +++ b/sound/pci/hda/patch_realtek.c > @@ -7004,6 +7004,7 @@ enum { > ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS, > ALC287_FIXUP_LEGION_15IMHG05_AUTOMUTE, > ALC287_FIXUP_YOGA7_14ITL_SPEAKERS, > + ALC298_FIXUP_LENOVO_C940_DUET7, > ALC287_FIXUP_13S_GEN2_SPEAKERS, > ALC256_FIXUP_SET_COEF_DEFAULTS, > ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE, > @@ -7022,6 +7023,23 @@ enum { > ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE, > }; > > +/* A special fixup for Lenovo C940 and Yoga Duet 7; > + * both have the very same PCI SSID, and we need to apply different fixups > + * depending on the codec ID > + */ > +static void alc298_fixup_lenovo_c940_duet7(struct hda_codec *codec, > + const struct hda_fixup *fix, > + int action) > +{ > + int id; > + > + if (codec->core.vendor_id == 0x10ec0298) > + id = ALC298_FIXUP_LENOVO_SPK_VOLUME; /* C940 */ > + else > + id = ALC287_FIXUP_YOGA7_14ITL_SPEAKERS; /* Duet 7 */ > + __snd_hda_apply_fixup(codec, id, action, 0); > +} > + > static const struct hda_fixup alc269_fixups[] = { > [ALC269_FIXUP_GPIO2] = { > .type = HDA_FIXUP_FUNC, > @@ -8721,6 +8739,10 @@ static const struct hda_fixup alc269_fixups[] = { > .chained = true, > .chain_id = ALC269_FIXUP_HEADSET_MODE, > }, > + [ALC298_FIXUP_LENOVO_C940_DUET7] = { > + .type = HDA_FIXUP_FUNC, > + .v.func = alc298_fixup_lenovo_c940_duet7, > + }, > [ALC287_FIXUP_13S_GEN2_SPEAKERS] = { > .type = HDA_FIXUP_VERBS, > .v.verbs = (const struct hda_verb[]) { > @@ -9274,7 +9296,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { > SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340), > SND_PCI_QUIRK(0x17aa, 0x3802, "Lenovo Yoga DuetITL 2021", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), > SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS), > - SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940", ALC298_FIXUP_LENOVO_SPK_VOLUME), > + SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940 / Yoga Duet 7", ALC298_FIXUP_LENOVO_C940_DUET7), > SND_PCI_QUIRK(0x17aa, 0x3819, "Lenovo 13s Gen2 ITL", ALC287_FIXUP_13S_GEN2_SPEAKERS), > SND_PCI_QUIRK(0x17aa, 0x3820, "Yoga Duet 7 13ITL6", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), > SND_PCI_QUIRK(0x17aa, 0x3824, "Legion Y9000X 2020", ALC285_FIXUP_LEGION_Y9000X_SPEAKERS), > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: How to add 2 different SND_PCI_QUIRKs for 2 models with the same PCI subsys vend + prod ids? 2022-06-13 20:53 ` Hans de Goede @ 2022-06-14 5:34 ` Takashi Iwai 0 siblings, 0 replies; 6+ messages in thread From: Takashi Iwai @ 2022-06-14 5:34 UTC (permalink / raw) To: Hans de Goede; +Cc: nikitashvets, alsa-devel On Mon, 13 Jun 2022 22:53:54 +0200, Hans de Goede wrote: > > Hi, > > On 6/13/22 11:13, Takashi Iwai wrote: > > On Mon, 13 Jun 2022 10:46:28 +0200, > > Hans de Goede wrote: > >> > >> Hi, > >> > >> On 6/13/22 10:28, Takashi Iwai wrote: > >>> On Mon, 13 Jun 2022 09:54:47 +0200, > >>> Hans de Goede wrote: > >>>> > >>>> Hi All, > >>>> > >>>> There is a problem with the sound on the Lenovo Yoga Duet 7 13IML05, which > >>>> requires a SND_PCI_QUIRK to fix. But there already is an existing quirk > >>>> for another Lenovo laptop using the same PCI subsys vend + prod ids. > >>>> > >>>> For more details see: > >>>> https://wiki.archlinux.org/title/Lenovo_Yoga_Duet_7_13IML05#Audio > >>>> > >>>> So I guess this means that we need to add a way to also include a DMI match > >>>> for SND_PCI_QUIRKs ? > >>>> > >>>> Maybe add a: > >>>> > >>>> const struct dmi_systemid *dmi_ids; > >>>> > >>>> member to struct snd_pci_quirk and a new > >>>> SND_PCI_QUIRK_DMI macro to set this? > >>> > >>> Do both machines have the very same codec? I couldn't find > >>> alsa-info.sh output for Duet 7, but at least, C940 seems with ALC298 > >>> (0x10ec0298), judging from > >>> https://bugzilla.kernel.org/show_bug.cgi?id=205755 > >>> If Duet 7 has a different codec (e.g. ALC287 0x10ec0287), we can > >>> distinguish from that. > >> > >> I've just asked the reporter of this for alsa-info.sh output. > >> > >> So assuming the codec is indeed different how would I go about > >> fixing this ? > > > > It'll be something like below. > > Thanks. > > The alsa-info.sh output for the Yoga Duet 7 is here: > > http://alsa-project.org/db/?f=5500aa1b489d2ef4ee6ac3ee613f11f3ed8ecfa8 > > This confirms that the codec is different, so I've asked > @nikitashvets to test the below patch you suggested and > he has confirmed that this fixes things (thank you @nikitashvets). > > Takashi, if you can turn this into a proper patch (-series?) > and merge it that would be great! Sure, thanks for quick testing! Takashi ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-06-14 5:35 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-06-13 7:54 How to add 2 different SND_PCI_QUIRKs for 2 models with the same PCI subsys vend + prod ids? Hans de Goede 2022-06-13 8:28 ` Takashi Iwai 2022-06-13 8:46 ` Hans de Goede 2022-06-13 9:13 ` Takashi Iwai 2022-06-13 20:53 ` Hans de Goede 2022-06-14 5:34 ` Takashi Iwai
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.