mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 15:10:38 +00:00
qtnfmac: fix INTx interrupt handling
In the current implementation INTx interrupt is deasserted after the control path processing. However this may lead to missed interrupts from the wireless card. For instance, this may happen as a result of control path activity, when another interrupt arrives before INTx is deasserted. Signed-off-by: Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
126824f5ce
commit
d1365e794e
@ -559,6 +559,9 @@ static irqreturn_t qtnf_pcie_topaz_interrupt(int irq, void *data)
|
|||||||
if (!priv->msi_enabled && !qtnf_topaz_intx_asserted(ts))
|
if (!priv->msi_enabled && !qtnf_topaz_intx_asserted(ts))
|
||||||
return IRQ_NONE;
|
return IRQ_NONE;
|
||||||
|
|
||||||
|
if (!priv->msi_enabled)
|
||||||
|
qtnf_deassert_intx(ts);
|
||||||
|
|
||||||
priv->pcie_irq_count++;
|
priv->pcie_irq_count++;
|
||||||
|
|
||||||
qtnf_shm_ipc_irq_handler(&priv->shm_ipc_ep_in);
|
qtnf_shm_ipc_irq_handler(&priv->shm_ipc_ep_in);
|
||||||
@ -571,9 +574,6 @@ static irqreturn_t qtnf_pcie_topaz_interrupt(int irq, void *data)
|
|||||||
|
|
||||||
tasklet_hi_schedule(&priv->reclaim_tq);
|
tasklet_hi_schedule(&priv->reclaim_tq);
|
||||||
|
|
||||||
if (!priv->msi_enabled)
|
|
||||||
qtnf_deassert_intx(ts);
|
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user