Skip to content

Commit

Permalink
[ALSA] hda: add eapd support to additional idt codecs
Browse files Browse the repository at this point in the history
Added support for EAPD on the 927x, and 9227-8 IDT HDA codecs.
Enabling EAPD powers the internal speaker amp otherwise there is no
sound on systems with an internal amp.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
  • Loading branch information
Matthew Ranostay authored and Jaroslav Kysela committed Jul 20, 2007
1 parent 76c0882 commit 92a22be
Showing 1 changed file with 18 additions and 13 deletions.
31 changes: 18 additions & 13 deletions sound/pci/hda/patch_sigmatel.c
Original file line number Diff line number Diff line change
Expand Up @@ -844,6 +844,21 @@ static void stac92xx_set_config_regs(struct hda_codec *codec)
}
}

static void stac92xx_enable_eapd(struct hda_codec *codec)
{
/* Configure GPIO0 as 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);
}

/*
* Analog playback callbacks
*/
Expand Down Expand Up @@ -2205,7 +2220,8 @@ static int patch_stac927x(struct hda_codec *codec)
}

spec->multiout.dac_nids = spec->dac_nids;

stac92xx_enable_eapd(codec);

err = stac92xx_parse_auto_config(codec, 0x1e, 0x20);
if (!err) {
if (spec->board_config < 0) {
Expand Down Expand Up @@ -2273,18 +2289,7 @@ static int patch_stac9205(struct hda_codec *codec)
spec->mixer = stac9205_mixer;

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);
stac92xx_enable_eapd(codec);

err = stac92xx_parse_auto_config(codec, 0x1f, 0x20);
if (!err) {
Expand Down

0 comments on commit 92a22be

Please sign in to comment.