msm: camera: isp: Add support for RDI LCR

For spectra 780, one of the RDI inputs can serve
as an input to LCR in PDAF block inside IFE using
mux.
It  needs programming of top wrapper registers in CSID
and mux related registers in IFE.
At bus side, mipi packing needs to be used as the
output from CSID will be Plain16.
This commit adds support for the above requirements.

CRs-Fixed: 2948116
Change-Id: I425e4aa5ed58dd4214a1f11865359b3fc06d1b0d
Signed-off-by: Gaurav Jindal<gjindal@codeaurora.org>
This commit is contained in:
Gaurav Jindal
2021-07-30 12:01:17 +05:30
parent 74ae961cc1
commit f2cad8ef24
21 changed files with 696 additions and 57 deletions

View File

@@ -124,6 +124,7 @@
#define CAM_ISP_GENERIC_BLOB_TYPE_BW_LIMITER_CFG 16
#define CAM_ISP_GENERIC_BLOB_TYPE_FPS_CONFIG 17
#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_SFE_CLOCK_CONFIG 21
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_CORE_CONFIG 22
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_OUT_CONFIG 23
@@ -1002,6 +1003,32 @@ struct cam_isp_init_config {
__u32 additional_params[19];
};
/**
* struct cam_isp_lcr_rdi_config - RDI res id to be muxed to LCR
*
* Configure RDI Res id for LCR
*
* @res_id : Out port Res id, it is same as the out port
* configured during acquire. It would vary
* as per SFE or IFE. Based on this res id,
* Mux register in IFE will be programmed.
* Examples:
* IFE:
* CAM_ISP_IFE_OUT_RES_RDI_0
* SFE:
* CAM_ISP_SFE_OUT_RES_RDI_0
* This blob is expected as a part of init packet for
* all LCR cases. For SHDR-LCR cases, this can be used
* per request. For non-shdr cases, this blob is not
* expected as the input to LCR will remain same throughout
* the session
* @reserved : Reserved field
*/
struct cam_isp_lcr_rdi_config {
__u32 res_id;
__u32 reserved[5];
};
#define CAM_ISP_ACQUIRE_COMMON_VER0 0x1000
#define CAM_ISP_ACQUIRE_COMMON_SIZE_VER0 0x0