msm: camera: common: Multiple fixes for crm redesign

This change help to resolve below issues :-
1. Update frame duration calculation
   Add frame duration calculation with the use of fps. In some cases
   where horizonal blanking is more, frame duration calculation based
   on sof epoch calculation is not accurate.
2. Corner case in bubble handling
   Add support to handle master link bubble even if ISP linked with
   slave link receive few buf done irq for bubble request before master
   sends slave link to bubble state.

CRs-Fixed: 2783209
Change-Id: Ibf35f31f5263be7b6a6be6cd095447a2910a6878
Signed-off-by: Ayush Kumar <ayushkr@codeaurora.org>
This commit is contained in:
Ayush Kumar
2021-04-08 12:15:37 +05:30
parent 0259331da4
commit 566ac7abf8
11 changed files with 566 additions and 95 deletions

View File

@@ -122,6 +122,7 @@
#define CAM_ISP_GENERIC_BLOB_TYPE_TPG_CORE_CONFIG 14
#define CAM_ISP_GENERIC_BLOB_TYPE_DYNAMIC_MODE_SWITCH 15
#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_SFE_CLOCK_CONFIG 21
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_CORE_CONFIG 22
#define CAM_ISP_GENERIC_BLOB_TYPE_SFE_OUT_CONFIG 23
@@ -822,6 +823,18 @@ struct cam_isp_acquire_hw_info {
__u64 data;
};
/**
* struct cam_fps_config - FPS info per request
*
* @fps : Fps value
* @reserved: : Reserved field for alignment
*
*/
struct cam_fps_config {
__u32 fps;
__u32 reserved_params[3];
} __attribute__((packed));
/**
* struct cam_isp_vfe_wm_config - VFE write master config per port
*