浏览代码

msm: camera: isp: Fix per req reg dump for Single IFE usecase

In dual ife usecase we get two cdm callbacks from respective
internal cdm's. This change makes sure per req reg dump function
is called only once when two cdm callbacks are received.

CRs-Fixed: 2666317
Change-Id: I766dbe471cbee0fd2d26e7618ebc06a9f185a873
Signed-off-by: Vishalsingh Hajeri <[email protected]>
Vishalsingh Hajeri 5 年之前
父节点
当前提交
a085cf0e51
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c

+ 3 - 1
drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c

@@ -2606,6 +2606,7 @@ void cam_ife_cam_cdm_callback(uint32_t handle, void *userdata,
 	struct cam_ife_hw_mgr_ctx               *ctx = NULL;
 	struct cam_ife_hw_mgr_ctx               *ctx = NULL;
 	int                                      i;
 	int                                      i;
 	uint32_t                                 idx = 0;
 	uint32_t                                 idx = 0;
+	int                                      reg_dump_done;
 
 
 	if (!userdata) {
 	if (!userdata) {
 		CAM_ERR(CAM_ISP, "Invalid args");
 		CAM_ERR(CAM_ISP, "Invalid args");
@@ -2633,9 +2634,10 @@ void cam_ife_cam_cdm_callback(uint32_t handle, void *userdata,
 
 
 	if (status == CAM_CDM_CB_STATUS_BL_SUCCESS) {
 	if (status == CAM_CDM_CB_STATUS_BL_SUCCESS) {
 		complete_all(&ctx->config_done_complete[idx]);
 		complete_all(&ctx->config_done_complete[idx]);
+		reg_dump_done = atomic_read(&ctx->cdm_done);
 		atomic_set(&ctx->cdm_done, 1);
 		atomic_set(&ctx->cdm_done, 1);
 		if ((g_ife_hw_mgr.debug_cfg.per_req_reg_dump) &&
 		if ((g_ife_hw_mgr.debug_cfg.per_req_reg_dump) &&
-			(idx == ctx->master_hw_idx))
+			(!reg_dump_done))
 			cam_ife_mgr_handle_reg_dump(ctx,
 			cam_ife_mgr_handle_reg_dump(ctx,
 				hw_update_data->reg_dump_buf_desc,
 				hw_update_data->reg_dump_buf_desc,
 				hw_update_data->num_reg_dump_buf,
 				hw_update_data->num_reg_dump_buf,