ALSA: hda - Evaluate gpio_led hints at the right moment
authorTakashi Iwai <tiwai@suse.de>
Mon, 14 May 2012 14:52:00 +0000 (16:52 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 15 May 2012 06:58:38 +0000 (08:58 +0200)
The hints regarding the mute-LED must be evaluated during the codec
parsing.

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

index b04179be6205f4592f88a2eae826e510b9525bb1..0669149a92fc044fca99965c337ce6b4438d114f 100644 (file)
@@ -4232,13 +4232,6 @@ static void stac_store_hints(struct hda_codec *codec)
        val = snd_hda_get_bool_hint(codec, "eapd_switch");
        if (val >= 0)
                spec->eapd_switch = val;
-       get_int_hint(codec, "gpio_led_polarity", &spec->gpio_led_polarity);
-       if (get_int_hint(codec, "gpio_led", &spec->gpio_led)) {
-               spec->gpio_mask |= spec->gpio_led;
-               spec->gpio_dir |= spec->gpio_led;
-               if (spec->gpio_led_polarity)
-                       spec->gpio_data |= spec->gpio_led;
-       }
 }
 
 static void stac_issue_unsol_events(struct hda_codec *codec, int num_pins,
@@ -4843,6 +4836,11 @@ static int find_mute_led_cfg(struct hda_codec *codec, int default_polarity)
        struct sigmatel_spec *spec = codec->spec;
        const struct dmi_device *dev = NULL;
 
+       if (get_int_hint(codec, "gpio_led", &spec->gpio_led)) {
+               get_int_hint(codec, "gpio_led_polarity",
+                            &spec->gpio_led_polarity);
+               return 1;
+       }
        if ((codec->subsystem_id >> 16) == PCI_VENDOR_ID_HP) {
                while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING,
                                                                NULL, dev))) {