aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/patch_analog.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2013-12-16 09:53:52 -0500
committerTakashi Iwai <tiwai@suse.de>2013-12-16 09:53:52 -0500
commitd09476018bee39495d6ece7a2e069de29a9c0ed5 (patch)
tree866fff4323f94681e6b423f269f0549df0a34066 /sound/pci/hda/patch_analog.c
parent337bb336b95bd7884fa3a194eafbdf52a0216b2e (diff)
parentafdcd431cebe3498db9aa963c780fdd5099917ec (diff)
Merge branch 'for-linus' into for-next
Diffstat (limited to 'sound/pci/hda/patch_analog.c')
-rw-r--r--sound/pci/hda/patch_analog.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 05280033c302..b174eb1567b8 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);
@@ -339,6 +341,14 @@ static int patch_ad1986a(struct hda_codec *codec)
339{ 341{
340 int err; 342 int err;
341 struct ad198x_spec *spec; 343 struct ad198x_spec *spec;
344 static hda_nid_t preferred_pairs[] = {
345 0x1a, 0x03,
346 0x1b, 0x03,
347 0x1c, 0x04,
348 0x1d, 0x05,
349 0x1e, 0x03,
350 0
351 };
342 352
343 err = alloc_ad_spec(codec); 353 err = alloc_ad_spec(codec);
344 if (err < 0) 354 if (err < 0)
@@ -359,6 +369,11 @@ static int patch_ad1986a(struct hda_codec *codec)
359 * So, let's disable the shared stream. 369 * So, let's disable the shared stream.
360 */ 370 */
361 spec->gen.multiout.no_share_stream = 1; 371 spec->gen.multiout.no_share_stream = 1;
372 /* give fixed DAC/pin pairs */
373 spec->gen.preferred_dacs = preferred_pairs;
374
375 /* AD1986A can't manage the dynamic pin on/off smoothly */
376 spec->gen.auto_mute_via_amp = 1;
362 377
363 snd_hda_pick_fixup(codec, ad1986a_fixup_models, ad1986a_fixup_tbl, 378 snd_hda_pick_fixup(codec, ad1986a_fixup_models, ad1986a_fixup_tbl,
364 ad1986a_fixups); 379 ad1986a_fixups);