Loading drivers/media/platform/msm/camera_v2/sensor/csid/msm_csid.c +17 −0 Original line number Diff line number Diff line Loading @@ -229,7 +229,9 @@ static void msm_csid_set_sof_freeze_debug_reg( static int msm_csid_reset(struct csid_device *csid_dev) { int32_t rc = 0; uint32_t irq = 0, irq_bitshift; irq_bitshift = csid_dev->ctrl_reg->csid_reg.csid_rst_done_irq_bitshift; msm_camera_io_w(csid_dev->ctrl_reg->csid_reg.csid_rst_stb_all, csid_dev->base + csid_dev->ctrl_reg->csid_reg.csid_rst_cmd_addr); Loading @@ -238,8 +240,23 @@ static int msm_csid_reset(struct csid_device *csid_dev) if (rc < 0) { pr_err("wait_for_completion in msm_csid_reset fail rc = %d\n", rc); } else if (rc == 0) { irq = msm_camera_io_r(csid_dev->base + csid_dev->ctrl_reg->csid_reg.csid_irq_status_addr); pr_err_ratelimited("%s CSID%d_IRQ_STATUS_ADDR = 0x%x\n", __func__, csid_dev->pdev->id, irq); if (irq & (0x1 << irq_bitshift)) { rc = 1; CDBG("%s succeeded", __func__); } else { rc = 0; pr_err("%s reset csid_irq_status failed = 0x%x\n", __func__, irq); } if (rc == 0) rc = -ETIMEDOUT; } else { CDBG("%s succeeded", __func__); } return rc; } Loading Loading
drivers/media/platform/msm/camera_v2/sensor/csid/msm_csid.c +17 −0 Original line number Diff line number Diff line Loading @@ -229,7 +229,9 @@ static void msm_csid_set_sof_freeze_debug_reg( static int msm_csid_reset(struct csid_device *csid_dev) { int32_t rc = 0; uint32_t irq = 0, irq_bitshift; irq_bitshift = csid_dev->ctrl_reg->csid_reg.csid_rst_done_irq_bitshift; msm_camera_io_w(csid_dev->ctrl_reg->csid_reg.csid_rst_stb_all, csid_dev->base + csid_dev->ctrl_reg->csid_reg.csid_rst_cmd_addr); Loading @@ -238,8 +240,23 @@ static int msm_csid_reset(struct csid_device *csid_dev) if (rc < 0) { pr_err("wait_for_completion in msm_csid_reset fail rc = %d\n", rc); } else if (rc == 0) { irq = msm_camera_io_r(csid_dev->base + csid_dev->ctrl_reg->csid_reg.csid_irq_status_addr); pr_err_ratelimited("%s CSID%d_IRQ_STATUS_ADDR = 0x%x\n", __func__, csid_dev->pdev->id, irq); if (irq & (0x1 << irq_bitshift)) { rc = 1; CDBG("%s succeeded", __func__); } else { rc = 0; pr_err("%s reset csid_irq_status failed = 0x%x\n", __func__, irq); } if (rc == 0) rc = -ETIMEDOUT; } else { CDBG("%s succeeded", __func__); } return rc; } Loading