kernel_samsung_a34x-permissive/sound/soc/mediatek/scp_spk/mtk-scp-spk-common.h
2024-04-28 15:51:13 +02:00

58 lines
1.4 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2018 MediaTek Inc.
*/
#ifndef _MTK_SCP_SPK_COMMON_H
#define _MTK_SCP_SPK_COMMON_H
#include <linux/kernel.h>
#ifdef scp_spk_debug
#undef scp_spk_debug
#endif
#if 0 /* debug only. might make performace degrade */
#define scp_spk_debug(x...) pr_info(x)
#else
#define scp_spk_debug(x...)
#endif
struct mtk_base_afe;
struct mtk_base_scp_spk;
struct snd_dma_buffer;
struct snd_pcm_substream;
struct mtk_base_scp_spk_dump;
enum {
SCP_SPK_STAGE_OFF,
SCP_SPK_STAGE_NORMAL_PLAYBACK,
SCP_SPK_STAGE_VOICE_PLAYBACK,
};
enum {
SCP_SPK_DL_DAI_ID = 0,
SCP_SPK_IV_DAI_ID,
SCP_SPK_MDUL_DAI_ID,
SCP_SPK_DAI_NUM,
};
int audio_set_dsp_afe(struct mtk_base_afe *afe);
struct mtk_base_afe *get_afe_base(void);
int set_scp_spk_base(struct mtk_base_scp_spk *scp_spk);
void *get_scp_spk_base(void);
void *get_ipi_recv_private(void);
void set_ipi_recv_private(void *priv);
void mtk_scp_spk_dump_msg(struct mtk_base_scp_spk_dump *spk_dump);
void mtk_scp_spk_ipi_send(uint8_t data_type,/* audio_ipi_msg_data_t */
uint8_t ack_type,/* audio_ipi_msg_ack_t */
uint16_t msg_id,
uint32_t param1, uint32_t param2,
char *payload);
unsigned int mtk_scp_spk_pack_payload(uint16_t msg_id, uint32_t param1,
uint32_t param2,
struct snd_dma_buffer *dma_buffer,
struct snd_pcm_substream *substream);
void set_afe_irq_target(int irq_usage, int scp_enable);
#endif