msm: camera: uapi: Add support for FCG configuration
This change adds structs in uapi to carry update values for SFE/IFE/MC_TFE FCG configurations. CRs-Fixed: 3487116 Change-Id: Ia3202ccf9649375725b8ee1b8f721347d1399a88 Signed-off-by: Haochen Yang <quic_haocyang@quicinc.com> (cherry picked from commit 989c22e0b775faaaa72479cab3bbac629203381b)
This commit is contained in:

committed by
Sridhar Gujje

parent
38a96f694c
commit
69f7756ed0
@@ -127,6 +127,7 @@
|
|||||||
#define CAM_ISP_GENERIC_BLOB_TYPE_FPS_CONFIG 17
|
#define CAM_ISP_GENERIC_BLOB_TYPE_FPS_CONFIG 17
|
||||||
#define CAM_ISP_GENERIC_BLOB_TYPE_INIT_CONFIG 18
|
#define CAM_ISP_GENERIC_BLOB_TYPE_INIT_CONFIG 18
|
||||||
#define CAM_ISP_GENERIC_BLOB_TYPE_RDI_LCR_CONFIG 19
|
#define CAM_ISP_GENERIC_BLOB_TYPE_RDI_LCR_CONFIG 19
|
||||||
|
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_FCG_CFG 20
|
||||||
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_CLOCK_CONFIG 21
|
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_CLOCK_CONFIG 21
|
||||||
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_CORE_CONFIG 22
|
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_CORE_CONFIG 22
|
||||||
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_OUT_CONFIG 23
|
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_OUT_CONFIG 23
|
||||||
@@ -139,6 +140,7 @@
|
|||||||
#define CAM_ISP_GENERIC_BLOB_TYPE_NFI_MODE_SWITCH 30
|
#define CAM_ISP_GENERIC_BLOB_TYPE_NFI_MODE_SWITCH 30
|
||||||
#define CAM_ISP_GENERIC_BLOB_TYPE_IRQ_COMP_CFG 31
|
#define CAM_ISP_GENERIC_BLOB_TYPE_IRQ_COMP_CFG 31
|
||||||
#define CAM_ISP_GENERIC_BLOB_TYPE_VFE_OUT_CONFIG_V2 32
|
#define CAM_ISP_GENERIC_BLOB_TYPE_VFE_OUT_CONFIG_V2 32
|
||||||
|
#define CAM_ISP_GENERIC_BLOB_TYPE_IFE_FCG_CFG 33
|
||||||
|
|
||||||
#define CAM_ISP_VC_DT_CFG 4
|
#define CAM_ISP_VC_DT_CFG 4
|
||||||
|
|
||||||
@@ -204,6 +206,20 @@
|
|||||||
#define CAM_ISP_PARAM_CORE_CFG_HDR_MUX_SEL BIT(0)
|
#define CAM_ISP_PARAM_CORE_CFG_HDR_MUX_SEL BIT(0)
|
||||||
#define CAM_ISP_PARAM_CORE_CFG_PP_FORMAT BIT(16)
|
#define CAM_ISP_PARAM_CORE_CFG_PP_FORMAT BIT(16)
|
||||||
|
|
||||||
|
/* Indicate which module is configured for FCG */
|
||||||
|
#define CAM_ISP_FCG_ENABLE_PHASE BIT(0)
|
||||||
|
#define CAM_ISP_FCG_ENABLE_STATS BIT(1)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Indicate which channel is configured for FCG
|
||||||
|
* For SFE, channel 1/2 are used on demand
|
||||||
|
* For IFE, treat it as channel 0
|
||||||
|
* For TFE, use Multi Context Mask to indicate the path
|
||||||
|
*/
|
||||||
|
#define CAM_ISP_FCG_MASK_CH0 0x1
|
||||||
|
#define CAM_ISP_FCG_MASK_CH1 0x2
|
||||||
|
#define CAM_ISP_FCG_MASK_CH2 0x4
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decode format1 Support for multi VCDT use case.
|
* Decode format1 Support for multi VCDT use case.
|
||||||
* Format type is packed in 8 bits. BIT(0-7) is
|
* Format type is packed in 8 bits. BIT(0-7) is
|
||||||
@@ -974,6 +990,89 @@ struct cam_isp_sfe_init_scratch_buf_config {
|
|||||||
struct cam_isp_sfe_scratch_buf_info port_scratch_cfg[1];
|
struct cam_isp_sfe_scratch_buf_info port_scratch_cfg[1];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct cam_isp_predict_fcg_config - FCG config in a single prediction
|
||||||
|
*
|
||||||
|
* @version: Version Info
|
||||||
|
* @phase_index_g: Starting index of LUT for G channel in phase
|
||||||
|
* @phase_index_r: Starting index of LUT for R channel in phase
|
||||||
|
* @phase_index_b: Starting index of LUT for B channel in phase
|
||||||
|
* @stats_index_g: Starting index of LUT for G channel in stats
|
||||||
|
* @stats_index_r: Starting index of LUT for R channel in stats
|
||||||
|
* @stats_index_b: Starting index of LUT for B channel in stats
|
||||||
|
* @num_valid_params: Number of valid params being used
|
||||||
|
* @valid_param_mask: Indicate the exact params being used
|
||||||
|
* @params: Params for future change
|
||||||
|
*/
|
||||||
|
struct cam_isp_predict_fcg_config {
|
||||||
|
__u32 version;
|
||||||
|
__u32 phase_index_g;
|
||||||
|
__u32 phase_index_r;
|
||||||
|
__u32 phase_index_b;
|
||||||
|
__u32 stats_index_g;
|
||||||
|
__u32 stats_index_r;
|
||||||
|
__u32 stats_index_b;
|
||||||
|
__u32 num_valid_params;
|
||||||
|
__u32 valid_param_mask;
|
||||||
|
__u32 params[5];
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct cam_isp_ch_ctx_fcg_config - FCG config in a single channel for SFE/IFE
|
||||||
|
* or in a single context in TFE
|
||||||
|
*
|
||||||
|
* @version: Version Info
|
||||||
|
* @fcg_ch_ctx_id: Index of the channel to be configured that FCG
|
||||||
|
* blocks reside on. If one wants to config FCG
|
||||||
|
* block for IFE/SFE, CAM_ISP_FCG_MASK_CH0/1/2 is
|
||||||
|
* used. If one wants to config FCG block for TFE,
|
||||||
|
* multi context mask is used.
|
||||||
|
* @fcg_enable_mask: Indicate which module will be enabled for
|
||||||
|
* FCG. For example, if one wants to config
|
||||||
|
* SFE FCG STATS module, CAM_ISP_FCG_ENABLE_STATS
|
||||||
|
* will be set in mask
|
||||||
|
* @num_valid_params: Number of valid params being used
|
||||||
|
* @valid_param_mask: Indicate the exact params being used
|
||||||
|
* @params: Params for future change
|
||||||
|
* @predicted_fcg_configs: Pointer to fcg config for each prediction of
|
||||||
|
* the channel in serial order
|
||||||
|
*/
|
||||||
|
struct cam_isp_ch_ctx_fcg_config {
|
||||||
|
__u32 version;
|
||||||
|
__u32 fcg_ch_ctx_id;
|
||||||
|
__u32 fcg_enable_mask;
|
||||||
|
__u32 num_valid_params;
|
||||||
|
__u32 valid_param_mask;
|
||||||
|
__u32 params[5];
|
||||||
|
struct cam_isp_predict_fcg_config predicted_fcg_configs[1];
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct cam_isp_generic_fcg_config - FCG config for a frame
|
||||||
|
*
|
||||||
|
* @version: Version info
|
||||||
|
* @size: Size for the whole FCG configurations
|
||||||
|
* @num_ch_ctx: Number of channels for fcg config in SFE/IFE
|
||||||
|
* or number of contexts in TFE
|
||||||
|
* @num_predictions: Number of predictions for each channel
|
||||||
|
* in SFE/IFE or for each context in TFE
|
||||||
|
* @num_valid_params: Number of valid params being used
|
||||||
|
* @valid_param_mask: Indicate the exact params being used
|
||||||
|
* @params: Params for future change
|
||||||
|
* @ch_ctx_fcg_configs: Pointer to fcg config for each channel in
|
||||||
|
* SFE/IFE or for each context in TFE
|
||||||
|
*/
|
||||||
|
struct cam_isp_generic_fcg_config {
|
||||||
|
__u32 version;
|
||||||
|
__u32 size;
|
||||||
|
__u32 num_ch_ctx;
|
||||||
|
__u32 num_predictions;
|
||||||
|
__u32 num_valid_params;
|
||||||
|
__u32 valid_params_mask;
|
||||||
|
__u32 params[4];
|
||||||
|
struct cam_isp_ch_ctx_fcg_config ch_ctx_fcg_configs[1];
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct cam_isp_tpg_core_config - TPG core registers configuration
|
* struct cam_isp_tpg_core_config - TPG core registers configuration
|
||||||
*
|
*
|
||||||
|
Reference in New Issue
Block a user