msm: camera: isp: Unsubscribe for IRQ events only on CSID stop

All the IRQs are masked out at the start of the stop sequence.
When unsubscribing for respective IRQ controllers, only clean up
internal data structures without impacting the mask registers.

CRs-Fixed: 3535921
Change-Id: I7f05867f07fcfabe065269734c67c5e11e0a9fe2
Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>
This commit is contained in:
Karthik Anantha Ram 2023-06-20 17:40:26 -07:00 committed by Camera Software Integration
parent c98bea4b04
commit 57f2caba95

View File

@ -5559,7 +5559,7 @@ int cam_ife_csid_ver2_stop(void *hw_priv,
res->res_name);
}
if (csid_hw->buf_done_irq_handle) {
rc = cam_irq_controller_unsubscribe_irq(
rc = cam_irq_controller_unsubscribe_irq_evt(
csid_hw->top_irq_controller[CAM_IFE_CSID_TOP_IRQ_STATUS_REG0],
csid_hw->buf_done_irq_handle);
csid_hw->buf_done_irq_handle = 0;
@ -5570,21 +5570,21 @@ int cam_ife_csid_ver2_stop(void *hw_priv,
}
if (csid_hw->top_err_irq_handle[CAM_IFE_CSID_TOP_IRQ_STATUS_REG0]) {
rc = cam_irq_controller_unsubscribe_irq(
rc = cam_irq_controller_unsubscribe_irq_evt(
csid_hw->top_irq_controller[CAM_IFE_CSID_TOP_IRQ_STATUS_REG0],
csid_hw->top_err_irq_handle[CAM_IFE_CSID_TOP_IRQ_STATUS_REG0]);
csid_hw->top_err_irq_handle[CAM_IFE_CSID_TOP_IRQ_STATUS_REG0] = 0;
}
if (csid_hw->top_mc_irq_handle) {
rc = cam_irq_controller_unsubscribe_irq(
rc = cam_irq_controller_unsubscribe_irq_evt(
csid_hw->top_irq_controller[CAM_IFE_CSID_TOP_IRQ_STATUS_REG0],
csid_hw->top_mc_irq_handle);
csid_hw->top_mc_irq_handle = 0;
}
if (csid_hw->debug_info.top_mask) {
cam_irq_controller_unsubscribe_irq(
cam_irq_controller_unsubscribe_irq_evt(
csid_hw->top_irq_controller[CAM_IFE_CSID_TOP_IRQ_STATUS_REG0],
csid_hw->top_info_irq_handle[CAM_IFE_CSID_TOP_IRQ_STATUS_REG0]);
csid_hw->top_info_irq_handle[CAM_IFE_CSID_TOP_IRQ_STATUS_REG0] = 0;