diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-05-31 19:55:54 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-06-03 11:33:06 +0200 |
commit | 05909d5c679cf7c9a8a5bc663677c066a546894f (patch) | |
tree | 4315727f41d21f9fb380d591a5dccf6f9f7290dc /sound/pci/hda/hda_generic.c | |
parent | ALSA: hda - Allow setting automute/automic hooks after parsing (diff) | |
download | linux-05909d5c679cf7c9a8a5bc663677c066a546894f.tar.xz linux-05909d5c679cf7c9a8a5bc663677c066a546894f.zip |
ALSA: hda - Add keep_eapd_on flag to generic parser
VT1802 codec seems to reset EAPD of other pins in the hardware level,
and this was another reason of the silent headphone output on some
machines. As a workaround, introduce a new flag indicating to keep
the EPAD on to the generic parser, and set it in patch_via.c.
Reported-by: Alex Riesen <raa.lkml@gmail.com>
Cc: <stable@vger.kernel.org> [v3.9]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_generic.c')
-rw-r--r-- | sound/pci/hda/hda_generic.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index fbc10b60be01..cfdb917d74fb 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -788,6 +788,8 @@ static void set_pin_eapd(struct hda_codec *codec, hda_nid_t pin, bool enable) return; if (codec->inv_eapd) enable = !enable; + if (spec->keep_eapd_on && !enable) + return; snd_hda_codec_update_cache(codec, pin, 0, AC_VERB_SET_EAPD_BTLENABLE, enable ? 0x02 : 0x00); |