brintos

brintos / linux-shallow public Read only

0
0
Text · 5.6 KiB · b09f482 Raw
284 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (c) 2023 MediaTek Inc.4 * Author: Ping-Hsun Wu <ping-hsun.wu@mediatek.com>5 */6 7#ifndef __MDP_SM_MT8195_H__8#define __MDP_SM_MT8195_H__9 10#include "mtk-mdp3-type.h"11 12/*13 * ISP-MDP generic output information14 * MD5 of the target SCP prebuild:15 *     a49ec487e458b5971880f1b63dc2a9d516 */17 18#define IMG_MAX_SUBFRAMES_8195	2019 20struct img_comp_frame_8195 {21	u32 output_disable;22	u32 bypass;23	u32 in_width;24	u32 in_height;25	u32 out_width;26	u32 out_height;27	struct img_crop crop;28	u32 in_total_width;29	u32 out_total_width;30} __packed;31 32struct img_comp_subfrm_8195 {33	u32 tile_disable;34	struct img_region in;35	struct img_region out;36	struct img_offset luma;37	struct img_offset chroma;38	s32 out_vertical; /* Output vertical index */39	s32 out_horizontal; /* Output horizontal index */40} __packed;41 42struct mdp_rdma_subfrm_8195 {43	u32 offset[IMG_MAX_PLANES];44	u32 offset_0_p;45	u32 src;46	u32 clip;47	u32 clip_ofst;48	u32 in_tile_xleft;49	u32 in_tile_ytop;50} __packed;51 52struct mdp_rdma_data_8195 {53	u32 src_ctrl;54	u32 comp_ctrl;55	u32 control;56	u32 iova[IMG_MAX_PLANES];57	u32 iova_end[IMG_MAX_PLANES];58	u32 mf_bkgd;59	u32 mf_bkgd_in_pxl;60	u32 sf_bkgd;61	u32 ufo_dec_y;62	u32 ufo_dec_c;63	u32 transform;64	u32 dmabuf_con0;65	u32 ultra_th_high_con0;66	u32 ultra_th_low_con0;67	u32 dmabuf_con1;68	u32 ultra_th_high_con1;69	u32 ultra_th_low_con1;70	u32 dmabuf_con2;71	u32 ultra_th_high_con2;72	u32 ultra_th_low_con2;73	u32 dmabuf_con3;74	struct mdp_rdma_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];75} __packed;76 77struct mdp_fg_subfrm_8195 {78	u32 info_0;79	u32 info_1;80} __packed;81 82struct mdp_fg_data_8195 {83	u32 ctrl_0;84	u32 ck_en;85	struct mdp_fg_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];86} __packed;87 88struct mdp_hdr_subfrm_8195 {89	u32 win_size;90	u32 src;91	u32 clip_ofst0;92	u32 clip_ofst1;93	u32 hist_ctrl_0;94	u32 hist_ctrl_1;95	u32 hdr_top;96	u32 hist_addr;97} __packed;98 99struct mdp_hdr_data_8195 {100	u32 top;101	u32 relay;102	struct mdp_hdr_subfrm_8195   subfrms[IMG_MAX_SUBFRAMES_8195];103} __packed;104 105struct mdp_aal_subfrm_8195 {106	u32 src;107	u32 clip;108	u32 clip_ofst;109} __packed;110 111struct mdp_aal_data_8195 {112	u32 cfg_main;113	u32 cfg;114	struct mdp_aal_subfrm_8195   subfrms[IMG_MAX_SUBFRAMES_8195];115} __packed;116 117struct mdp_rsz_subfrm_8195 {118	u32 control2;119	u32 src;120	u32 clip;121	u32 hdmirx_en;122	u32 luma_h_int_ofst;123	u32 luma_h_sub_ofst;124	u32 luma_v_int_ofst;125	u32 luma_v_sub_ofst;126	u32 chroma_h_int_ofst;127	u32 chroma_h_sub_ofst;128	u32 rsz_switch;129	u32 merge_cfg;130} __packed;131 132struct mdp_rsz_data_8195 {133	u32 coeff_step_x;134	u32 coeff_step_y;135	u32 control1;136	u32 control2;137	u32 etc_control;138	u32 prz_enable;139	u32 ibse_softclip;140	u32 tap_adapt;141	u32 ibse_gaincontrol1;142	u32 ibse_gaincontrol2;143	u32 ibse_ylevel_1;144	u32 ibse_ylevel_2;145	u32 ibse_ylevel_3;146	u32 ibse_ylevel_4;147	u32 ibse_ylevel_5;148	struct mdp_rsz_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];149} __packed;150 151struct mdp_tdshp_subfrm_8195 {152	u32 src;153	u32 clip;154	u32 clip_ofst;155	u32 hist_cfg_0;156	u32 hist_cfg_1;157} __packed;158 159struct mdp_tdshp_data_8195 {160	u32 cfg;161	struct mdp_tdshp_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];162} __packed;163 164struct mdp_color_subfrm_8195 {165	u32 in_hsize;166	u32 in_vsize;167} __packed;168 169struct mdp_color_data_8195 {170	u32 start;171	struct mdp_color_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];172} __packed;173 174struct mdp_ovl_subfrm_8195 {175	u32 L0_src_size;176	u32 roi_size;177} __packed;178 179struct mdp_ovl_data_8195 {180	u32 L0_con;181	u32 src_con;182	struct mdp_ovl_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];183} __packed;184 185struct mdp_pad_subfrm_8195 {186	u32 pic_size;187} __packed;188 189struct mdp_pad_data_8195 {190	struct mdp_pad_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];191} __packed;192 193struct mdp_tcc_subfrm_8195 {194	u32 pic_size;195} __packed;196 197struct mdp_tcc_data_8195 {198	struct mdp_tcc_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];199} __packed;200 201struct mdp_wrot_subfrm_8195 {202	u32 offset[IMG_MAX_PLANES];203	u32 src;204	u32 clip;205	u32 clip_ofst;206	u32 main_buf;207} __packed;208 209struct mdp_wrot_data_8195 {210	u32 iova[IMG_MAX_PLANES];211	u32 control;212	u32 stride[IMG_MAX_PLANES];213	u32 mat_ctrl;214	u32 fifo_test;215	u32 filter;216	u32 pre_ultra;217	u32 framesize;218	u32 afbc_yuvtrans;219	u32 scan_10bit;220	u32 pending_zero;221	u32 bit_number;222	u32 pvric;223	u32 vpp02vpp1;224	struct mdp_wrot_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];225} __packed;226 227struct mdp_wdma_subfrm_8195 {228	u32 offset[IMG_MAX_PLANES];229	u32 src;230	u32 clip;231	u32 clip_ofst;232} __packed;233 234struct mdp_wdma_data_8195 {235	u32 wdma_cfg;236	u32 iova[IMG_MAX_PLANES];237	u32 w_in_byte;238	u32 uv_stride;239	struct mdp_wdma_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];240} __packed;241 242struct isp_data_8195 {243	u64 dl_flags; /* 1 << (enum mdp_comp_type) */244	u32 smxi_iova[4];245	u32 cq_idx;246	u32 cq_iova;247	u32 tpipe_iova[IMG_MAX_SUBFRAMES_8195];248} __packed;249 250struct img_compparam_8195 {251	u32 type; /* enum mdp_comp_id */252	u32 id; /* engine alias_id */253	u32 input;254	u32 outputs[IMG_MAX_HW_OUTPUTS];255	u32 num_outputs;256	struct img_comp_frame_8195 frame;257	struct img_comp_subfrm_8195 subfrms[IMG_MAX_SUBFRAMES_8195];258	u32 num_subfrms;259	union {260		struct mdp_rdma_data_8195 rdma;261		struct mdp_fg_data_8195 fg;262		struct mdp_hdr_data_8195 hdr;263		struct mdp_aal_data_8195 aal;264		struct mdp_rsz_data_8195 rsz;265		struct mdp_tdshp_data_8195 tdshp;266		struct mdp_color_data_8195 color;267		struct mdp_ovl_data_8195 ovl;268		struct mdp_pad_data_8195 pad;269		struct mdp_tcc_data_8195 tcc;270		struct mdp_wrot_data_8195 wrot;271		struct mdp_wdma_data_8195 wdma;272		struct isp_data_8195 isp;273	};274} __packed;275 276struct img_config_8195 {277	struct img_compparam_8195 components[IMG_MAX_COMPONENTS];278	u32 num_components;279	struct img_mmsys_ctrl ctrls[IMG_MAX_SUBFRAMES_8195];280	u32 num_subfrms;281} __packed;282 283#endif  /* __MDP_SM_MT8195_H__ */284