[PATCH v1 06/10] media: platform: mediatek: add isp_7x utility

CK Hu (胡俊光) ck.hu at mediatek.com
Sun Oct 13 22:21:21 PDT 2024


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 at mediatek.com>
> ---

[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;
> +


More information about the Linux-mediatek mailing list