disp: msm: Subtract DSI interrupt count after interrupt was destroyed

DSI interrupt may be destroyed before it is disabled, it will cause to
the interrupt count can't be cleared, so subtrace DSI interrupt count
in disable function even it was destroyed.

Change-Id: I430b0281957db588c7405d5775d0c10f2f498b36
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
This commit is contained in:
Lei Chen
2020-03-13 23:21:21 +08:00
committed by Satya Rama Aditya Pinapala
parent a5cae7c0f3
commit 92ecce2873

View File

@@ -2675,8 +2675,7 @@ void dsi_ctrl_disable_status_interrupt(struct dsi_ctrl *dsi_ctrl,
{
unsigned long flags;
if (!dsi_ctrl || dsi_ctrl->irq_info.irq_num == -1 ||
intr_idx >= DSI_STATUS_INTERRUPT_COUNT)
if (!dsi_ctrl || intr_idx >= DSI_STATUS_INTERRUPT_COUNT)
return;
SDE_EVT32(dsi_ctrl->cell_index, SDE_EVTLOG_FUNC_ENTRY);
@@ -2689,7 +2688,8 @@ void dsi_ctrl_disable_status_interrupt(struct dsi_ctrl *dsi_ctrl,
dsi_ctrl->irq_info.irq_stat_mask);
/* don't need irq if no lines are enabled */
if (dsi_ctrl->irq_info.irq_stat_mask == 0)
if (dsi_ctrl->irq_info.irq_stat_mask == 0 &&
dsi_ctrl->irq_info.irq_num != -1)
disable_irq_nosync(dsi_ctrl->irq_info.irq_num);
}