ASoC: davinci-mcasp: Fix S24_LE and U24_LE support
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Thu, 26 Jun 2014 05:09:24 +0000 (08:09 +0300)
committerMark Brown <broonie@linaro.org>
Mon, 30 Jun 2014 14:53:25 +0000 (15:53 +0100)
In case of S24_LE/U24_LE modes we expect 24bits on the bus while the samples
are stored and transferred in memory on 32bits (lower 3 bytes of the 4
bytes).

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/davinci/davinci-mcasp.c

index 0ee4986038cc690b9c305537d4d8b603c2d2bd13..bfcc6c3dc2fde18ad0f5165f4a1bc3ede68984b1 100644 (file)
@@ -720,6 +720,10 @@ static int davinci_mcasp_hw_params(struct snd_pcm_substream *substream,
 
        case SNDRV_PCM_FORMAT_U24_LE:
        case SNDRV_PCM_FORMAT_S24_LE:
+               dma_params->data_type = 4;
+               word_length = 24;
+               break;
+
        case SNDRV_PCM_FORMAT_U32_LE:
        case SNDRV_PCM_FORMAT_S32_LE:
                dma_params->data_type = 4;