diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2012-09-14 08:05:56 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-09-22 11:13:01 -0400 |
commit | f05cc9dac99ac6403d057d2cccb3c754714d2f32 (patch) | |
tree | 638491093acf7d5d652fa6c752f7108c186aec7c | |
parent | 04564e3258304df607d4536de42603b4c8e21e1a (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>
-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 @@ | |||
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 | ||