At Thu, 9 Aug 2012 08:47:19 +0200, Thierry Reding wrote:
Unmuting the analog bypass causes any input to be directly bypassed to the outputs, which is usually not expected by the user.
Signed-off-by: Thierry Reding thierry.reding@avionic-design.de
Note that this patch could be generalized to include all codec variants that have this second channel. As I don't have access to all the data sheets I'll leave that decision up to somebody with more hardware available.
Hmm, are you really sure that this is exclusive switch between two? All Realtek codecs with this mixer widget mixes two sources up. Otherwise it must not be a "mixer" widget at all but it must be a "selector" widget.
And I haven't received a bug report regarding this although ALC892 is no new chip and the auto-parser has been enabled for so long time.
thanks,
Takashi
sound/pci/hda/patch_realtek.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 4f81dd4..54d0917 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3752,8 +3752,15 @@ static void alc_auto_set_output_and_unmute(struct hda_codec *codec, if (nid_has_mute(codec, mix, HDA_INPUT)) { snd_hda_codec_write(codec, mix, 0, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0));
snd_hda_codec_write(codec, mix, 0, AC_VERB_SET_AMP_GAIN_MUTE,
AMP_IN_UNMUTE(1));
/*
* On ALC892, the second entry in the connection list is the
* analog bypass. Unmuting it will cause any inputs to be
* directly forwarded to the corresponding outputs.
*/
if (codec->subsystem_id != 0x10ec0892)
snd_hda_codec_write(codec, mix, 0,
AC_VERB_SET_AMP_GAIN_MUTE,
} /* initialize volume */ nid = alc_look_for_out_vol_nid(codec, pin, dac);AMP_IN_UNMUTE(1));
-- 1.7.11.4