ALSA: hda - Fix click noises at suspend/free with Realtek codecs
authorTakashi Iwai <tiwai@suse.de>
Sun, 27 Dec 2009 10:22:24 +0000 (11:22 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sun, 27 Dec 2009 12:39:24 +0000 (13:39 +0100)
Call snd_hda_shutup_pins() at suspend and free for avoiding click noises.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index 6361e6b..cd6d139 100644 (file)
@@ -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;