[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 <fmandarino@endrelia.com> Signed-off-by: Liam Girdwood <lg@opensource.wolfsonmicro.com> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
Родитель
171eb8f81d
Коммит
6297027629
|
@ -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",
|
||||
|
|
|
@ -16,6 +16,9 @@
|
|||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#ifndef _AT91_PCM_H
|
||||
#define _AT91_PCM_H
|
||||
|
||||
#include <asm/arch/hardware.h>
|
||||
|
||||
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 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче