Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fbd933d2 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: Ignore error during disable camif"

parents 5ebc0c8c 7c120df5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -446,6 +446,7 @@ struct vfe_device {
	uint8_t vt_enable;
	void __iomem *p_avtimer_msw;
	void __iomem *p_avtimer_lsw;
	uint8_t ignore_error;
};

#endif
+2 −0
Original line number Diff line number Diff line
@@ -631,11 +631,13 @@ static void msm_vfe32_update_camif_state(
		msm_camera_io_w_mb(0x0, vfe_dev->vfe_base + 0x1E0);
		vfe_dev->axi_data.src_info[VFE_PIX_0].active = 0;
	} else if (update_state == DISABLE_CAMIF_IMMEDIATELY) {
		vfe_dev->ignore_error = 1;
		msm_camera_io_w_mb(0x6, vfe_dev->vfe_base + 0x1E0);
		vfe_dev->hw_info->vfe_ops.axi_ops.halt(vfe_dev);
		vfe_dev->hw_info->vfe_ops.core_ops.reset_hw(vfe_dev);
		vfe_dev->hw_info->vfe_ops.core_ops.init_hw_reg(vfe_dev);
		vfe_dev->axi_data.src_info[VFE_PIX_0].active = 0;
		vfe_dev->ignore_error = 0;
	}
}

+2 −0
Original line number Diff line number Diff line
@@ -885,11 +885,13 @@ static void msm_vfe40_update_camif_state(struct vfe_device *vfe_dev,
		msm_camera_io_w_mb(0x0, vfe_dev->vfe_base + 0x2F4);
		vfe_dev->axi_data.src_info[VFE_PIX_0].active = 0;
	} else if (update_state == DISABLE_CAMIF_IMMEDIATELY) {
		vfe_dev->ignore_error = 1;
		msm_camera_io_w_mb(0x6, vfe_dev->vfe_base + 0x2F4);
		vfe_dev->hw_info->vfe_ops.axi_ops.halt(vfe_dev);
		vfe_dev->hw_info->vfe_ops.core_ops.reset_hw(vfe_dev);
		vfe_dev->hw_info->vfe_ops.core_ops.init_hw_reg(vfe_dev);
		vfe_dev->axi_data.src_info[VFE_PIX_0].active = 0;
		vfe_dev->ignore_error = 0;
	}
}

+2 −1
Original line number Diff line number Diff line
@@ -1113,7 +1113,8 @@ irqreturn_t msm_isp_process_irq(int irq_num, void *data)
	error_mask1 &= irq_status1;
	irq_status0 &= ~error_mask0;
	irq_status1 &= ~error_mask1;
	if ((error_mask0 != 0) || (error_mask1 != 0))
	if (!vfe_dev->ignore_error &&
		((error_mask0 != 0) || (error_mask1 != 0)))
		msm_isp_update_error_info(vfe_dev, error_mask0, error_mask1);

	if ((irq_status0 == 0) && (irq_status1 == 0) &&