[alsa-devel] pci/hda/patch_via.c - broken between 2.6.36 and 2.6.37 (bisected)
David Henningsson
david.henningsson at canonical.com
Mon Feb 21 09:35:25 CET 2011
On 2011-02-20 12:06, Mark Goldstein wrote:
> I think the Mic part might be the same problem I had. I found out that
> the following code:
>
> static void via_auto_init_analog_input(struct hda_codec *codec)
> {
> struct via_spec *spec = codec->spec;
> const struct auto_pin_cfg *cfg =&spec->autocfg;
> unsigned int ctl;
> int i;
>
> for (i = 0; i< cfg->num_inputs; i++) {
> hda_nid_t nid = cfg->inputs[i].pin;
> if (spec->smart51_enabled&& is_smart51_pins(spec, nid))
> ctl = PIN_OUT;
> else if (i == AUTO_PIN_MIC)
> ^^^^^^^^^^^^^^^^^^^^^^^^^
> ctl = PIN_VREF50;
> else
> ctl = PIN_IN;
> snd_hda_codec_write(codec, nid, 0,
> AC_VERB_SET_PIN_WIDGET_CONTROL, ctl);
> }
> }
>
> configures correctly only the first MIC (in my case it was Rear MIC).
> Front Mic pin was configured as HiZ.
> Changing the underlined condition to
>
> else if (cfg->input[i].type == AUTO_PIN_MIC)
>
> resolved the issue for me. (In alsa driver 1.0.23 this code was
> different, it checked that i<= FRONT_MIC index).
>
> I'm also just the user of alsa driver, so can't decide whether this is
> the proper fix. Maybe someone of knowledgeable developers could check
> it.
It looks like the proper fix to me. If you like the fame and fortune ;-)
of having a commits in the kernel, I encourage you to submit a patch.
Remember to have proper "Cc: stable at kernel.org" and "Signed-off-by"
lines in the the patch header, and to cc Takashi on the resulting email.
If not, I'll be happy to do it for you. It seems like an important fix
to me.
--
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic
More information about the Alsa-devel
mailing list