aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/main.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-10-23 11:45:38 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-10-25 14:45:56 -0400
commitfac6b6a065da42f826088c58bddad82e1b1ccb40 (patch)
tree75ba2bfb626d24615adb77ff9ffee931006c2238 /drivers/net/wireless/ath/ath9k/main.c
parentdafeac387d7f10d12d4fa9cc626af43c805540f7 (diff)
ath9k: resume aggregation immediately after a hardware reset
Since aggregation is usually triggered by tx completion, a hardware reset (because of beacon stuck, tx hang or baseband hang) can significantly delay the transmission of the next AMPDU (until the next tx completion event). Fix this by rescheduling aggregation after such a reset. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Cc: stable@kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 9679b319197..c6ec800d7a6 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -580,7 +580,7 @@ void ath_hw_check(struct work_struct *work)
580 580
581 msleep(1); 581 msleep(1);
582 } 582 }
583 ath_reset(sc, false); 583 ath_reset(sc, true);
584 584
585out: 585out:
586 ath9k_ps_restore(sc); 586 ath9k_ps_restore(sc);
@@ -598,7 +598,7 @@ void ath9k_tasklet(unsigned long data)
598 ath9k_ps_wakeup(sc); 598 ath9k_ps_wakeup(sc);
599 599
600 if (status & ATH9K_INT_FATAL) { 600 if (status & ATH9K_INT_FATAL) {
601 ath_reset(sc, false); 601 ath_reset(sc, true);
602 ath9k_ps_restore(sc); 602 ath9k_ps_restore(sc);
603 return; 603 return;
604 } 604 }