diff options
author | Sergey Matyukevich <sergey.matyukevich.os@quantenna.com> | 2019-01-14 09:39:36 +0000 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2019-02-01 14:11:52 +0200 |
commit | d1365e794eb31f74d7326f0c60a2aa13b2d70ac8 (patch) | |
tree | bccb48f8ea961dd2253000989abfb494d46f2645 /drivers/net/wireless/quantenna | |
parent | 126824f5ce671b4f2d1d01aa1fa7ff4de7174869 (diff) | |
download | linux-stable-d1365e794eb31f74d7326f0c60a2aa13b2d70ac8.tar.gz linux-stable-d1365e794eb31f74d7326f0c60a2aa13b2d70ac8.tar.bz2 linux-stable-d1365e794eb31f74d7326f0c60a2aa13b2d70ac8.zip |
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>
Diffstat (limited to 'drivers/net/wireless/quantenna')
-rw-r--r-- | drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c b/drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c index 598edb814421..cbcda57105f3 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c +++ b/drivers/net/wireless/quantenna/qtnfmac/pcie/topaz_pcie.c @@ -559,6 +559,9 @@ static irqreturn_t qtnf_pcie_topaz_interrupt(int irq, void *data) if (!priv->msi_enabled && !qtnf_topaz_intx_asserted(ts)) return IRQ_NONE; + if (!priv->msi_enabled) + qtnf_deassert_intx(ts); + priv->pcie_irq_count++; 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); - if (!priv->msi_enabled) - qtnf_deassert_intx(ts); - return IRQ_HANDLED; } |