aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorLydia Wang <lydiawang@viatech.com.cn>2011-06-29 01:52:02 -0400
committerTakashi Iwai <tiwai@suse.de>2011-06-29 02:02:46 -0400
commite322a36d3998f7f53c76e25e32302632326ec224 (patch)
tree71ec20695fab0dcbd20e5ddeb511a588d1163183 /sound/pci
parent94230c11da649866b5b38039d84579d668b6a560 (diff)
ALSA: hda - Fix jack-detection on non-VT1708 VIA codecs
Move codec init verb which is only applicatable for VT1708. I've found the root cause that jack plugged in can't be detected. The verb in vt1708_init_verbs is used to power down jack detect circuit. This verb is only applicable to VT1708. vt1708 didn't implement jack detect function in hardware, so we should shut down this function to avoid noise. But for other codecs, hardware implement jack detect function. If sending this verb during initialization, jack detect will be invalid. So I move this verb from via_parse_auto_config() to patch_vt1708(). Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_via.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
index 76142c1389d7..93fcea045e3b 100644
--- a/sound/pci/hda/patch_via.c
+++ b/sound/pci/hda/patch_via.c
@@ -2338,7 +2338,6 @@ static int via_parse_auto_config(struct hda_codec *codec)
2338 if (spec->kctls.list) 2338 if (spec->kctls.list)
2339 spec->mixers[spec->num_mixers++] = spec->kctls.list; 2339 spec->mixers[spec->num_mixers++] = spec->kctls.list;
2340 2340
2341 spec->init_verbs[spec->num_iverbs++] = vt1708_init_verbs;
2342 2341
2343 if (spec->hp_dac_nid && spec->hp_dep_path.depth) { 2342 if (spec->hp_dac_nid && spec->hp_dep_path.depth) {
2344 err = via_hp_build(codec); 2343 err = via_hp_build(codec);
@@ -2504,6 +2503,8 @@ static int patch_vt1708(struct hda_codec *codec)
2504 if (codec->vendor_id == 0x11061708) 2503 if (codec->vendor_id == 0x11061708)
2505 spec->stream_analog_playback = &vt1708_pcm_analog_s16_playback; 2504 spec->stream_analog_playback = &vt1708_pcm_analog_s16_playback;
2506 2505
2506 spec->init_verbs[spec->num_iverbs++] = vt1708_init_verbs;
2507
2507 codec->patch_ops = via_patch_ops; 2508 codec->patch_ops = via_patch_ops;
2508 2509
2509 INIT_DELAYED_WORK(&spec->vt1708_hp_work, vt1708_update_hp_jack_state); 2510 INIT_DELAYED_WORK(&spec->vt1708_hp_work, vt1708_update_hp_jack_state);