aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/omap
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2012-09-14 08:05:56 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-09-22 11:13:01 -0400
commitf05cc9dac99ac6403d057d2cccb3c754714d2f32 (patch)
tree638491093acf7d5d652fa6c752f7108c186aec7c /sound/soc/omap
parent04564e3258304df607d4536de42603b4c8e21e1a (diff)
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/omap')
-rw-r--r--sound/soc/omap/omap-hdmi.c3
-rw-r--r--sound/soc/omap/omap-pcm.c3
-rw-r--r--sound/soc/omap/omap-pcm.h3
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 @@
34#include <sound/asoundef.h> 34#include <sound/asoundef.h>
35#include <video/omapdss.h> 35#include <video/omapdss.h>
36 36
37#include <plat/dma.h>
38#include "omap-pcm.h" 37#include "omap-pcm.h"
39#include "omap-hdmi.h" 38#include "omap-hdmi.h"
40 39
@@ -100,7 +99,7 @@ static int omap_hdmi_dai_hw_params(struct snd_pcm_substream *substream,
100 return -EINVAL; 99 return -EINVAL;
101 } 100 }
102 101
103 priv->dma_params.data_type = OMAP_DMA_DATA_TYPE_S32; 102 priv->dma_params.data_type = 32;
104 103
105 snd_soc_dai_set_dma_data(dai, substream, 104 snd_soc_dai_set_dma_data(dai, substream,
106 &priv->dma_params); 105 &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)
183 memset(&dma_params, 0, sizeof(dma_params)); 183 memset(&dma_params, 0, sizeof(dma_params));
184 184
185 if (dma_data->data_type) 185 if (dma_data->data_type)
186 dma_params.data_type = dma_data->data_type; 186 dma_params.data_type = omap_pcm_get_dma_type(
187 dma_data->data_type);
187 else 188 else
188 dma_params.data_type = omap_pcm_get_dma_type( 189 dma_params.data_type = omap_pcm_get_dma_type(
189 snd_pcm_format_physical_width(runtime->format)); 190 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 {
32 int dma_req; /* DMA request line */ 32 int dma_req; /* DMA request line */
33 unsigned long port_addr; /* transmit/receive register */ 33 unsigned long port_addr; /* transmit/receive register */
34 void (*set_threshold)(struct snd_pcm_substream *substream); 34 void (*set_threshold)(struct snd_pcm_substream *substream);
35 int data_type; /* data type 8,16,32 */ 35 int data_type; /* 8, 16, 32 (bits) or 0 to let omap-pcm
36 * to decide the sDMA data type */
36 int packet_size; /* packet size only in PACKET mode */ 37 int packet_size; /* packet size only in PACKET mode */
37}; 38};
38 39