From e322a36d3998f7f53c76e25e32302632326ec224 Mon Sep 17 00:00:00 2001 From: Lydia Wang Date: Wed, 29 Jun 2011 13:52:02 +0800 Subject: [PATCH] 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 Signed-off-by: Takashi Iwai --- sound/pci/hda/patch_via.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index 76142c1389d..93fcea045e3 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) if (spec->kctls.list) spec->mixers[spec->num_mixers++] = spec->kctls.list; - spec->init_verbs[spec->num_iverbs++] = vt1708_init_verbs; if (spec->hp_dac_nid && spec->hp_dep_path.depth) { err = via_hp_build(codec); @@ -2504,6 +2503,8 @@ static int patch_vt1708(struct hda_codec *codec) if (codec->vendor_id == 0x11061708) spec->stream_analog_playback = &vt1708_pcm_analog_s16_playback; + spec->init_verbs[spec->num_iverbs++] = vt1708_init_verbs; + codec->patch_ops = via_patch_ops; INIT_DELAYED_WORK(&spec->vt1708_hp_work, vt1708_update_hp_jack_state); -- 2.41.0