Hi, Shu-hsiang: On Wed, 2024-10-09 at 19:15 +0800, Shu-hsiang Yang wrote: > Introduces utility files for the MediaTek ISP7.x camsys driver. These > utilities provide essential platform definitions, debugging tools, and > management functions to support ISP operations and SCP communication. > Key functionalities include: > 1.Hardware pipeline and register definitions for managing image > processing modules. > 2.DMA debugging utilities and buffer management functions. > 3.Definitions of supported image formats for proper data handling. > 4.IPI and SCP communication structures for module state management and > configuring ISP. > 5.Metadata parameters for configuring image processing. > > Signed-off-by: Shu-hsiang Yang <Shu-hsiang.Yang@xxxxxxxxxxxx> > --- [snip] > +/* > + * V 4 L 2 M E T A B U F F E R L A Y O U T > + */ > + > +/* > + * struct mtk_cam_uapi_meta_raw_stats_cfg > + * > + * @ae_awb_enable: To indicate if AE and AWB should be enblaed or not. If > + * it is 1, it means that we enable the following parts of > + * hardware: > + * (1) AE/AWB > + * (2) aao > + * (3) aaho > + * @af_enable: To indicate if AF should be enabled or not. If it is 1, > + * it means that the AF and afo is enabled. > + * @dgn_enable: To indicate if dgn module should be enabled or not. > + * @flk_enable: If it is 1, it means flk and flko is enable. If ie is 0, > + * both flk and flko is disabled. > + * @tsf_enable: If it is 1, it means tsfs and tsfso is enable. If ie is 0, > + * both tsfs and tsfso is disabled. > + * @wb_enable: To indicate if wb module should be enabled or not. > + * @pde_enable: To indicate if pde module should be enabled or not. > + * @ae_param: AE Statistic window config > + * @awb_param: AWB statistic configuration control > + * @dgn_param: DGN settings > + * @flk_param: Flicker statistic configuration > + * @tsf_param: tsf statistic configuration > + * @wb_param: WB settings > + * @pde_param: pde settings > + */ > +struct mtk_cam_uapi_meta_raw_stats_cfg { struct mtk_cam_uapi_meta_raw_stats_cfg{} is useless, so drop it. Regards, CK > + s8 ae_awb_enable; > + s8 af_enable; > + s8 dgn_enable; > + s8 flk_enable; > + s8 tsf_enable; > + s8 wb_enable; > + s8 pde_enable; > + u8 rsv; > + > + struct mtk_cam_uapi_ae_param ae_param; > + struct mtk_cam_uapi_awb_param awb_param; > + struct mtk_cam_uapi_af_param af_param; > + struct mtk_cam_uapi_dgn_param dgn_param; > + struct mtk_cam_uapi_flk_param flk_param; > + struct mtk_cam_uapi_tsf_param tsf_param; > + struct mtk_cam_uapi_wb_param wb_param; > + struct mtk_cam_uapi_pde_param pde_param; > + > + struct mtk_cam_uapi_prot { > + /* The following top control are generated by script */ > + u8 drzh2n_r1_tuning_enable; > + u8 drzh2n_r2_tuning_enable; > + u8 drzh2n_r3_tuning_enable; > + u8 drzh2n_r4_tuning_enable; > + u8 drzh2n_r5_tuning_enable; > + u8 drzh2n_r6_tuning_enable; > + u8 drzh2n_r7_tuning_enable; > + u8 drzh2n_r8_tuning_enable; > + u8 drzs4n_r1_tuning_enable; > + u8 drzs4n_r2_tuning_enable; > + u8 drzs4n_r3_tuning_enable; > + u8 dm_tuning_enable; > + u8 drzs8t_r1_tuning_enable; > + u8 drzs8t_r2_tuning_enable; > + u8 ggm_r1_tuning_enable; > + u8 ggm_r2_tuning_enable; > + u8 ggm_r3_tuning_enable; > + u8 bpc_r1_enable; > + u8 bpc_r2_enable; > + u8 ccm_r1_enable; > + u8 ccm_r2_enable; > + u8 ccm_r3_enable; > + u8 fus_enable; > + u8 g2c_r1_enable; > + u8 g2c_r2_enable; > + u8 g2c_r3_enable; > + u8 hlr_enable; > + u8 lsc_enable; > + u8 ltm_enable; > + u8 ltms_enable; > + u8 obc_r1_enable; > + u8 obc_r2_enable; > + u8 tcy_r1_enable; > + u8 tcy_r2_enable; > + u8 tcy_r3_enable; > + u8 tncs_r1_enable; > + > + struct mtk_cam_uapi_ccm_param_prot ccm_r1_param; > + struct mtk_cam_uapi_ccm_param_prot ccm_r2_param; > + struct mtk_cam_uapi_ccm_param_prot ccm_r3_param; > + struct mtk_cam_uapi_drzh2n_param_prot drzh2n_r1_param; > + struct mtk_cam_uapi_drzh2n_param_prot drzh2n_r2_param; > + struct mtk_cam_uapi_drzh2n_param_prot drzh2n_r3_param; > + struct mtk_cam_uapi_drzh2n_param_prot drzh2n_r4_param; > + struct mtk_cam_uapi_drzh2n_param_prot drzh2n_r5_param; > + struct mtk_cam_uapi_drzh2n_param_prot drzh2n_r6_param; > + struct mtk_cam_uapi_drzh2n_param_prot drzh2n_r7_param; > + struct mtk_cam_uapi_drzh2n_param_prot drzh2n_r8_param; > + struct mtk_cam_uapi_drzs4n_param_prot drzs4n_r1_param; > + struct mtk_cam_uapi_drzs4n_param_prot drzs4n_r2_param; > + struct mtk_cam_uapi_drzs4n_param_prot drzs4n_r3_param; > + struct mtk_cam_uapi_tncs_param_prot tncs_param; > + /* script generation done */ > + struct mtk_cam_uapi_drzs8t_param_prot drzs8t_r1_param; > + struct mtk_cam_uapi_drzs8t_param_prot drzs8t_r2_param; > + struct mtk_cam_uapi_awb_param_prot awb_param; > + struct mtk_cam_uapi_bpc_param_prot bpc_param; > + struct mtk_cam_uapi_lsc_param_prot lsc_param; > + struct mtk_cam_uapi_slk_param_prot slk_param; > + struct mtk_cam_uapi_wb_param_prot wb_param; > + struct mtk_cam_uapi_ltms_param_prot ltms_param; > + struct mtk_cam_uapi_yuvo_param_prot yuvo_r2_param; > + struct mtk_cam_uapi_yuvo_param_prot yuvo_r4_param; > + /* The following module stuctures are generated by script */ > + struct mtk_cam_uapi_regmap_raw_bpc bpc_r1; > + struct mtk_cam_uapi_regmap_raw_bpc bpc_r2; > + struct mtk_cam_uapi_regmap_raw_ccm ccm_r1; > + struct mtk_cam_uapi_regmap_raw_ccm ccm_r2; > + struct mtk_cam_uapi_regmap_raw_ccm ccm_r3; > + struct mtk_cam_uapi_regmap_raw_dm dm_r1; > + u8 rsv1[116]; > + struct mtk_cam_uapi_regmap_raw_g2c g2c_r1; > + struct mtk_cam_uapi_regmap_raw_g2c g2c_r2; > + struct mtk_cam_uapi_regmap_raw_g2c g2c_r3; > + struct mtk_cam_uapi_regmap_raw_ggm ggm_r1; > + struct mtk_cam_uapi_regmap_raw_ggm ggm_r2; > + struct mtk_cam_uapi_regmap_raw_ggm ggm_r3; > + u8 rsv2[68]; > + struct mtk_cam_uapi_regmap_raw_lsc lsc_r1; > + struct mtk_cam_uapi_regmap_raw_ltm ltm_r1; > + struct mtk_cam_uapi_regmap_raw_ltms ltms_r1; > + struct mtk_cam_uapi_regmap_raw_obc obc_r1; > + struct mtk_cam_uapi_regmap_raw_obc obc_r2; > + u8 rsv3[1420]; > + struct mtk_cam_uapi_regmap_raw_tsfs tsfs_r1; > + u8 rsv4[50080]; > + /* script generation done */ > + } __packed prot; > +} __packed; > +