ASoC: omap-pcm, omap-dmic: Change the use of omap_pcm_dma_data->data_type
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Fri, 14 Sep 2012 12:05:56 +0000 (15:05 +0300)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Sat, 22 Sep 2012 15:13:01 +0000 (11:13 -0400)
Instead of the OMAP DMA data type definition the data_type will be used to
specify the number of bits the DMA word should be configured or 0 in case
when based on the stream's format the omap-pcm can decide the needed DMA
word size.
This feature is needed for the omap-hdmi where the sDMA need to be
configured for 32bit word type regardless of the audio format used.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/omap/omap-hdmi.c
sound/soc/omap/omap-pcm.c
sound/soc/omap/omap-pcm.h

index b19464697ac8f3ebf97868d3891dcb37481bfaec..095176738fd633711c97f9bc9029eb4c5a206283 100644 (file)
@@ -34,7 +34,6 @@
 #include <sound/asoundef.h>
 #include <video/omapdss.h>
 
-#include <plat/dma.h>
 #include "omap-pcm.h"
 #include "omap-hdmi.h"
 
@@ -100,7 +99,7 @@ static int omap_hdmi_dai_hw_params(struct snd_pcm_substream *substream,
                return -EINVAL;
        }
 
-       priv->dma_params.data_type = OMAP_DMA_DATA_TYPE_S32;
+       priv->dma_params.data_type = 32;
 
        snd_soc_dai_set_dma_data(dai, substream,
                                 &priv->dma_params);
index 4c13a5f4eebb4456cce635f53eabdc87724cce4c..74da4b7209d077d0f5e16f3efa9b5626c53ecf0a 100644 (file)
@@ -183,7 +183,8 @@ static int omap_pcm_prepare(struct snd_pcm_substream *substream)
        memset(&dma_params, 0, sizeof(dma_params));
 
        if (dma_data->data_type)
-               dma_params.data_type = dma_data->data_type;
+               dma_params.data_type = omap_pcm_get_dma_type(
+                               dma_data->data_type);
        else
                dma_params.data_type = omap_pcm_get_dma_type(
                                snd_pcm_format_physical_width(runtime->format));
index 1bf47e4b60c214115b2189b3c3a2fefb114d460f..cabe74c4068b88da547c45736bcda36490402ae9 100644 (file)
@@ -32,7 +32,8 @@ struct omap_pcm_dma_data {
        int             dma_req;        /* DMA request line */
        unsigned long   port_addr;      /* transmit/receive register */
        void (*set_threshold)(struct snd_pcm_substream *substream);
-       int             data_type;      /* data type 8,16,32 */
+       int             data_type;      /* 8, 16, 32 (bits) or 0 to let omap-pcm
+                                        * to decide the sDMA data type */
        int             packet_size;    /* packet size only in PACKET mode */
 };