| From 13c12dbe3a2ce17227f7ddef652b6a53c78fa51f Mon Sep 17 00:00:00 2001 |
| From: Hsin-Yu Chao <hychao@chromium.org> |
| Date: Wed, 19 Feb 2014 14:30:35 +0800 |
| Subject: ALSA: hda/ca0132 - Fix recording from mode id 0x8 |
| |
| From: Hsin-Yu Chao <hychao@chromium.org> |
| |
| commit 13c12dbe3a2ce17227f7ddef652b6a53c78fa51f upstream. |
| |
| Incorrect ADC is picked in ca0132_capture_pcm_prepare(), |
| where it assumes multiple streams while there is one stream |
| per ADC. Note that ca0132_capture_pcm_cleanup() already does |
| the right thing. |
| |
| The Chromebook Pixel has a microphone under the keyboard that |
| is attached to node id 0x8. Before this fix, recording would |
| always go to the main internal mic (node id 0x7). |
| |
| Signed-off-by: Hsin-Yu Chao <hychao@chromium.org> |
| Reviewed-by: Dylan Reid <dgreid@chromium.org> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pci/hda/patch_ca0132.c | 4 +--- |
| 1 file changed, 1 insertion(+), 3 deletions(-) |
| |
| --- a/sound/pci/hda/patch_ca0132.c |
| +++ b/sound/pci/hda/patch_ca0132.c |
| @@ -2768,9 +2768,7 @@ static int ca0132_capture_pcm_prepare(st |
| unsigned int format, |
| struct snd_pcm_substream *substream) |
| { |
| - struct ca0132_spec *spec = codec->spec; |
| - |
| - snd_hda_codec_setup_stream(codec, spec->adcs[substream->number], |
| + snd_hda_codec_setup_stream(codec, hinfo->nid, |
| stream_tag, 0, format); |
| |
| return 0; |