]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ALSA: hda/realtek: Fix headset mic on ASUS ROG Ally X
authorMatthew Schwartz <matthew.schwartz@linux.dev>
Tue, 7 Jul 2026 00:56:15 +0000 (17:56 -0700)
committerTakashi Iwai <tiwai@suse.de>
Tue, 7 Jul 2026 14:17:58 +0000 (16:17 +0200)
The ASUS ROG Ally X (RC72LA, PCI SSID 0x1043:0x1eb3) leaves the combo
jack microphone pin (0x19) unconfigured, so a headset microphone is
neither detected nor captured. Only the internal microphone is
available.

Add a pin override that configures node 0x19 as an external headset
mic, the same way the original ROG Ally does. The headphone output
fixup chain is preserved, so speaker and headphone routing are
unchanged.

Signed-off-by: Matthew Schwartz <matthew.schwartz@linux.dev>
Link: https://patch.msgid.link/20260707005615.52889-2-matthew.schwartz@linux.dev
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/hda/codecs/realtek/alc269.c

index 8d409ccacad4e137865e5bdab98b0b77231450e5..984868e3d8bb374720cdd496be567056ffb738a6 100644 (file)
@@ -4118,6 +4118,7 @@ enum {
        ALC287_FIXUP_CS35L41_I2C_2_THINKPAD_ACPI,
        ALC287_FIXUP_TAS2781_I2C,
        ALC287_FIXUP_ASUS_ALLY_X,
+       ALC287_FIXUP_ASUS_ALLY_X_SPEAKER,
        ALC287_FIXUP_ASUS_ALLY_X_I2C,
        ALC295_FIXUP_DELL_TAS2781_I2C,
        ALC245_FIXUP_TAS2781_SPI_2,
@@ -6479,6 +6480,15 @@ static const struct hda_fixup alc269_fixups[] = {
                .chain_id = ALC285_FIXUP_THINKPAD_HEADSET_JACK,
        },
        [ALC287_FIXUP_ASUS_ALLY_X] = {
+               .type = HDA_FIXUP_PINS,
+               .v.pins = (const struct hda_pintbl[]) {
+                       { 0x19, 0x03a11050 }, /* headset mic */
+                       { }
+               },
+               .chained = true,
+               .chain_id = ALC287_FIXUP_ASUS_ALLY_X_SPEAKER,
+       },
+       [ALC287_FIXUP_ASUS_ALLY_X_SPEAKER] = {
                .type = HDA_FIXUP_FUNC,
                .v.func = alc285_fixup_speaker2_to_dac1,
                .chained = true,