ALSA: hda/ca0132 - Fix recording from mode id 0x8
authorHsin-Yu Chao <hychao@chromium.org>
Wed, 19 Feb 2014 06:30:35 +0000 (14:30 +0800)
committerTakashi Iwai <tiwai@suse.de>
Wed, 19 Feb 2014 06:50:34 +0000 (07:50 +0100)
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>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_ca0132.c

index 0aa72ee38d039a6480e16bec10617ea4f2812087..46ecdbb9053f337ee6f1b199d9babdeb043d72d5 100644 (file)
@@ -2768,9 +2768,7 @@ static int ca0132_capture_pcm_prepare(struct hda_pcm_stream *hinfo,
                                        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;