diff options
Diffstat (limited to 'sound/soc/atmel/atmel-pcm.h')
| -rw-r--r-- | sound/soc/atmel/atmel-pcm.h | 34 | 
1 files changed, 34 insertions, 0 deletions
diff --git a/sound/soc/atmel/atmel-pcm.h b/sound/soc/atmel/atmel-pcm.h index 5e0a95e6432..bb45d20e725 100644 --- a/sound/soc/atmel/atmel-pcm.h +++ b/sound/soc/atmel/atmel-pcm.h @@ -36,6 +36,8 @@  #include <linux/atmel-ssc.h> +#define ATMEL_SSC_DMABUF_SIZE	(64 * 1024) +  /*   * Registers and status bits that are required by the PCM driver.   */ @@ -50,6 +52,7 @@ struct atmel_pdc_regs {  struct atmel_ssc_mask {  	u32	ssc_enable;		/* SSC recv/trans enable */  	u32	ssc_disable;		/* SSC recv/trans disable */ +	u32	ssc_error;		/* SSC error conditions */  	u32	ssc_endx;		/* SSC ENDTX or ENDRX */  	u32	ssc_endbuf;		/* SSC TXBUFE or RXBUFF */  	u32	pdc_enable;		/* PDC recv/trans enable */ @@ -80,4 +83,35 @@ struct atmel_pcm_dma_params {  #define ssc_readx(base, reg)            (__raw_readl((base) + (reg)))  #define ssc_writex(base, reg, value)    __raw_writel((value), (base) + (reg)) +int atmel_pcm_new(struct snd_soc_pcm_runtime *rtd); +void atmel_pcm_free(struct snd_pcm *pcm); +int atmel_pcm_mmap(struct snd_pcm_substream *substream, +		struct vm_area_struct *vma); + +#ifdef CONFIG_SND_ATMEL_SOC_PDC +int atmel_pcm_pdc_platform_register(struct device *dev); +void atmel_pcm_pdc_platform_unregister(struct device *dev); +#else +static inline int atmel_pcm_pdc_platform_register(struct device *dev) +{ +	return 0; +} +static inline void atmel_pcm_pdc_platform_unregister(struct device *dev) +{ +} +#endif + +#ifdef CONFIG_SND_ATMEL_SOC_DMA +int atmel_pcm_dma_platform_register(struct device *dev); +void atmel_pcm_dma_platform_unregister(struct device *dev); +#else +static inline int atmel_pcm_dma_platform_register(struct device *dev) +{ +	return 0; +} +static inline void atmel_pcm_dma_platform_unregister(struct device *dev) +{ +} +#endif +  #endif /* _ATMEL_PCM_H */  |