[alsa-devel] [PATCH v2 11/11] ASoC: Allow PCMs to restrict the supported formats

Lars-Peter Clausen lars at metafoo.de
Mon Jan 6 14:19:16 CET 2014


Some DMA cores might add additional restrictions on which in memory audio
formats can be supported by the compound sound card. If the PCM component
specifies a set of formats it supports (by setting the formats field to non 0)
take these into account when calculating the format set for the compound sound
card.

Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
Cc: Timur Tabi <timur at tabi.org>
Cc: Shawn Guo <shawn.guo at linaro.org>
Cc: Nicolin Chen <b42378 at freescale.com>
Cc: Markus Pargmann <mpa at pengutronix.de>
---
New in v1. Note that this patch will only affect fsl/, all other platforms set
the formats field to 0 now.
---
 sound/soc/soc-pcm.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 86b670e..0457e70 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -240,7 +240,10 @@ static void soc_pcm_init_runtime_hw(struct snd_pcm_runtime *runtime,
 		cpu_stream->channels_min);
 	hw->channels_max = min(codec_stream->channels_max,
 		cpu_stream->channels_max);
-	hw->formats = codec_stream->formats & cpu_stream->formats;
+	if (hw->formats)
+		hw->formats &= codec_stream->formats & cpu_stream->formats;
+	else
+		hw->formats = codec_stream->formats & cpu_stream->formats;
 	hw->rates = codec_stream->rates & cpu_stream->rates;
 	if (codec_stream->rates
 		& (SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_CONTINUOUS))
-- 
1.8.0



More information about the Alsa-devel mailing list