diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2012-09-14 14:05:56 +0200 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-09-22 17:13:01 +0200 |
commit | f05cc9dac99ac6403d057d2cccb3c754714d2f32 (patch) | |
tree | 638491093acf7d5d652fa6c752f7108c186aec7c /sound/soc | |
parent | ASoC: OMAP: mcbsp, mcpdm, dmic: Let omap-pcm to pick the dma_type (diff) | |
download | linux-f05cc9dac99ac6403d057d2cccb3c754714d2f32.tar.xz linux-f05cc9dac99ac6403d057d2cccb3c754714d2f32.zip |
ASoC: omap-pcm, omap-dmic: Change the use of omap_pcm_dma_data->data_type
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>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/omap/omap-hdmi.c | 3 | ||||
-rw-r--r-- | sound/soc/omap/omap-pcm.c | 3 | ||||
-rw-r--r-- | sound/soc/omap/omap-pcm.h | 3 |
3 files changed, 5 insertions, 4 deletions
diff --git a/sound/soc/omap/omap-hdmi.c b/sound/soc/omap/omap-hdmi.c index b19464697ac8..095176738fd6 100644 --- a/sound/soc/omap/omap-hdmi.c +++ b/sound/soc/omap/omap-hdmi.c @@ -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); diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c index 4c13a5f4eebb..74da4b7209d0 100644 --- a/sound/soc/omap/omap-pcm.c +++ b/sound/soc/omap/omap-pcm.c @@ -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)); diff --git a/sound/soc/omap/omap-pcm.h b/sound/soc/omap/omap-pcm.h index 1bf47e4b60c2..cabe74c4068b 100644 --- a/sound/soc/omap/omap-pcm.h +++ b/sound/soc/omap/omap-pcm.h @@ -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 */ }; |