ASoC: pcm: Require both CODEC and CPU support when declaring stream caps
authorMark Brown <broonie@kernel.org>
Sat, 1 Jun 2013 22:13:53 +0000 (23:13 +0100)
committerMark Brown <broonie@linaro.org>
Mon, 3 Jun 2013 08:55:00 +0000 (09:55 +0100)
When declaring playback and capture capabilities check for both CODEC
side and CPU side support rather than only checking for CODEC side
support.  While it is unusual some CPUs do have unidirectional DAIs.

Reported-by: Fabio Estevam <fabio.estevam@freescale.com>
Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/soc-pcm.c

index 73bb8eefa4913d2b77b468a5dabe22566c61687b..a9fddf0fea19962c49afc5ddef4298b965dd4d43 100644 (file)
@@ -2011,9 +2011,11 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
                if (cpu_dai->driver->capture.channels_min)
                        capture = 1;
        } else {
-               if (codec_dai->driver->playback.channels_min)
+               if (codec_dai->driver->playback.channels_min &&
+                   cpu_dai->driver->playback.channels_min)
                        playback = 1;
-               if (codec_dai->driver->capture.channels_min)
+               if (codec_dai->driver->capture.channels_min &&
+                   cpu_dai->driver->capture.channels_min)
                        capture = 1;
        }