aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorRajkumar Manoharan <rmanoharan@atheros.com>2011-05-06 08:57:47 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-05-10 15:54:45 -0400
commit4105f8075051b62816830c95de1ec17ceb364d09 (patch)
tree109f75ad81b23c2df24af5469314b160f93c17a9 /drivers/net
parentdeb751880af6f2dce6cdc232a7b023f2b58cd815 (diff)
ath9k: process TSF out of range before RX
Processing TSF out of range before RX helps to update beacon timers so early in the succeeding rx process. Signed-off-by: Rajkumar Manoharan <rmanoharan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/ath9k/main.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index c171d111ecf7..11d9eca8fb6e 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -689,6 +689,17 @@ void ath9k_tasklet(unsigned long data)
689 !ath9k_hw_check_alive(ah)) 689 !ath9k_hw_check_alive(ah))
690 ieee80211_queue_work(sc->hw, &sc->hw_check_work); 690 ieee80211_queue_work(sc->hw, &sc->hw_check_work);
691 691
692 if ((status & ATH9K_INT_TSFOOR) && sc->ps_enabled) {
693 /*
694 * TSF sync does not look correct; remain awake to sync with
695 * the next Beacon.
696 */
697 ath_dbg(common, ATH_DBG_PS,
698 "TSFOOR - Sync with next Beacon\n");
699 sc->ps_flags |= PS_WAIT_FOR_BEACON | PS_BEACON_SYNC |
700 PS_TSFOOR_SYNC;
701 }
702
692 if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA) 703 if (ah->caps.hw_caps & ATH9K_HW_CAP_EDMA)
693 rxmask = (ATH9K_INT_RXHP | ATH9K_INT_RXLP | ATH9K_INT_RXEOL | 704 rxmask = (ATH9K_INT_RXHP | ATH9K_INT_RXLP | ATH9K_INT_RXEOL |
694 ATH9K_INT_RXORN); 705 ATH9K_INT_RXORN);
@@ -711,17 +722,6 @@ void ath9k_tasklet(unsigned long data)
711 ath_tx_tasklet(sc); 722 ath_tx_tasklet(sc);
712 } 723 }
713 724
714 if ((status & ATH9K_INT_TSFOOR) && sc->ps_enabled) {
715 /*
716 * TSF sync does not look correct; remain awake to sync with
717 * the next Beacon.
718 */
719 ath_dbg(common, ATH_DBG_PS,
720 "TSFOOR - Sync with next Beacon\n");
721 sc->ps_flags |= PS_WAIT_FOR_BEACON | PS_BEACON_SYNC |
722 PS_TSFOOR_SYNC;
723 }
724
725 if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE) 725 if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE)
726 if (status & ATH9K_INT_GENTIMER) 726 if (status & ATH9K_INT_GENTIMER)
727 ath_gen_timer_isr(sc->sc_ah); 727 ath_gen_timer_isr(sc->sc_ah);