Skip to content

Commit

Permalink
ALSA: hda - Fix jack-detection on non-VT1708 VIA codecs
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Lydia Wang authored and Takashi Iwai committed Jun 29, 2011
1 parent 94230c1 commit e322a36
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion sound/pci/hda/patch_via.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit e322a36

Please sign in to comment.