aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorGrazvydas Ignotas <notasas@gmail.com>2010-08-17 15:46:53 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-08-24 16:32:03 -0400
commitd41776fad4c6601c1711d4e454291efd6687addb (patch)
tree213e1c1576cdcfcda25bd352e6cabec200828f38 /drivers/net
parent8d5ad08525f1a8e0484d125ba155dbd3c3282ab8 (diff)
wl1251: fix event handling mechanism
In case both A and B events occured simultaneously, current code would only process A and clear both interrupts. Make it process both events instead. Based on wl1271 patches by Juuso Oikarinen: 1fd2794f36913992798184c464fe8f85753b13e0 13f2dc52c69bcca074cd12d4806953b2af45c386 Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> Acked-by: Kalle Valo <kvalo@adurom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_main.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1251_main.c b/drivers/net/wireless/wl12xx/wl1251_main.c
index 6d31c855fcfe..51474b697c1a 100644
--- a/drivers/net/wireless/wl12xx/wl1251_main.c
+++ b/drivers/net/wireless/wl12xx/wl1251_main.c
@@ -293,14 +293,14 @@ static void wl1251_irq_work(struct work_struct *work)
293 wl1251_tx_complete(wl); 293 wl1251_tx_complete(wl);
294 } 294 }
295 295
296 if (intr & (WL1251_ACX_INTR_EVENT_A | 296 if (intr & WL1251_ACX_INTR_EVENT_A) {
297 WL1251_ACX_INTR_EVENT_B)) { 297 wl1251_debug(DEBUG_IRQ, "WL1251_ACX_INTR_EVENT_A");
298 wl1251_debug(DEBUG_IRQ, "WL1251_ACX_INTR_EVENT (0x%x)", 298 wl1251_event_handle(wl, 0);
299 intr); 299 }
300 if (intr & WL1251_ACX_INTR_EVENT_A) 300
301 wl1251_event_handle(wl, 0); 301 if (intr & WL1251_ACX_INTR_EVENT_B) {
302 else 302 wl1251_debug(DEBUG_IRQ, "WL1251_ACX_INTR_EVENT_B");
303 wl1251_event_handle(wl, 1); 303 wl1251_event_handle(wl, 1);
304 } 304 }
305 305
306 if (intr & WL1251_ACX_INTR_INIT_COMPLETE) 306 if (intr & WL1251_ACX_INTR_INIT_COMPLETE)