[alsa-devel] [PATCH 6/16] ALSA: VIA HDA: Fix independent headphone no sound issue
From: Lydia Wang lydiawang@viatech.com.cn 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 lydiawang@viatech.com.cn --- sound/pci/hda/patch_via.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
--- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c @@ -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, Lydia Wang wrote:
From: Lydia Wang lydiawang@viatech.com.cn 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
Signed-off-by: Lydia Wang lydiawang@viatech.com.cn
sound/pci/hda/patch_via.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
--- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c @@ -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,
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,AC_VERB_SET_CONNECT_SEL, pinsel);
@@ -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;
}
participants (2)
-
Lydia Wang
-
Takashi Iwai