Commit ccb04157 authored by David Henningsson's avatar David Henningsson Committed by Takashi Iwai
Browse files

ALSA: hda - Fix inverted internal mic not indicated on some machines

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: default avatarSzymon Acedański <accek@mimuw.edu.pl>
Signed-off-by: default avatarDavid Henningsson <david.henningsson@canonical.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent fbc78ad6
...@@ -3531,7 +3531,7 @@ static int create_capture_mixers(struct hda_codec *codec) ...@@ -3531,7 +3531,7 @@ static int create_capture_mixers(struct hda_codec *codec)
if (!multi) if (!multi)
err = create_single_cap_vol_ctl(codec, n, vol, sw, err = create_single_cap_vol_ctl(codec, n, vol, sw,
inv_dmic); inv_dmic);
else if (!multi_cap_vol) else if (!multi_cap_vol && !inv_dmic)
err = create_bind_cap_vol_ctl(codec, n, vol, sw); err = create_bind_cap_vol_ctl(codec, n, vol, sw);
else else
err = create_multi_cap_vol_ctl(codec); err = create_multi_cap_vol_ctl(codec);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment