[PATCH 1/6] sound/pci/hda: Fix Amp-In count for widgets withimplied selector

From: Michael Karcher
Date: Thu Apr 05 2012 - 09:50:21 EST


A selector widget with AC_WCAP_IN_AMP has multiple input amplifiers (if
the selector widget would have only one common amp, it would be labeled
as "output amplifier" instead). This is just like mixer widgets.

If a non-mixer/selector widget has an input amplifier, it is only one
input amplifier, even if it has a connection list with more than one
entry. The implied selector is placed before the single input amplifier.

At least that is how I read the HDA specs, and what Conexant implements in
their CX20549 codec.

diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c
index 254ab52..9b942f0 100644
--- a/sound/pci/hda/hda_proc.c
+++ b/sound/pci/hda/hda_proc.c
@@ -653,7 +653,7 @@ static void print_codec_info(struct snd_info_entry *entry,
snd_iprintf(buffer, " Amp-In vals: ");
print_amp_vals(buffer, codec, nid, HDA_INPUT,
wid_caps & AC_WCAP_STEREO,
- wid_type == AC_WID_PIN ? 1 : conn_len);
+ (wid_type == AC_WID_AUD_SEL || wid_type == AC_WID_AUD_MIX) ? conn_len : 1);
}
if (wid_caps & AC_WCAP_OUT_AMP) {
snd_iprintf(buffer, " Amp-Out caps: ");
--
1.7.9.1



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/