162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2022 MediaTek Inc.
462306a36Sopenharmony_ci * Author: Ping-Hsun Wu <ping-hsun.wu@mediatek.com>
562306a36Sopenharmony_ci */
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#ifndef __MTK_MDP3_CMDQ_H__
862306a36Sopenharmony_ci#define __MTK_MDP3_CMDQ_H__
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#include <linux/platform_device.h>
1162306a36Sopenharmony_ci#include <linux/videodev2.h>
1262306a36Sopenharmony_ci#include <linux/soc/mediatek/mtk-cmdq.h>
1362306a36Sopenharmony_ci#include "mtk-img-ipi.h"
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistruct platform_device *mdp_get_plat_device(struct platform_device *pdev);
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cistruct mdp_cmdq_param {
1862306a36Sopenharmony_ci	struct img_config *config;
1962306a36Sopenharmony_ci	struct img_ipi_frameparam *param;
2062306a36Sopenharmony_ci	const struct v4l2_rect *composes[IMG_MAX_HW_OUTPUTS];
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	void (*cmdq_cb)(struct cmdq_cb_data data);
2362306a36Sopenharmony_ci	void *cb_data;
2462306a36Sopenharmony_ci	void *mdp_ctx;
2562306a36Sopenharmony_ci};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cistruct mdp_cmdq_cmd {
2862306a36Sopenharmony_ci	struct work_struct auto_release_work;
2962306a36Sopenharmony_ci	struct cmdq_pkt pkt;
3062306a36Sopenharmony_ci	s32 *event;
3162306a36Sopenharmony_ci	struct mdp_dev *mdp;
3262306a36Sopenharmony_ci	void (*user_cmdq_cb)(struct cmdq_cb_data data);
3362306a36Sopenharmony_ci	void *user_cb_data;
3462306a36Sopenharmony_ci	struct mdp_comp *comps;
3562306a36Sopenharmony_ci	void *mdp_ctx;
3662306a36Sopenharmony_ci	u8 num_comps;
3762306a36Sopenharmony_ci};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cistruct mdp_dev;
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciint mdp_cmdq_send(struct mdp_dev *mdp, struct mdp_cmdq_param *param);
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci#endif  /* __MTK_MDP3_CMDQ_H__ */
44