[ALSA] hda: add sigmatel 9205 eapd support
authorMatt Porter <mporter@embeddedalley.com>
Mon, 18 Dec 2006 12:17:28 +0000 (13:17 +0100)
committerJaroslav Kysela <perex@suse.cz>
Fri, 9 Feb 2007 08:02:30 +0000 (09:02 +0100)
Adds support for handling EAPD on 9205 codecs

Signed-off-by: Matt Porter <mporter@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
sound/pci/hda/patch_sigmatel.c

index cbaa00aa5b92a9add9898afc8d434986f4e40bbd..4e3fc95b7b4fc52f219f5febfd0b99b0e6723709 100644 (file)
@@ -1859,6 +1859,18 @@ static int patch_stac9205(struct hda_codec *codec)
 
        spec->multiout.dac_nids = spec->dac_nids;
 
+       /* Configure GPIO0 as EAPD output */
+       snd_hda_codec_write(codec, codec->afg, 0,
+                           AC_VERB_SET_GPIO_DIRECTION, 0x00000001);
+       /* Configure GPIO0 as CMOS */
+       snd_hda_codec_write(codec, codec->afg, 0, 0x7e7, 0x00000000);
+       /* Assert GPIO0 high */
+       snd_hda_codec_write(codec, codec->afg, 0,
+                           AC_VERB_SET_GPIO_DATA, 0x00000001);
+       /* Enable GPIO0 */
+       snd_hda_codec_write(codec, codec->afg, 0,
+                           AC_VERB_SET_GPIO_MASK, 0x00000001);
+
        err = stac92xx_parse_auto_config(codec, 0x1f, 0x20);
        if (err < 0) {
                stac92xx_free(codec);