1*61890ccaSMoudy Ho /* SPDX-License-Identifier: GPL-2.0-only */ 2*61890ccaSMoudy Ho /* 3*61890ccaSMoudy Ho * Copyright (c) 2022 MediaTek Inc. 4*61890ccaSMoudy Ho * Author: Ping-Hsun Wu <ping-hsun.wu@mediatek.com> 5*61890ccaSMoudy Ho */ 6*61890ccaSMoudy Ho 7*61890ccaSMoudy Ho #ifndef __MTK_MDP3_CMDQ_H__ 8*61890ccaSMoudy Ho #define __MTK_MDP3_CMDQ_H__ 9*61890ccaSMoudy Ho 10*61890ccaSMoudy Ho #include <linux/platform_device.h> 11*61890ccaSMoudy Ho #include <linux/videodev2.h> 12*61890ccaSMoudy Ho #include <linux/soc/mediatek/mtk-cmdq.h> 13*61890ccaSMoudy Ho #include "mtk-img-ipi.h" 14*61890ccaSMoudy Ho 15*61890ccaSMoudy Ho struct platform_device *mdp_get_plat_device(struct platform_device *pdev); 16*61890ccaSMoudy Ho 17*61890ccaSMoudy Ho struct mdp_cmdq_param { 18*61890ccaSMoudy Ho struct img_config *config; 19*61890ccaSMoudy Ho struct img_ipi_frameparam *param; 20*61890ccaSMoudy Ho const struct v4l2_rect *composes[IMG_MAX_HW_OUTPUTS]; 21*61890ccaSMoudy Ho 22*61890ccaSMoudy Ho void (*cmdq_cb)(struct cmdq_cb_data data); 23*61890ccaSMoudy Ho void *cb_data; 24*61890ccaSMoudy Ho void *mdp_ctx; 25*61890ccaSMoudy Ho }; 26*61890ccaSMoudy Ho 27*61890ccaSMoudy Ho struct mdp_cmdq_cmd { 28*61890ccaSMoudy Ho struct work_struct auto_release_work; 29*61890ccaSMoudy Ho struct cmdq_pkt pkt; 30*61890ccaSMoudy Ho s32 *event; 31*61890ccaSMoudy Ho struct mdp_dev *mdp; 32*61890ccaSMoudy Ho void (*user_cmdq_cb)(struct cmdq_cb_data data); 33*61890ccaSMoudy Ho void *user_cb_data; 34*61890ccaSMoudy Ho struct mdp_comp *comps; 35*61890ccaSMoudy Ho void *mdp_ctx; 36*61890ccaSMoudy Ho u8 num_comps; 37*61890ccaSMoudy Ho }; 38*61890ccaSMoudy Ho 39*61890ccaSMoudy Ho struct mdp_dev; 40*61890ccaSMoudy Ho 41*61890ccaSMoudy Ho int mdp_cmdq_send(struct mdp_dev *mdp, struct mdp_cmdq_param *param); 42*61890ccaSMoudy Ho 43*61890ccaSMoudy Ho #endif /* __MTK_MDP3_CMDQ_H__ */ 44