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

Commit 25d716b2 authored by Chandan Kumar Jha's avatar Chandan Kumar Jha
Browse files

msm: camera: isp: Disable the PPI hw during PPI overflow case



Disable the PPI interrupt to stop IRQ storm during overflow errors.

Change-Id: I4fac7c521ef6774933d836ad326ed2f4091a6322
Signed-off-by: default avatarChandan Kumar Jha <cjha@codeaurora.org>
parent a11f39a8
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -331,7 +331,6 @@ int cam_csid_ppi_init_soc_resources(struct cam_hw_soc_info *soc_info,
irqreturn_t cam_csid_ppi_irq(int irq_num, void *data)
{
	uint32_t      irq_status = 0;
	uint32_t      i, ppi_cfg_val = 0;
	bool          fatal_err_detected = false;

	struct cam_csid_ppi_hw                *ppi_hw;
@@ -379,11 +378,13 @@ irqreturn_t cam_csid_ppi_irq(int irq_num, void *data)
	if (fatal_err_detected) {
		CAM_ERR(CAM_ISP, "PPI: %d irq_status:0x%x",
			ppi_hw->hw_intf->hw_idx, irq_status);
		/* disable lanes */
		for (i = 0; i < CAM_CSID_PPI_LANES_MAX; i++)
			ppi_cfg_val &= ~PPI_CFG_CPHY_DLX_EN(i);

		cam_io_w_mb(ppi_cfg_val, soc_info->reg_map[0].mem_base +
		/* disable the interrupt */
		cam_io_w_mb(0, soc_info->reg_map[0].mem_base +
			ppi_reg->ppi_irq_mask_addr);

		/* disable lanes */
		cam_io_w_mb(0, soc_info->reg_map[0].mem_base +
			ppi_reg->ppi_module_cfg_addr);
	}
ret: