| From 7a3e6107f94344e65c35bfe62de6c096a7b48965 Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Wed, 13 Nov 2013 09:39:08 +0100 |
| Subject: ALSA: hda - Don't turn off EAPD for headphone on Lenovo N100 |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| commit 7a3e6107f94344e65c35bfe62de6c096a7b48965 upstream. |
| |
| The only EAPD on AD1986A is on NID 0x1b where usually the speaker. |
| But this doesn't control only the speaker amp but may influence on all |
| outputs, e.g. Lenovo N100 laptop seems to have this issue. |
| |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pci/hda/patch_analog.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| --- a/sound/pci/hda/patch_analog.c |
| +++ b/sound/pci/hda/patch_analog.c |
| @@ -1197,8 +1197,12 @@ static int alloc_ad_spec(struct hda_code |
| static void ad_fixup_inv_jack_detect(struct hda_codec *codec, |
| const struct hda_fixup *fix, int action) |
| { |
| - if (action == HDA_FIXUP_ACT_PRE_PROBE) |
| + struct ad198x_spec *spec = codec->spec; |
| + |
| + if (action == HDA_FIXUP_ACT_PRE_PROBE) { |
| codec->inv_jack_detect = 1; |
| + spec->gen.keep_eapd_on = 1; |
| + } |
| } |
| |
| enum { |