/* SPDX-License-Identifier: GPL-2.0 */

#ifndef _MTK_VCODEC_FW_H_
#define _MTK_VCODEC_FW_H_

#include <linux/remoteproc.h>
#include <linux/remoteproc/mtk_scp.h>

#include "../vpu/mtk_vpu.h"

struct mtk_vcodec_dev;

enum mtk_vcodec_fw_type {
	VPU,
	SCP,
};

enum mtk_vcodec_fw_use {
	DECODER,
	ENCODER,
};

struct mtk_vcodec_fw;

typedef void (*mtk_vcodec_ipi_handler) (void *data,
	unsigned int len, void *priv);

struct mtk_vcodec_fw *mtk_vcodec_fw_select(struct mtk_vcodec_dev *dev,
					   enum mtk_vcodec_fw_type type,
					   enum mtk_vcodec_fw_use fw_use);
void mtk_vcodec_fw_release(struct mtk_vcodec_fw *fw);

int mtk_vcodec_fw_load_firmware(struct mtk_vcodec_fw *fw);
unsigned int mtk_vcodec_fw_get_vdec_capa(struct mtk_vcodec_fw *fw);
unsigned int mtk_vcodec_fw_get_venc_capa(struct mtk_vcodec_fw *fw);
void *mtk_vcodec_fw_map_dm_addr(struct mtk_vcodec_fw *fw, u32 mem_addr);
int mtk_vcodec_fw_ipi_register(struct mtk_vcodec_fw *fw, int id,
			       mtk_vcodec_ipi_handler handler,
			       const char *name, void *priv);
int mtk_vcodec_fw_ipi_send(struct mtk_vcodec_fw *fw, int id,
			   void *buf, unsigned int len, unsigned int wait);
int mtk_vcodec_fw_get_type(struct mtk_vcodec_fw *fw);

#endif /* _MTK_VCODEC_FW_H_ */
