ALSA: hda/conexant: Add pincfg quirk to enable top speakers on Sirius devices
authorChristoffer Sandberg <cs@tuxedo.de>
Tue, 27 Aug 2024 10:25:40 +0000 (12:25 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 28 Aug 2024 06:27:06 +0000 (08:27 +0200)
The Sirius notebooks have two sets of speakers 0x17 (sides) and
0x1d (top center). The side speakers are active by default but
the top speakers aren't.

This patch provides a pincfg quirk to activate the top speakers.

Signed-off-by: Christoffer Sandberg <cs@tuxedo.de>
Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20240827102540.9480-1-wse@tuxedocomputers.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_conexant.c

index f030669243f9a501e3a65a2d991f770fa1b8f4d4..e851785ff058146fc8100116e4486faffafdf611 100644 (file)
@@ -307,6 +307,7 @@ enum {
        CXT_FIXUP_HEADSET_MIC,
        CXT_FIXUP_HP_MIC_NO_PRESENCE,
        CXT_PINCFG_SWS_JS201D,
+       CXT_PINCFG_TOP_SPEAKER,
 };
 
 /* for hda_fixup_thinkpad_acpi() */
@@ -974,6 +975,13 @@ static const struct hda_fixup cxt_fixups[] = {
                .type = HDA_FIXUP_PINS,
                .v.pins = cxt_pincfg_sws_js201d,
        },
+       [CXT_PINCFG_TOP_SPEAKER] = {
+               .type = HDA_FIXUP_PINS,
+               .v.pins = (const struct hda_pintbl[]) {
+                       { 0x1d, 0x82170111 },
+                       { }
+               },
+       },
 };
 
 static const struct snd_pci_quirk cxt5045_fixups[] = {
@@ -1070,6 +1078,8 @@ static const struct snd_pci_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),
        {}
 };
 
@@ -1089,6 +1099,7 @@ static const struct hda_model_fixup cxt5066_fixup_models[] = {
        { .id = CXT_FIXUP_HP_MIC_NO_PRESENCE, .name = "hp-mic-fix" },
        { .id = CXT_PINCFG_LENOVO_NOTEBOOK, .name = "lenovo-20149" },
        { .id = CXT_PINCFG_SWS_JS201D, .name = "sws-js201d" },
+       { .id = CXT_PINCFG_TOP_SPEAKER, .name = "sirius-top-speaker" },
        {}
 };