| From a8f20fd25bdce81a8e41767c39f456d346b63427 Mon Sep 17 00:00:00 2001 |
| From: Hui Wang <hui.wang@canonical.com> |
| Date: Wed, 28 Jun 2017 08:59:16 +0800 |
| Subject: ALSA: hda - set input_path bitmap to zero after moving it to new place |
| |
| From: Hui Wang <hui.wang@canonical.com> |
| |
| commit a8f20fd25bdce81a8e41767c39f456d346b63427 upstream. |
| |
| Recently we met a problem, the codec has valid adcs and input pins, |
| and they can form valid input paths, but the driver does not build |
| valid controls for them like "Mic boost", "Capture Volume" and |
| "Capture Switch". |
| |
| Through debugging, I found the driver needs to shrink the invalid |
| adcs and input paths for this machine, so it will move the whole |
| column bitmap value to the previous column, after moving it, the |
| driver forgets to set the original column bitmap value to zero, as a |
| result, the driver will invalidate the path whose index value is the |
| original colume bitmap value. After executing this function, all |
| valid input paths are invalidated by a mistake, there are no any |
| valid input paths, so the driver won't build controls for them. |
| |
| Fixes: 3a65bcdc577a ("ALSA: hda - Fix inconsistent input_paths after ADC reduction") |
| Signed-off-by: Hui Wang <hui.wang@canonical.com> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pci/hda/hda_generic.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/sound/pci/hda/hda_generic.c |
| +++ b/sound/pci/hda/hda_generic.c |
| @@ -3079,6 +3079,7 @@ static int check_dyn_adc_switch(struct h |
| spec->input_paths[i][nums]); |
| spec->input_paths[i][nums] = |
| spec->input_paths[i][n]; |
| + spec->input_paths[i][n] = 0; |
| } |
| } |
| nums++; |