Re: [PATCH v1 06/10] media: platform: mediatek: add isp_7x utility
From: CK Hu (胡俊光)
Date: Mon Oct 14 2024 - 01:21:44 EST
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;
> +