summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Ranostay <mranostay@embeddedalley.com>2008-11-19 02:54:17 +0100
committerTakashi Iwai <tiwai@suse.de>2008-11-19 07:37:23 +0100
commitc6798d2bd1805e32a92ba8db168ec51cdbb534b0 (patch)
tree0c058ffce5d9c7b74614159a4fcf7072cf734956
parentALSA: hda: HDMI channel mapping cleanups (diff)
downloadlinux-c6798d2bd1805e32a92ba8db168ec51cdbb534b0.tar.xz
linux-c6798d2bd1805e32a92ba8db168ec51cdbb534b0.zip
ALSA: hda: EAPD mute on suspend
Moved support for EAPD mute on suspend from stac92hd71xx_suspend to the generic stac92xx_suspend function. Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_sigmatel.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 139efe37f3b3..c346c77e3068 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -4185,6 +4185,16 @@ static int stac92xx_resume(struct hda_codec *codec)
(STAC_HP_EVENT | spec->autocfg.hp_pins[0]) << 26);
return 0;
}
+
+static int stac92xx_suspend(struct hda_codec *codec, pm_message_t state)
+{
+ struct sigmatel_spec *spec = codec->spec;
+ if (spec->eapd_mask)
+ stac_gpio_set(codec, spec->gpio_mask,
+ spec->gpio_dir, spec->gpio_data &
+ ~spec->eapd_mask);
+ return 0;
+}
#endif
static struct hda_codec_ops stac92xx_patch_ops = {
@@ -4194,6 +4204,7 @@ static struct hda_codec_ops stac92xx_patch_ops = {
.free = stac92xx_free,
.unsol_event = stac92xx_unsol_event,
#ifdef SND_HDA_NEEDS_RESUME
+ .suspend = stac92xx_suspend,
.resume = stac92xx_resume,
#endif
};
@@ -4598,14 +4609,8 @@ static int stac92hd71xx_resume(struct hda_codec *codec)
static int stac92hd71xx_suspend(struct hda_codec *codec, pm_message_t state)
{
- struct sigmatel_spec *spec = codec->spec;
-
stac92hd71xx_set_power_state(codec, AC_PWRST_D3);
- if (spec->eapd_mask)
- stac_gpio_set(codec, spec->gpio_mask,
- spec->gpio_dir, spec->gpio_data &
- ~spec->eapd_mask);
- return 0;
+ return stac92xx_suspend(codec, state);
};
#endif
@@ -4617,8 +4622,8 @@ static struct hda_codec_ops stac92hd71bxx_patch_ops = {
.free = stac92xx_free,
.unsol_event = stac92xx_unsol_event,
#ifdef SND_HDA_NEEDS_RESUME
- .resume = stac92hd71xx_resume,
.suspend = stac92hd71xx_suspend,
+ .resume = stac92hd71xx_resume,
#endif
};