diff options
Diffstat (limited to 'sound/pci/hda/patch_analog.c')
-rw-r--r-- | sound/pci/hda/patch_analog.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 1a83559f4cbd..cac015be3325 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c | |||
@@ -147,6 +147,8 @@ static void ad_vmaster_eapd_hook(void *private_data, int enabled) | |||
147 | 147 | ||
148 | if (!spec->eapd_nid) | 148 | if (!spec->eapd_nid) |
149 | return; | 149 | return; |
150 | if (codec->inv_eapd) | ||
151 | enabled = !enabled; | ||
150 | snd_hda_codec_update_cache(codec, spec->eapd_nid, 0, | 152 | snd_hda_codec_update_cache(codec, spec->eapd_nid, 0, |
151 | AC_VERB_SET_EAPD_BTLENABLE, | 153 | AC_VERB_SET_EAPD_BTLENABLE, |
152 | enabled ? 0x02 : 0x00); | 154 | enabled ? 0x02 : 0x00); |
@@ -359,6 +361,9 @@ static int patch_ad1986a(struct hda_codec *codec) | |||
359 | */ | 361 | */ |
360 | spec->gen.multiout.no_share_stream = 1; | 362 | spec->gen.multiout.no_share_stream = 1; |
361 | 363 | ||
364 | /* AD1986A can't manage the dynamic pin on/off smoothly */ | ||
365 | spec->gen.auto_mute_via_amp = 1; | ||
366 | |||
362 | snd_hda_pick_fixup(codec, ad1986a_fixup_models, ad1986a_fixup_tbl, | 367 | snd_hda_pick_fixup(codec, ad1986a_fixup_models, ad1986a_fixup_tbl, |
363 | ad1986a_fixups); | 368 | ad1986a_fixups); |
364 | snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); | 369 | snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); |
@@ -962,6 +967,7 @@ static void ad1884_fixup_hp_eapd(struct hda_codec *codec, | |||
962 | switch (action) { | 967 | switch (action) { |
963 | case HDA_FIXUP_ACT_PRE_PROBE: | 968 | case HDA_FIXUP_ACT_PRE_PROBE: |
964 | spec->gen.vmaster_mute.hook = ad1884_vmaster_hp_gpio_hook; | 969 | spec->gen.vmaster_mute.hook = ad1884_vmaster_hp_gpio_hook; |
970 | spec->gen.own_eapd_ctl = 1; | ||
965 | snd_hda_sequence_write_cache(codec, gpio_init_verbs); | 971 | snd_hda_sequence_write_cache(codec, gpio_init_verbs); |
966 | break; | 972 | break; |
967 | case HDA_FIXUP_ACT_PROBE: | 973 | case HDA_FIXUP_ACT_PROBE: |