ALSA: VIA HDA: Fix independent headphone no sound issue
PATCH 6/16 ALSA: VIA HDA: Fix independent headphone no sound issue
From: Lydia Wang <[email protected]>
Subject: ALSA: VIA HDA: Fix independent headphone no sound issue.
Modify via_independent_hp_put() function to support VT1718S and VT1812 codecs, and fix independent headphone no sound issue.
Signed-off-by Lydia Wang <[email protected]>
--- sound/pci/hda/patch_via.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
sound/pci/hda/patch_via.c +11 -2
@@ -740,8 +740,15 @@/* Get Independent Mode index of headphone pin widget */ spec->hp_independent_mode = spec->hp_independent_mode_index == pinsel ?1 :0 ; -snd_hda_codec_write (codec, nid,0 ,AC_VERB_SET_CONNECT_SEL , pinsel); - +if (spec->codec_type ==VT1718S ) +snd_hda_codec_write (codec, nid,0 , +AC_VERB_SET_CONNECT_SEL , pinsel ?2 :0 ); +else +snd_hda_codec_write (codec, nid,0 , +AC_VERB_SET_CONNECT_SEL , pinsel); +if (spec->codec_type ==VT1812 ) +snd_hda_codec_write (codec,0x35 ,0 , +AC_VERB_SET_CONNECT_SEL , pinsel);if (spec->multiout.hp_nid && spec->multiout.hp_nid != spec->multiout.dac_nids[HDA_FRONT ]) snd_hda_codec_setup_stream(codec, spec->multiout.hp_nid,
@@ -761,6 +768,8 @@activate_ctl (codec,"Headphone Playback Switch" , spec->hp_independent_mode); } +/* update jack power state */ +set_widgets_power_state (codec);return 0 ; }
At Mon, 21 Mar 2011 15:28:04 +0800,
Quoted 6 lines · Lydia Wang
From: Lydia Wang <[email protected]>
Subject: ALSA: VIA HDA: Fix independent headphone no sound issue.Modify
via_independent_hp_put()function to support VT1718S and VT1812 codecs, and fix independent headphone no sound issue.
This is also another issue that I'd like to fix before refactoring. There are many complaints about the silent output on VT codecs...
Takashi
Quoted 36 lines
Signed-off-by Lydia Wang <[email protected]>--- sound/pci/hda/patch_via.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)sound/pci/hda/patch_via.c +11
-2@@ -740,8 +740,15 @@/* Get Independent Mode index of headphone pin widget */ spec->hp_independent_mode = spec->hp_independent_mode_index == pinsel ?1 :0 ; -snd_hda_codec_write (codec, nid,0 ,AC_VERB_SET_CONNECT_SEL , pinsel); - +if (spec->codec_type ==VT1718S ) +snd_hda_codec_write (codec, nid,0 , +AC_VERB_SET_CONNECT_SEL , pinsel ?2 :0 ); +else +snd_hda_codec_write (codec, nid,0 , +AC_VERB_SET_CONNECT_SEL , pinsel); +if (spec->codec_type ==VT1812 ) +snd_hda_codec_write (codec,0x35 ,0 , +AC_VERB_SET_CONNECT_SEL , pinsel);if (spec->multiout.hp_nid && spec->multiout.hp_nid != spec->multiout.dac_nids[HDA_FRONT ]) snd_hda_codec_setup_stream(codec, spec->multiout.hp_nid,@@ -761,6 +768,8 @@activate_ctl (codec,"Headphone Playback Switch" , spec->hp_independent_mode); } +/* update jack power state */ +set_widgets_power_state (codec);return 0 ; }