summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-12-27 11:22:24 +0100
committerTakashi Iwai <tiwai@suse.de>2009-12-27 13:39:24 +0100
commita4e09aa3cf592d9f084ff4ceb216be40c4c265dc (patch)
tree3089d6b229720588ce66d0c18455968ea1b23f8b /sound
parent92ee6162c48fab24f0676969f0f147fc12f8f21c (diff)
downloadlinux-a4e09aa3cf592d9f084ff4ceb216be40c4c265dc.tar.gz
linux-a4e09aa3cf592d9f084ff4ceb216be40c4c265dc.tar.bz2
linux-a4e09aa3cf592d9f084ff4ceb216be40c4c265dc.zip
ALSA: hda - Fix click noises at suspend/free with Realtek codecs
Call snd_hda_shutup_pins() at suspend and free for avoiding click noises. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/patch_realtek.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 6361e6b3c9c5..cd6d139b4fd5 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3693,6 +3693,11 @@ static int alc_build_pcms(struct hda_codec *codec)
return 0;
}
+static inline void alc_shutup(struct hda_codec *codec)
+{
+ snd_hda_shutup_pins(codec);
+}
+
static void alc_free_kctls(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
@@ -3713,6 +3718,7 @@ static void alc_free(struct hda_codec *codec)
if (!spec)
return;
+ alc_shutup(codec);
alc_free_kctls(codec);
kfree(spec);
snd_hda_detach_beep_device(codec);
@@ -3722,6 +3728,7 @@ static void alc_free(struct hda_codec *codec)
static int alc_suspend(struct hda_codec *codec, pm_message_t state)
{
struct alc_spec *spec = codec->spec;
+ alc_shutup(codec);
if (spec && spec->power_hook)
spec->power_hook(codec, 0);
return 0;