[alsa-devel] [PATCH] ALSA: hda - Fix inverted internal mic not indicated on some machines

Takashi Iwai tiwai at suse.de
Mon Oct 14 10:31:32 CEST 2013


At Mon, 14 Oct 2013 10:16:22 +0200,
David Henningsson wrote:
> 
> The create_bind_cap_vol_ctl does not create any control indicating
> that an inverted dmic is present. Therefore, create multiple
> capture volumes in this scenario, so we always have some indication
> that the internal mic is inverted.
> 
> This happens on the Lenovo Ideapad U310 as well as the Lenovo Yoga 13
> (both are based on the CX20590 codec), but the fix is generic and
> could be needed for other codecs/machines too.
> 
> Thanks to Szymon Acedański for the pointer and a draft patch.
> 
> BugLink: https://bugs.launchpad.net/bugs/1239392
> BugLink: https://bugs.launchpad.net/bugs/1227491
> Reported-by: Szymon Acedański <accek at mimuw.edu.pl>
> Signed-off-by: David Henningsson <david.henningsson at canonical.com>
> ---
>  sound/pci/hda/hda_generic.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> I think this fix is safe enough to send to Linus and stable, but will leave the
> final judgement to Takashi.

Yes, this looks good as a stable material, as far as I've tested,
too.  Applied it now.  Thanks!


Takashi

> 
> diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
> index ac41e9c..26ad4f0 100644
> --- a/sound/pci/hda/hda_generic.c
> +++ b/sound/pci/hda/hda_generic.c
> @@ -3531,7 +3531,7 @@ static int create_capture_mixers(struct hda_codec *codec)
>  		if (!multi)
>  			err = create_single_cap_vol_ctl(codec, n, vol, sw,
>  							inv_dmic);
> -		else if (!multi_cap_vol)
> +		else if (!multi_cap_vol && !inv_dmic)
>  			err = create_bind_cap_vol_ctl(codec, n, vol, sw);
>  		else
>  			err = create_multi_cap_vol_ctl(codec);
> -- 
> 1.7.9.5
> 


More information about the Alsa-devel mailing list