ASoC: dwc: Enable 24 bit sample size in PIO mode
authorJose Abreu <Jose.Abreu@synopsys.com>
Tue, 27 Dec 2016 14:00:54 +0000 (14:00 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 9 Jan 2017 11:59:09 +0000 (11:59 +0000)
Sample size of 24 bits use in reality 32 bits for storage. We
can safelly enable this sample size and treat the data as
32 bits.

Tested in a x86_64 platform and in ARC AXS101 SDP platform.

Signed-off-by: Jose Abreu <joabreu@synopsys.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/dwc/designware_pcm.c

index b063c860156967023db185ed7478fefa8c01c889..459ec861e6b6c84c04a7597dde059131523d6654 100644 (file)
@@ -80,6 +80,7 @@ static const struct snd_pcm_hardware dw_pcm_hardware = {
        .rate_min = 32000,
        .rate_max = 48000,
        .formats = SNDRV_PCM_FMTBIT_S16_LE |
        .rate_min = 32000,
        .rate_max = 48000,
        .formats = SNDRV_PCM_FMTBIT_S16_LE |
+               SNDRV_PCM_FMTBIT_S24_LE |
                SNDRV_PCM_FMTBIT_S32_LE,
        .channels_min = 2,
        .channels_max = 2,
                SNDRV_PCM_FMTBIT_S32_LE,
        .channels_min = 2,
        .channels_max = 2,
@@ -175,6 +176,7 @@ static int dw_pcm_hw_params(struct snd_pcm_substream *substream,
                dev->tx_fn = dw_pcm_tx_16;
                dev->rx_fn = dw_pcm_rx_16;
                break;
                dev->tx_fn = dw_pcm_tx_16;
                dev->rx_fn = dw_pcm_rx_16;
                break;
+       case SNDRV_PCM_FORMAT_S24_LE:
        case SNDRV_PCM_FORMAT_S32_LE:
                dev->tx_fn = dw_pcm_tx_32;
                dev->rx_fn = dw_pcm_rx_32;
        case SNDRV_PCM_FORMAT_S32_LE:
                dev->tx_fn = dw_pcm_tx_32;
                dev->rx_fn = dw_pcm_rx_32;