aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/imx
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-04-07 11:42:25 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-04-07 11:42:25 -0400
commit84db18bbeb5c9c1a9c86e38a89d76ee526fd2c6f (patch)
tree49d3959eb24cd7c0754ed50e05fb96b0fb8d04aa /sound/soc/imx
parent6948ec70355ae6cf6082519e3d76b280373dade1 (diff)
parent55b371d4ac5ed6f3338a398fbf9f2eb9ace78799 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: mixart: range checking proc file ALSA: hda - Fix a wrong array range check in patch_realtek.c ALSA: ASoC: move dma_data from snd_soc_dai to snd_soc_pcm_stream ALSA: hda - Enable amplifiers on Acer Inspire 6530G ASoC: Only do WM8994 bias off transition from standby ASoC: Don't use DCS_DATAPATH_BUSY for WM hubs devices ASoC: Don't do runtime wm_hubs DC servo updates if using offset correction ASoC: Support second DC servo readback method for wm_hubs ASoC: Avoid wraparound in wm_hubs DC servo correction ALSA: echoaudio - Eliminate use after free ALSA: i2c: cleanup: change parameter to pointer ALSA: hda - Add MSI blacklist for Aopen MZ915-M ASoC: OMAP: Fix capture pointer handling for OMAP1510 to work correctly with recent ALSA PCM code ALSA: hda - Update document about MSI and interrupts ALSA: hda: Fix 0 dB offset for Lenovo Thinkpad models using AD1981 ALSA: hda - Add missing printk argument in previous patch ASoC: Fix passing platform_data to ac97 bus users and fix a leak ALSA: hda - Fix ADC/MUX assignment of ALC269 codec ALSA: hda - Fix invalid bit values passed to snd_hda_codec_amp_stereo() ASoC: wm8994: playback => capture
Diffstat (limited to 'sound/soc/imx')
-rw-r--r--sound/soc/imx/imx-pcm-dma-mx2.c8
-rw-r--r--sound/soc/imx/imx-ssi.c7
2 files changed, 11 insertions, 4 deletions
diff --git a/sound/soc/imx/imx-pcm-dma-mx2.c b/sound/soc/imx/imx-pcm-dma-mx2.c
index 86668ab3f4d4..2e79d7136298 100644
--- a/sound/soc/imx/imx-pcm-dma-mx2.c
+++ b/sound/soc/imx/imx-pcm-dma-mx2.c
@@ -84,11 +84,13 @@ static void snd_imx_dma_err_callback(int channel, void *data, int err)
84static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream) 84static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream)
85{ 85{
86 struct snd_soc_pcm_runtime *rtd = substream->private_data; 86 struct snd_soc_pcm_runtime *rtd = substream->private_data;
87 struct imx_pcm_dma_params *dma_params = rtd->dai->cpu_dai->dma_data; 87 struct imx_pcm_dma_params *dma_params;
88 struct snd_pcm_runtime *runtime = substream->runtime; 88 struct snd_pcm_runtime *runtime = substream->runtime;
89 struct imx_pcm_runtime_data *iprtd = runtime->private_data; 89 struct imx_pcm_runtime_data *iprtd = runtime->private_data;
90 int ret; 90 int ret;
91 91
92 dma_params = snd_soc_get_dma_data(rtd->dai->cpu_dai, substream);
93
92 iprtd->dma = imx_dma_request_by_prio(DRV_NAME, DMA_PRIO_HIGH); 94 iprtd->dma = imx_dma_request_by_prio(DRV_NAME, DMA_PRIO_HIGH);
93 if (iprtd->dma < 0) { 95 if (iprtd->dma < 0) {
94 pr_err("Failed to claim the audio DMA\n"); 96 pr_err("Failed to claim the audio DMA\n");
@@ -193,10 +195,12 @@ static int snd_imx_pcm_prepare(struct snd_pcm_substream *substream)
193{ 195{
194 struct snd_pcm_runtime *runtime = substream->runtime; 196 struct snd_pcm_runtime *runtime = substream->runtime;
195 struct snd_soc_pcm_runtime *rtd = substream->private_data; 197 struct snd_soc_pcm_runtime *rtd = substream->private_data;
196 struct imx_pcm_dma_params *dma_params = rtd->dai->cpu_dai->dma_data; 198 struct imx_pcm_dma_params *dma_params;
197 struct imx_pcm_runtime_data *iprtd = runtime->private_data; 199 struct imx_pcm_runtime_data *iprtd = runtime->private_data;
198 int err; 200 int err;
199 201
202 dma_params = snd_soc_get_dma_data(rtd->dai->cpu_dai, substream);
203
200 iprtd->substream = substream; 204 iprtd->substream = substream;
201 iprtd->buf = (unsigned int *)substream->dma_buffer.area; 205 iprtd->buf = (unsigned int *)substream->dma_buffer.area;
202 iprtd->period_cnt = 0; 206 iprtd->period_cnt = 0;
diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
index 6546b06cbd2a..0bcc6d7d9471 100644
--- a/sound/soc/imx/imx-ssi.c
+++ b/sound/soc/imx/imx-ssi.c
@@ -235,17 +235,20 @@ static int imx_ssi_hw_params(struct snd_pcm_substream *substream,
235 struct snd_soc_dai *cpu_dai) 235 struct snd_soc_dai *cpu_dai)
236{ 236{
237 struct imx_ssi *ssi = cpu_dai->private_data; 237 struct imx_ssi *ssi = cpu_dai->private_data;
238 struct imx_pcm_dma_params *dma_data;
238 u32 reg, sccr; 239 u32 reg, sccr;
239 240
240 /* Tx/Rx config */ 241 /* Tx/Rx config */
241 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { 242 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
242 reg = SSI_STCCR; 243 reg = SSI_STCCR;
243 cpu_dai->dma_data = &ssi->dma_params_tx; 244 dma_data = &ssi->dma_params_tx;
244 } else { 245 } else {
245 reg = SSI_SRCCR; 246 reg = SSI_SRCCR;
246 cpu_dai->dma_data = &ssi->dma_params_rx; 247 dma_data = &ssi->dma_params_rx;
247 } 248 }
248 249
250 snd_soc_dai_set_dma_data(cpu_dai, substream, dma_data);
251
249 sccr = readl(ssi->base + reg) & ~SSI_STCCR_WL_MASK; 252 sccr = readl(ssi->base + reg) & ~SSI_STCCR_WL_MASK;
250 253
251 /* DAI data (word) size */ 254 /* DAI data (word) size */