[alsa-devel] [PATCH] 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
diff -r 96495fe7cc13 pci/hda/patch_sigmatel.c --- a/pci/hda/patch_sigmatel.c Thu Jun 14 12:58:23 2007 +0200 +++ b/pci/hda/patch_sigmatel.c Mon Jun 18 17:10:38 2007 -0400 @@ -832,6 +832,18 @@ static void stac92xx_set_config_regs(str } }
+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 */ @@ -2193,7 +2205,8 @@ static int patch_stac927x(struct hda_cod }
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) { @@ -2254,18 +2267,7 @@ static int patch_stac9205(struct hda_cod 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) {
At Tue, 19 Jun 2007 10:27:25 -0400, Matthew Ranostay wrote:
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
Thanks, added to HG tree now (with slight modification to follow the standard coding style).
Takashi
participants (2)
-
Matthew Ranostay
-
Takashi Iwai