+++ /dev/null
-From 8718b700ccbcc3c6016d38a75e005293c3660f1c Mon Sep 17 00:00:00 2001
-From: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
-Date: Wed, 4 Mar 2009 14:22:51 -0300
-Subject: ALSA: hda - Add headphone automute support for 3stack-hp model (ALC888)
-Patch-mainline:
-References: bnc#482796
-
-Mute speaker outputs on headphone insertion for machines that use
-3stack-hp model.
-
-Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-
----
- sound/pci/hda/patch_realtek.c | 38 +++++++++++++++++++++++++++++++++-----
- 1 file changed, 33 insertions(+), 5 deletions(-)
-
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -7853,16 +7853,42 @@ static struct hda_verb alc888_lenovo_sky
- { } /* end */
- };
-
-+static struct hda_verb alc888_6st_dell_verbs[] = {
-+ {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
-+ { }
-+};
-+
-+static void alc888_3st_hp_front_automute(struct hda_codec *codec)
-+{
-+ unsigned int present, bits;
-+
-+ present = snd_hda_codec_read(codec, 0x1b, 0,
-+ AC_VERB_GET_PIN_SENSE, 0) & 0x80000000;
-+ bits = present ? HDA_AMP_MUTE : 0;
-+ snd_hda_codec_amp_stereo(codec, 0x14, HDA_OUTPUT, 0,
-+ HDA_AMP_MUTE, bits);
-+ snd_hda_codec_amp_stereo(codec, 0x16, HDA_OUTPUT, 0,
-+ HDA_AMP_MUTE, bits);
-+ snd_hda_codec_amp_stereo(codec, 0x18, HDA_OUTPUT, 0,
-+ HDA_AMP_MUTE, bits);
-+}
-+
-+static void alc888_3st_hp_unsol_event(struct hda_codec *codec,
-+ unsigned int res)
-+{
-+ switch (res >> 26) {
-+ case ALC880_HP_EVENT:
-+ alc888_3st_hp_front_automute(codec);
-+ break;
-+ }
-+}
-+
- static struct hda_verb alc888_3st_hp_verbs[] = {
- {0x14, AC_VERB_SET_CONNECT_SEL, 0x00}, /* Front: output 0 (0x0c) */
- {0x16, AC_VERB_SET_CONNECT_SEL, 0x01}, /* Rear : output 1 (0x0d) */
- {0x18, AC_VERB_SET_CONNECT_SEL, 0x02}, /* CLFE : output 2 (0x0e) */
-- { }
--};
--
--static struct hda_verb alc888_6st_dell_verbs[] = {
- {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN},
-- { }
-+ { } /* end */
- };
-
- /*
-@@ -8715,6 +8741,8 @@ static struct alc_config_preset alc883_p
- .channel_mode = alc888_3st_hp_modes,
- .need_dac_fix = 1,
- .input_mux = &alc883_capture_source,
-+ .unsol_event = alc888_3st_hp_unsol_event,
-+ .init_hook = alc888_3st_hp_front_automute,
- },
- [ALC888_6ST_DELL] = {
- .mixers = { alc883_base_mixer, alc883_chmode_mixer },