qcacmn: use disable_irq for EXT GRP IRQs

Currently, as part of device suspend, EXT GRP IRQs are disabled.
disable_irq_nosync() which is currently being used to disable
interrupts will not wait for pending IRQs to completion. With this
API, there is a chance where IRQ handler can be executed after the
device suspend. Use disable_irq() instead so that pending IRQs will
be completed before returing from disable_irq().

CRs-Fixed: 2904518
Change-Id: Ib9acabe89b0337add82918be24b4782a6b125d05
This commit is contained in:
Manikanta Pubbisetty 2021-03-21 23:56:38 +05:30 • committed by Gerrit - the friendly Code Review server
commit e40743bbf2

View file

@ -624,7 +624,7 @@ int hif_apps_grp_irqs_enable(struct hif_opaque_softc *hif_ctx)
{
struct hif_exec_context *hif_exec;
struct hif_softc *scn;
int i;
int i, j;
QDF_BUG(hif_ctx);
scn = HIF_GET_SOFTC(hif_ctx);
@ -636,7 +636,9 @@ int hif_apps_grp_irqs_enable(struct hif_opaque_softc *hif_ctx)
if (!hif_exec)
continue;
hif_exec->irq_enable(hif_exec);
for (j = 0; j < hif_exec->numirq; j++)
pfrm_enable_irq(scn->qdf_dev->dev,
hif_exec->os_irq[j]);
}
return 0;
@ -646,7 +648,7 @@ int hif_apps_grp_irqs_disable(struct hif_opaque_softc *hif_ctx)
{
struct hif_exec_context *hif_exec;
struct hif_softc *scn;
int i;
int i, j;
QDF_BUG(hif_ctx);
scn = HIF_GET_SOFTC(hif_ctx);
@ -658,7 +660,9 @@ int hif_apps_grp_irqs_disable(struct hif_opaque_softc *hif_ctx)
if (!hif_exec)
continue;
hif_exec->irq_disable(hif_exec);
for (j = 0; j < hif_exec->numirq; j++)
pfrm_disable_irq(scn->qdf_dev->dev,
hif_exec->os_irq[j]);
}
return 0;