From 6297027629a9349301e08442b67deb9783a5e984 Mon Sep 17 00:00:00 2001 From: Frank Mandarino Date: Fri, 2 Feb 2007 17:19:24 +0100 Subject: [ALSA] soc - ASoC 0.13 AT91xxxx DMA This patch updates the AT91xxxx audio DMA driver to the new API in ASoC 0.13. Changes:- o Updated to use new 0.13 data structures. o Suspend and Resume now conditionally compiled. o #include guard around at91-pcm.h header. Signed-off-by: Frank Mandarino Signed-off-by: Liam Girdwood Signed-off-by: Takashi Iwai Signed-off-by: Jaroslav Kysela --- sound/soc/at91/at91-pcm.c | 7 ++++++- sound/soc/at91/at91-pcm.h | 9 +++++---- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'sound/soc') diff --git a/sound/soc/at91/at91-pcm.c b/sound/soc/at91/at91-pcm.c index fd9d732..e88b12e 100644 --- a/sound/soc/at91/at91-pcm.c +++ b/sound/soc/at91/at91-pcm.c @@ -125,7 +125,7 @@ static int at91_pcm_hw_params(struct snd_pcm_substream *substream, snd_pcm_set_runtime_buffer(substream, &substream->dma_buffer); runtime->dma_bytes = params_buffer_bytes(params); - prtd->params = rtd->cpu_dai->dma_data; + prtd->params = rtd->dai->cpu_dai->dma_data; prtd->params->dma_intr_handler = at91_pcm_dma_irq; prtd->dma_buffer = runtime->dma_addr; @@ -363,6 +363,7 @@ static void at91_pcm_free_dma_buffers(struct snd_pcm *pcm) } } +#ifdef CONFIG_PM static int at91_pcm_suspend(struct platform_device *pdev, struct snd_soc_cpu_dai *dai) { @@ -410,6 +411,10 @@ static int at91_pcm_resume(struct platform_device *pdev, at91_ssc_write(params->ssc_base + AT91_PDC_PTCR, params->mask->pdc_enable); return 0; } +#else +#define at91_pcm_suspend NULL +#define at91_pcm_resume NULL +#endif struct snd_soc_platform at91_soc_platform = { .name = "at91-audio", diff --git a/sound/soc/at91/at91-pcm.h b/sound/soc/at91/at91-pcm.h index 6c3b095..58d0f00 100644 --- a/sound/soc/at91/at91-pcm.h +++ b/sound/soc/at91/at91-pcm.h @@ -16,6 +16,9 @@ * published by the Free Software Foundation. */ +#ifndef _AT91_PCM_H +#define _AT91_PCM_H + #include struct at91_ssc_periph { @@ -23,7 +26,6 @@ struct at91_ssc_periph { u32 pid; }; - /* * Registers and status bits that are required by the PCM driver. */ @@ -44,7 +46,6 @@ struct at91_ssc_mask { u32 pdc_disable; /* PDC recv/trans disable */ }; - /* * This structure, shared between the PCM driver and the interface, * contains all information required by the PCM driver to perform the @@ -63,9 +64,9 @@ struct at91_pcm_dma_params { void (*dma_intr_handler)(u32, struct snd_pcm_substream *); }; -extern struct snd_soc_cpu_dai at91_i2s_dai[3]; extern struct snd_soc_platform at91_soc_platform; - #define at91_ssc_read(a) ((unsigned long) __raw_readl(a)) #define at91_ssc_write(a,v) __raw_writel((v),(a)) + +#endif /* _AT91_PCM_H */ -- cgit v1.1