msm: camera: uapi: Add interface for DRV config

Add interface to configure DRV settings and vote levels.

CRs-Fixed: 3065551
Change-Id: I07ff6f25bffcfb11671436d64f917fc49cb73cc2
Signed-off-by: Mukund Madhusudan Atre <quic_matre@quicinc.com>
This commit is contained in:
Mukund Madhusudan Atre
2021-10-28 15:52:29 -07:00
committed by Camera Software Integration
parent 38c78b4c8d
commit 9dcca711f8
2 changed files with 80 additions and 0 deletions

View File

@@ -133,6 +133,8 @@
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_FE_CONFIG 25
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_SCRATCH_BUF_CFG 26
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_EXP_ORDER_CFG 27
#define CAM_ISP_GENERIC_BLOB_TYPE_DRV_CONFIG 28
#define CAM_ISP_GENERIC_BLOB_TYPE_BW_CONFIG_V3 29
#define CAM_ISP_VC_DT_CFG 4
@@ -196,6 +198,30 @@
#define CAM_IFE_DECODE_FORMAT_MASK 0xFF
#define CAM_IFE_DECODE_FORMAT_SHIFT_VAL 8
/**
* struct cam_isp_drv_config - CSID config for DRV
* Enables DRV and provides worst case timeout value in INIT packet,
* provides path_idle_en and timeout updates (if any) in UPDATE packet
*
* @drv_en : Enables DRV block
* @timeout_val : Timeout value from SOF to trigger vote up,
* given in number of Global Counter cycles.
* @path_idle_en : Mask for paths to be considered for consolidated IDLE signal.
* When paths matching the mask go idle, BW is voted down.
* @num_valid_params : Number of valid params
* @valid_param_mask : Valid param mask
* @params : params
*/
struct cam_isp_drv_config {
__u32 drv_en;
__u32 timeout_val;
__u32 path_idle_en;
__u32 num_valid_params;
__u32 valid_param_mask;
__u32 params[5];
} __attribute__((packed));
/* Query devices */
/**
* struct cam_isp_dev_cap_info - A cap info for particular hw type
@@ -626,6 +652,25 @@ struct cam_isp_bw_config_v2 {
struct cam_axi_per_path_bw_vote axi_path[1];
} __attribute__((packed));
/**
* struct cam_isp_bw_config_v3 - Bandwidth configuration
*
* @usage_type: Usage type (Single/Dual)
* @num_paths: Number of axi data paths
* @num_valid_params: Number of valid params
* @valid_param_mask: Valid param mask
* @params: params
* @axi_path: Per path vote info v2
*/
struct cam_isp_bw_config_v3 {
__u32 usage_type;
__u32 num_paths;
__u32 num_valid_params;
__u32 valid_param_mask;
__u32 params[4];
struct cam_axi_per_path_bw_vote_v2 axi_path[1];
} __attribute__((packed));
/**
* struct cam_fe_config - Fetch Engine configuration
*