ALSA: hda - Add more hints for GPIO setup of IDT/STAC codecs
authorTakashi Iwai <tiwai@suse.de>
Sat, 26 Dec 2009 09:36:12 +0000 (10:36 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sat, 26 Dec 2009 09:36:12 +0000 (10:36 +0100)
gpio_led, gpio_led_polarity and gpio_mute are added now.

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

index 247be19e17b836296f0692ad5361cbb709d3dd29..69dd5a4e52f209ded17fa499a32ff23abfc46921 100644 (file)
@@ -4184,9 +4184,23 @@ static void stac_store_hints(struct hda_codec *codec)
        p = snd_hda_get_hint(codec, "eapd_mask");
        if (p)
                spec->eapd_mask = simple_strtoul(p, NULL, 0) & spec->gpio_mask;
+       p = snd_hda_get_hint(codec, "gpio_mute");
+       if (p)
+               spec->gpio_mute = simple_strtoul(p, NULL, 0) & spec->gpio_mask;
        val = snd_hda_get_bool_hint(codec, "eapd_switch");
        if (val >= 0)
                spec->eapd_switch = val;
+       p = snd_hda_get_hint(codec, "gpio_led_polarity");
+       if (p)
+               spec->gpio_led_polarity = simple_strtoul(p, NULL, 0);
+       p = snd_hda_get_hint(codec, "gpio_led");
+       if (p) {
+               spec->gpio_led = simple_strtoul(p, NULL, 0);
+               spec->gpio_mask |= spec->gpio_led;
+               spec->gpio_dir |= spec->gpio_led;
+               if (spec->gpio_led_polarity)
+                       spec->gpio_data |= spec->gpio_led;
+       }
 }
 
 static int stac92xx_init(struct hda_codec *codec)