Browse Source

Merge "msm: camera: ife: Adjust epoch configuration" into camera-kernel.lnx.4.0

Camera Software Integration 4 years ago
parent
commit
18ef37aa50

+ 4 - 4
drivers/cam_isp/isp_hw_mgr/isp_hw/tfe_hw/cam_tfe_core.c

@@ -1972,10 +1972,10 @@ static int cam_tfe_camif_resource_start(
 
 	/* Epoch config */
 	epoch0_irq_mask = (((rsrc_data->last_line + rsrc_data->vbi_value) -
-			rsrc_data->first_line) / 2) +
-			rsrc_data->first_line;
-	if (epoch0_irq_mask > rsrc_data->last_line)
-		epoch0_irq_mask = rsrc_data->last_line;
+			rsrc_data->first_line) / 2);
+	if (epoch0_irq_mask > (rsrc_data->last_line - rsrc_data->first_line))
+		epoch0_irq_mask = (rsrc_data->last_line -
+					rsrc_data->first_line);
 
 	epoch1_irq_mask = rsrc_data->reg_data->epoch_line_cfg &
 			0xFFFF;

+ 4 - 3
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_camif_ver2.c

@@ -426,10 +426,11 @@ static int cam_vfe_camif_resource_start(
 	default:
 		epoch0_irq_mask = (((rsrc_data->last_line +
 				rsrc_data->vbi_value) -
-				rsrc_data->first_line) / 2) +
+				rsrc_data->first_line) / 2);
+		if ((epoch0_irq_mask) >
+			(rsrc_data->last_line - rsrc_data->first_line))
+			epoch0_irq_mask = rsrc_data->last_line -
 				rsrc_data->first_line;
-		if (epoch0_irq_mask > rsrc_data->last_line)
-			epoch0_irq_mask = rsrc_data->last_line;
 
 		epoch1_irq_mask = rsrc_data->reg_data->epoch_line_cfg &
 				0xFFFF;

+ 4 - 2
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_camif_ver3.c

@@ -471,8 +471,10 @@ static int cam_vfe_camif_ver3_resource_start(
 		epoch0_line_cfg = ((rsrc_data->last_line +
 			rsrc_data->vbi_value) -
 			rsrc_data->first_line) / 4;
-		if (epoch0_line_cfg > rsrc_data->last_line)
-			epoch0_line_cfg = rsrc_data->last_line;
+		if ((epoch0_line_cfg * 2) >
+			(rsrc_data->last_line - rsrc_data->first_line))
+			epoch0_line_cfg = (rsrc_data->last_line -
+				rsrc_data->first_line)/2;
 	/* epoch line cfg will still be configured at midpoint of the
 	 * frame width. We use '/ 4' instead of '/ 2'
 	 * cause it is multipixel path

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

@@ -307,9 +307,9 @@ static int cam_vfe_fe_resource_start(
 
 	/* epoch config */
 	epoch0_irq_mask = (((rsrc_data->last_line + rsrc_data->vbi_value) -
-		rsrc_data->first_line) / 2) + rsrc_data->first_line;
-	if (epoch0_irq_mask > rsrc_data->last_line)
-		epoch0_irq_mask = rsrc_data->last_line;
+		rsrc_data->first_line) / 2);
+	if (epoch0_irq_mask > (rsrc_data->last_line - rsrc_data->first_line))
+		epoch0_irq_mask = rsrc_data->last_line - rsrc_data->first_line;
 
 	epoch1_irq_mask = rsrc_data->reg_data->epoch_line_cfg & 0xFFFF;
 	computed_epoch_line_cfg = (epoch0_irq_mask << 16) | epoch1_irq_mask;