aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vasanth@atheros.com>2009-09-01 08:16:32 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-09-01 12:48:21 -0400
commitebb8e1d78c2f8b1737627ec260d7e39c4bd47385 (patch)
treecc83352aa0c1db9288a19a5f4ba09f4e4ea1141f /drivers/net/wireless/ath
parent8bc11b491b6cad75e737f1d38bb4b261bd95b291 (diff)
ath9k: Move generic hw timer intr handler to bottom-half
There is no point handling this in hard irq, move it to tasklet. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 4fae699a53c2..efee193801d7 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -506,6 +506,10 @@ static void ath9k_tasklet(unsigned long data)
506 sc->sc_flags |= SC_OP_WAIT_FOR_BEACON | SC_OP_BEACON_SYNC; 506 sc->sc_flags |= SC_OP_WAIT_FOR_BEACON | SC_OP_BEACON_SYNC;
507 } 507 }
508 508
509 if (sc->btcoex_info.btcoex_scheme == ATH_BTCOEX_CFG_3WIRE)
510 if (status & ATH9K_INT_GENTIMER)
511 ath_gen_timer_isr(sc->sc_ah);
512
509 /* re-enable hardware interrupt */ 513 /* re-enable hardware interrupt */
510 ath9k_hw_set_interrupts(sc->sc_ah, sc->imask); 514 ath9k_hw_set_interrupts(sc->sc_ah, sc->imask);
511 ath9k_ps_restore(sc); 515 ath9k_ps_restore(sc);
@@ -521,7 +525,8 @@ irqreturn_t ath_isr(int irq, void *dev)
521 ATH9K_INT_TX | \ 525 ATH9K_INT_TX | \
522 ATH9K_INT_BMISS | \ 526 ATH9K_INT_BMISS | \
523 ATH9K_INT_CST | \ 527 ATH9K_INT_CST | \
524 ATH9K_INT_TSFOOR) 528 ATH9K_INT_TSFOOR | \
529 ATH9K_INT_GENTIMER)
525 530
526 struct ath_softc *sc = dev; 531 struct ath_softc *sc = dev;
527 struct ath_hw *ah = sc->sc_ah; 532 struct ath_hw *ah = sc->sc_ah;
@@ -602,10 +607,6 @@ irqreturn_t ath_isr(int irq, void *dev)
602 sc->sc_flags |= SC_OP_WAIT_FOR_BEACON; 607 sc->sc_flags |= SC_OP_WAIT_FOR_BEACON;
603 } 608 }
604 609
605 if (sc->btcoex_info.btcoex_scheme == ATH_BTCOEX_CFG_3WIRE)
606 if (status & ATH9K_INT_GENTIMER)
607 ath_gen_timer_isr(ah);
608
609chip_reset: 610chip_reset:
610 611
611 ath_debug_stat_interrupt(sc, status); 612 ath_debug_stat_interrupt(sc, status);