ALSA: hda/realtek - Use common GPIO mask for ALC660VD ASUS fixup
authorTakashi Iwai <tiwai@suse.de>
Tue, 19 Jun 2018 21:05:47 +0000 (23:05 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 25 Jun 2018 08:04:24 +0000 (10:04 +0200)
The ALC660VD_FIX_ASUS_GPIO1 quirk requires to set up GPIO bit0 ON
while bit 1 OFF.  Implement the fixup function and convert from the
static init verbs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index 2cda4a6..1ee086b 100644 (file)
@@ -7354,16 +7354,21 @@ static void alc861vd_fixup_dallas(struct hda_codec *codec,
        }
 }
 
+/* reset GPIO1 */
+static void alc660vd_fixup_asus_gpio1(struct hda_codec *codec,
+                                     const struct hda_fixup *fix, int action)
+{
+       struct alc_spec *spec = codec->spec;
+
+       if (action == HDA_FIXUP_ACT_PRE_PROBE)
+               spec->gpio_mask |= 0x02;
+       alc_fixup_gpio(codec, action, 0x01);
+}
+
 static const struct hda_fixup alc861vd_fixups[] = {
        [ALC660VD_FIX_ASUS_GPIO1] = {
-               .type = HDA_FIXUP_VERBS,
-               .v.verbs = (const struct hda_verb[]) {
-                       /* reset GPIO1 */
-                       {0x01, AC_VERB_SET_GPIO_MASK, 0x03},
-                       {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x01},
-                       {0x01, AC_VERB_SET_GPIO_DATA, 0x01},
-                       { }
-               }
+               .type = HDA_FIXUP_FUNC,
+               .v.func = alc660vd_fixup_asus_gpio1,
        },
        [ALC861VD_FIX_DALLAS] = {
                .type = HDA_FIXUP_FUNC,