Jelajahi Sumber

msm: camera: isp: Fix rdi only usecase

Initialize common_reg data for rdi.
Adds acquire handling for RDI usecase.

Change-Id: I06cc9bf86af834ceeb145e9b49586c97b6f1a461
Signed-off-by: Trishansh Bhardwaj <[email protected]>
Signed-off-by: Jigarkumar Zala <[email protected]>
Jigarkumar Zala 6 tahun lalu
induk
melakukan
4a8af1ed19

+ 8 - 0
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe_lite17x.h

@@ -56,6 +56,13 @@ static struct cam_vfe_rdi_ver2_reg vfe17x_rdi_reg = {
 	.reg_update_cmd           = 0x000004AC,
 };
 
+static struct cam_vfe_rdi_common_reg_data vfe17x_rdi_reg_data = {
+	.subscribe_irq_mask0      = 0x780001E0,
+	.subscribe_irq_mask1      = 0x0,
+	.error_irq_mask0          = 0x0,
+	.error_irq_mask1          = 0x3C,
+};
+
 static struct cam_vfe_rdi_reg_data  vfe17x_rdi_0_data = {
 	.reg_update_cmd_data      = 0x2,
 	.sof_irq_mask             = 0x8000000,
@@ -90,6 +97,7 @@ static struct cam_vfe_top_ver2_hw_info vfe17x_top_hw_info = {
 	.rdi_hw_info = {
 		.common_reg = &vfe17x_top_common_reg,
 		.rdi_reg    = &vfe17x_rdi_reg,
+		.common_reg_data = &vfe17x_rdi_reg_data,
 		.reg_data = {
 			&vfe17x_rdi_0_data,
 			&vfe17x_rdi_1_data,

+ 3 - 1
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_rdi.c

@@ -413,7 +413,9 @@ static int cam_vfe_rdi_handle_irq_bottom_half(void *handler_priv,
 				CAM_ISP_HW_EVENT_SOF, (void *)&evt_info);
 
 		ret = CAM_VFE_IRQ_STATUS_SUCCESS;
-	} else if (irq_status0 & rdi_priv->reg_data->reg_update_irq_mask) {
+	}
+
+	if (irq_status0 & rdi_priv->reg_data->reg_update_irq_mask) {
 		CAM_DBG(CAM_ISP, "Received REG UPDATE");
 
 		if (rdi_priv->event_cb)

+ 11 - 0
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_top_ver2.c

@@ -276,6 +276,17 @@ int cam_vfe_top_reserve(void *device_priv,
 					break;
 			}
 
+			if ((acquire_args->res_id >=
+				CAM_ISP_HW_VFE_IN_RDI0) &&
+				(acquire_args->res_id <=
+				CAM_ISP_HW_VFE_IN_RDI3)) {
+				rc = cam_vfe_rdi_ver2_acquire_resource(
+					&top_priv->top_common.mux_rsrc[i],
+					args);
+				if (rc)
+					break;
+			}
+
 			if (acquire_args->res_id == CAM_ISP_HW_VFE_IN_RD) {
 				rc = cam_vfe_fe_ver1_acquire_resource(
 					&top_priv->top_common.mux_rsrc[i],