[alsa-devel] Remap pin 0x16 of ASUS ROG G751 to Headphone

Takashi Iwai tiwai at suse.de
Tue Oct 9 16:23:33 CEST 2018


On Tue, 09 Oct 2018 14:24:33 +0200,
Takashi Iwai wrote:
> 
> On Mon, 08 Oct 2018 18:07:17 +0200,
> Håvard wrote:
> > 
> > Hi!
> > 
> > On ASUS ROG G751 laptops the heaphone port is mapped to nothing, causing it
> > to not function at all. I propose that we add a remap of pin 0x16 to
> > Headphone in order to prevent this issue, and fix compability with the new
> > mode=asus-g751.
> > 
> > I don't know how to write patches, but this is what needs adding in
> > sound/pci/hda/patch_realtek.c:
> > 
> >        [ALC668_FIXUP_ASUS_G751_PINS] = {
> >                 .type = HDA_FIXUP_PINS,
> >                 .v.pins = (const struct hda_pintbl[]) {
> >                         { 0x16, 0x0421101f }, /* HP */
> >                         {}
> >                 },
> >         },
> >         [ALC668_FIXUP_ASUS_G751] = {
> >                 .type = HDA_FIXUP_VERBS,
> >                 .v.verbs = (const struct hda_verb[]) {
> >                          { 0x20, AC_VERB_SET_COEF_INDEX, 0xc3 },
> >                          { 0x20, AC_VERB_SET_PROC_COEF, 0x4000 },
> >                          {}
> >                 },
> >                 .chained = true,
> >                 .chain_id = ALC668_FIXUP_ASUS_G751_PINS
> >         },
> > 
> > And declaring the function earlier.
> 
> Thanks.  I prefer keeping the old COEF as a generic one, so let's move
> ALC668_FIXUP_ASUS_G751 with the pin-config fix and chain to a new one
> ALC668_FIXUP_MIC_COEF.
> 
> The fix patch is below.

Actually it contained a typo.  The corrected one below.


thanks,

Takashi

-- 8< --
From: Takashi Iwai <tiwai at suse.de>
Subject: [PATCH v2] ALSA: hda - Fix headphone pin config for ASUS G751

BIOS on ASUS G751 doesn't seem to map the headphone pin (NID 0x16)
correctly.  Add a quirk to address it, as well as chaining to the
previous fix for the microphone.

Reported-by: Håvard <hovardslill at gmail.com>
Cc: <stable at vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai at suse.de>
---
 sound/pci/hda/patch_realtek.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 3be7d7649525..6262d7b07099 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -7738,6 +7738,7 @@ enum {
 	ALC662_FIXUP_ASUS_Nx50,
 	ALC668_FIXUP_ASUS_Nx51_HEADSET_MODE,
 	ALC668_FIXUP_ASUS_Nx51,
+	ALC668_FIXUP_MIC_COEF,
 	ALC668_FIXUP_ASUS_G751,
 	ALC891_FIXUP_HEADSET_MODE,
 	ALC891_FIXUP_DELL_MIC_NO_PRESENCE,
@@ -8008,7 +8009,7 @@ static const struct hda_fixup alc662_fixups[] = {
 		.chained = true,
 		.chain_id = ALC668_FIXUP_ASUS_Nx51_HEADSET_MODE,
 	},
-	[ALC668_FIXUP_ASUS_G751] = {
+	[ALC668_FIXUP_MIC_COEF] = {
 		.type = HDA_FIXUP_VERBS,
 		.v.verbs = (const struct hda_verb[]) {
 			{ 0x20, AC_VERB_SET_COEF_INDEX, 0xc3 },
@@ -8016,6 +8017,15 @@ static const struct hda_fixup alc662_fixups[] = {
 			{}
 		},
 	},
+	[ALC668_FIXUP_ASUS_G751] = {
+		.type = HDA_FIXUP_PINS,
+		.v.pins = (const struct hda_pintbl[]) {
+			{ 0x16, 0x0421101f }, /* HP */
+			{}
+		},
+		.chained = true,
+		.chain_id = ALC668_FIXUP_MIC_COEF
+	},
 	[ALC891_FIXUP_HEADSET_MODE] = {
 		.type = HDA_FIXUP_FUNC,
 		.v.func = alc_fixup_headset_mode,
-- 
2.18.0



More information about the Alsa-devel mailing list