/* sound/soc/samsung/eax.h * * Exynos Audio Mixer driver * * Copyright (c) 2014 Samsung Electronics Co. Ltd. * Yeongman Seo * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #ifndef _EXYNOS_AMIXER_H #define _EXYNOS_AMIXER_H #include #include #include #define EAX_NAME_MAX PLATFORM_NAME_SIZE struct ch_info { char name[EAX_NAME_MAX]; struct platform_device *pdev; struct device *dev_master; struct s3c_dma_params *dma_params; struct snd_soc_dai_driver dai_drv; bool opened; bool running; struct list_head node; int ch_id; }; extern int eax_dev_register(struct device *dev, const char *name, struct s3c_dma_params *dma, int ch); extern int eax_dai_register(struct snd_soc_dai *dai, const struct snd_soc_dai_ops *dai_ops, int (*dai_suspend)(struct snd_soc_dai *dai), int (*dai_resume)(struct snd_soc_dai *dai)); extern int eax_dai_unregister(void); extern int eax_dma_dai_register(struct snd_soc_dai *dai); extern int eax_dma_dai_unregister(void); extern int eax_dma_params_register(struct s3c_dma_params *dma); extern int eax_asoc_platform_register(struct device *dev); #ifdef CONFIG_SND_SOC_EAX_SLOWPATH extern int eax_slowpath_dev_register(struct device *dev, const char *name, struct s3c_dma_params *dma, int ch); extern int eax_slowpath_dai_register(struct snd_soc_dai *dai, const struct snd_soc_dai_ops *dai_ops, int (*dai_suspend)(struct snd_soc_dai *dai), int (*dai_resume)(struct snd_soc_dai *dai)); extern int eax_slowpath_asoc_platform_register(struct device *dev); extern int eax_slowpath_params_register(struct s3c_dma_params *dma); extern int eax_slowpath_dma_dai_register(struct snd_soc_dai *dai); extern int eax_slowpath_dma_dai_unregister(void); extern void eax_slowpath_wakeup_buf_wq(int idx); #endif #endif