]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
ALSA: hda - Use init callback in stac92xx_resume()
authorTakashi Iwai <tiwai@suse.de>
Tue, 18 Nov 2008 08:36:55 +0000 (09:36 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 18 Nov 2008 08:43:10 +0000 (09:43 +0100)
Call the init callback and remove duplicated codes in stac92xx_resume().
This also fixes the missing initialization such as digital I/O pins.

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

index b6cf821434c82251ba9b828a2b34f65753aea64f..bf9a40ee789ef1cfefe8dc6a3d1b5984ebb39bbb 100644 (file)
@@ -4142,17 +4142,13 @@ static int stac92xx_resume(struct hda_codec *codec)
        struct sigmatel_spec *spec = codec->spec;
 
        stac92xx_set_config_regs(codec);
-       snd_hda_sequence_write(codec, spec->init);
-       stac_gpio_set(codec, spec->gpio_mask,
-               spec->gpio_dir, spec->gpio_data);
+       stac92xx_init(codec);
        snd_hda_codec_resume_amp(codec);
        snd_hda_codec_resume_cache(codec);
-       /* power down inactive DACs */
-       if (spec->dac_list)
-               stac92xx_power_down(codec);
-       /* invoke unsolicited event to reset the HP state */
+       /* fake event to set up pins again to override cached values */
        if (spec->hp_detect)
-               codec->patch_ops.unsol_event(codec, STAC_HP_EVENT << 26);
+               codec->patch_ops.unsol_event(codec,
+                       (STAC_HP_EVENT | spec->autocfg.hp_pins[0]) << 26);
        return 0;
 }
 #endif