]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ALSA: hda/conexant: Use the new codec SSID matching
authorTakashi Iwai <tiwai@suse.de>
Tue, 8 Oct 2024 12:02:30 +0000 (14:02 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 10 Oct 2024 12:21:11 +0000 (14:21 +0200)
Now we can perform the codec ID matching primarily, and reduce the
conditional application of the quirk for conflicting PCI SSID between
System76 and Tuxedo devices.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20241008120233.7154-3-tiwai@suse.de
sound/pci/hda/patch_conexant.c

index 02cfd6ae4036d7c43932d44d7111f88d96dc3074..7c61e81c40e046f8be82bdda41236a3d1c02d5cb 100644 (file)
@@ -816,23 +816,6 @@ static const struct hda_pintbl cxt_pincfg_sws_js201d[] = {
        {}
 };
 
-/* pincfg quirk for Tuxedo Sirius;
- * unfortunately the (PCI) SSID conflicts with System76 Pangolin pang14,
- * which has incompatible pin setup, so we check the codec SSID (luckily
- * different one!) and conditionally apply the quirk here
- */
-static void cxt_fixup_sirius_top_speaker(struct hda_codec *codec,
-                                        const struct hda_fixup *fix,
-                                        int action)
-{
-       /* ignore for incorrectly picked-up pang14 */
-       if (codec->core.subsystem_id == 0x278212b3)
-               return;
-       /* set up the top speaker pin */
-       if (action == HDA_FIXUP_ACT_PRE_PROBE)
-               snd_hda_codec_set_pincfg(codec, 0x1d, 0x82170111);
-}
-
 static const struct hda_fixup cxt_fixups[] = {
        [CXT_PINCFG_LENOVO_X200] = {
                .type = HDA_FIXUP_PINS,
@@ -993,8 +976,11 @@ static const struct hda_fixup cxt_fixups[] = {
                .v.pins = cxt_pincfg_sws_js201d,
        },
        [CXT_PINCFG_TOP_SPEAKER] = {
-               .type = HDA_FIXUP_FUNC,
-               .v.func = cxt_fixup_sirius_top_speaker,
+               .type = HDA_FIXUP_PINS,
+               .v.pins = (const struct hda_pintbl[]) {
+                       { 0x1d, 0x82170111 },
+                       { }
+               },
        },
 };
 
@@ -1092,8 +1078,8 @@ static const struct hda_quirk cxt5066_fixups[] = {
        SND_PCI_QUIRK_VENDOR(0x17aa, "Thinkpad", CXT_FIXUP_THINKPAD_ACPI),
        SND_PCI_QUIRK(0x1c06, 0x2011, "Lemote A1004", CXT_PINCFG_LEMOTE_A1004),
        SND_PCI_QUIRK(0x1c06, 0x2012, "Lemote A1205", CXT_PINCFG_LEMOTE_A1205),
-       SND_PCI_QUIRK(0x2782, 0x12c3, "Sirius Gen1", CXT_PINCFG_TOP_SPEAKER),
-       SND_PCI_QUIRK(0x2782, 0x12c5, "Sirius Gen2", CXT_PINCFG_TOP_SPEAKER),
+       HDA_CODEC_QUIRK(0x2782, 0x12c3, "Sirius Gen1", CXT_PINCFG_TOP_SPEAKER),
+       HDA_CODEC_QUIRK(0x2782, 0x12c5, "Sirius Gen2", CXT_PINCFG_TOP_SPEAKER),
        {}
 };