Bladeren bron

msm: camera: isp: Set RDI only context flag for CSID resource node

This commit fixes regression in RDI only usecase caused by 'commit
afc2f5cb ("msm: camera: isp: Change Start flow of CSID paths")'.

CRs-Fixed: 2846451
Change-Id: I9be699ed2045b83c2657ce5fd879e89fe64c909a
Signed-off-by: Anand Ravi <[email protected]>
Anand Ravi 4 jaren geleden
bovenliggende
commit
83738d1ac2
1 gewijzigde bestanden met toevoegingen van 9 en 5 verwijderingen
  1. 9 5
      drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c

+ 9 - 5
drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c

@@ -640,7 +640,8 @@ err:
 }
 
 static int cam_ife_mgr_csid_start_hw(
-	struct cam_ife_hw_mgr_ctx *ctx)
+	struct cam_ife_hw_mgr_ctx *ctx,
+	uint32_t primary_rdi_csid_res)
 {
 	struct cam_isp_hw_mgr_res      *hw_mgr_res;
 	struct cam_isp_resource_node   *isp_res;
@@ -651,19 +652,22 @@ static int cam_ife_mgr_csid_start_hw(
 	int j;
 
 	for (j = ctx->num_base - 1 ; j >= 0; j--) {
-
 		cnt = 0;
 
 		if (ctx->base[j].hw_type != CAM_ISP_HW_TYPE_CSID)
 			continue;
 
 		list_for_each_entry(hw_mgr_res, &ctx->res_list_ife_csid, list) {
-
 			isp_res = hw_mgr_res->hw_res[ctx->base[j].split_id];
 
 			if (!isp_res || ctx->base[j].idx != isp_res->hw_intf->hw_idx)
 				continue;
 
+			if (primary_rdi_csid_res == hw_mgr_res->res_id) {
+				hw_mgr_res->hw_res[0]->rdi_only_ctx =
+				ctx->flags.is_rdi_only_context;
+			}
+
 			CAM_DBG(CAM_ISP, "csid[%u] res:%s res_id %d cnt %u",
 				isp_res->hw_intf->hw_idx,
 				isp_res->res_name, isp_res->res_id, cnt);
@@ -6155,7 +6159,7 @@ static int cam_ife_mgr_restart_hw(void *start_hw_args)
 
 	CAM_DBG(CAM_ISP, "START CSID HW ... in ctx id:%d", ctx->ctx_index);
 	/* Start the IFE CSID HW devices */
-	cam_ife_mgr_csid_start_hw(ctx);
+	cam_ife_mgr_csid_start_hw(ctx, CAM_IFE_PIX_PATH_RES_MAX);
 
 	/* Start IFE root node: do nothing */
 	CAM_DBG(CAM_ISP, "Exit...(success)");
@@ -6488,7 +6492,7 @@ start_only:
 	CAM_DBG(CAM_ISP, "START CSID HW ... in ctx id:%d",
 		ctx->ctx_index);
 	/* Start the IFE CSID HW devices */
-	cam_ife_mgr_csid_start_hw(ctx);
+	cam_ife_mgr_csid_start_hw(ctx, primary_rdi_csid_res);
 
 	if (ctx->flags.is_tpg) {
 		CAM_DBG(CAM_ISP, "START TPG HW ... in ctx id:%d",