sdk-hwV1.3/lichee/linux-4.9/sound/soc/sunxi_v2/snd_sunxi_pcm.h

68 lines
2.0 KiB
C

/* sound\soc\sunxi\snd_sunxi_pcm.h
* (C) Copyright 2021-2025
* Allwinner Technology Co., Ltd. <www.allwinnertech.com>
* Dby <dby@allwinnertech.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*/
#ifndef __SND_SUNXI_PCM_H
#define __SND_SUNXI_PCM_H
#define SUNXI_AUDIO_CMA_BLOCK_BYTES 1024
#define SUNXI_AUDIO_CMA_MAX_KBYTES 1024
#define SUNXI_AUDIO_CMA_MIN_KBYTES 64
#define SUNXI_AUDIO_CMA_MAX_BYTES (SUNXI_AUDIO_CMA_BLOCK_BYTES * SUNXI_AUDIO_CMA_MAX_KBYTES)
#define SUNXI_AUDIO_CMA_MIN_BYTES (SUNXI_AUDIO_CMA_BLOCK_BYTES * SUNXI_AUDIO_CMA_MIN_KBYTES)
#define SUNXI_AUDIO_FIFO_SIZE 128
struct sunxi_dma_params {
char *name;
dma_addr_t dma_addr;
u8 src_maxburst;
u8 dst_maxburst;
u8 dma_drq_type_num;
/* max buffer set (value must be (2^n)Kbyte) */
size_t cma_kbytes;
size_t fifo_size;
};
#if IS_ENABLED(CONFIG_SND_SOC_SUNXI_PCM)
extern int snd_sunxi_dma_platform_register(struct device *dev);
extern void snd_sunxi_dma_platform_unregister(struct device *dev);
#else
static inline int snd_sunxi_dma_platform_register(struct device *dev)
{
pr_err("[sound %4d][PCM %s] PCM API is disabled\n", __LINE__, __func__);
return 0;
}
static inline void snd_sunxi_dma_platform_unregister(struct device *dev)
{
pr_err("[sound %4d][PCM %s] PCM API is disabled\n", __LINE__, __func__);
}
#endif
#if IS_ENABLED(CONFIG_SND_SOC_SUNXI_PCM_HDMI)
extern int snd_sunxi_hdmi_platform_register(struct device *dev);
extern void snd_sunxi_hdmi_platform_unregister(struct device *dev);
#else
static inline int snd_sunxi_hdmi_platform_register(struct device *dev)
{
pr_err("[sound %4d][PCM %s] PCM HDMI API is disabled\n", __LINE__, __func__);
return 0;
}
static inline void snd_sunxi_hdmi_platform_unregister(struct device *dev)
{
pr_err("[sound %4d][PCM %s] PCM HDMI API is disabled\n", __LINE__, __func__);
}
#endif
#endif /* __SND_SUNXI_PCM_H */