[ALSA] hda: add eapd support to additional idt codecs
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>
This commit is contained in:
parent
76c0882870
commit
92a22beb75
1 changed files with 18 additions and 13 deletions
|
@ -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
|
||||
*/
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
|
Loading…
Reference in a new issue