wl1271: Implement looped IRQ handling
This patch implements looped IRQ handling. In essence, if a new interrupt is asserted by the FW while the host is processing the previous one, the host will directly proceed processing the new IRQ without leaving the handling function. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committed by
John W. Linville

parent
4aa0591705
commit
1e73eb62ce
@@ -324,7 +324,9 @@ static irqreturn_t wl1271_irq(int irq, void *cookie)
|
||||
wl->elp_compl = NULL;
|
||||
}
|
||||
|
||||
ieee80211_queue_work(wl->hw, &wl->irq_work);
|
||||
if (!test_and_set_bit(WL1271_FLAG_IRQ_RUNNING, &wl->flags))
|
||||
ieee80211_queue_work(wl->hw, &wl->irq_work);
|
||||
set_bit(WL1271_FLAG_IRQ_PENDING, &wl->flags);
|
||||
spin_unlock_irqrestore(&wl->wl_lock, flags);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
|
Reference in New Issue
Block a user