aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath5k/base.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath5k/base.c')
-rw-r--r--drivers/net/wireless/ath5k/base.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index 8862d245c82b..e18305b781c9 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -126,6 +126,7 @@ static struct ath5k_srev_name srev_names[] = {
126 { "5414", AR5K_VERSION_VER, AR5K_SREV_VER_AR5414 }, 126 { "5414", AR5K_VERSION_VER, AR5K_SREV_VER_AR5414 },
127 { "5416", AR5K_VERSION_VER, AR5K_SREV_VER_AR5416 }, 127 { "5416", AR5K_VERSION_VER, AR5K_SREV_VER_AR5416 },
128 { "5418", AR5K_VERSION_VER, AR5K_SREV_VER_AR5418 }, 128 { "5418", AR5K_VERSION_VER, AR5K_SREV_VER_AR5418 },
129 { "2425", AR5K_VERSION_VER, AR5K_SREV_VER_AR2425 },
129 { "xxxxx", AR5K_VERSION_VER, AR5K_SREV_UNKNOWN }, 130 { "xxxxx", AR5K_VERSION_VER, AR5K_SREV_UNKNOWN },
130 { "5110", AR5K_VERSION_RAD, AR5K_SREV_RAD_5110 }, 131 { "5110", AR5K_VERSION_RAD, AR5K_SREV_RAD_5110 },
131 { "5111", AR5K_VERSION_RAD, AR5K_SREV_RAD_5111 }, 132 { "5111", AR5K_VERSION_RAD, AR5K_SREV_RAD_5111 },
@@ -2341,7 +2342,8 @@ ath5k_init(struct ath5k_softc *sc)
2341 * Enable interrupts. 2342 * Enable interrupts.
2342 */ 2343 */
2343 sc->imask = AR5K_INT_RX | AR5K_INT_TX | AR5K_INT_RXEOL | 2344 sc->imask = AR5K_INT_RX | AR5K_INT_TX | AR5K_INT_RXEOL |
2344 AR5K_INT_RXORN | AR5K_INT_FATAL | AR5K_INT_GLOBAL; 2345 AR5K_INT_RXORN | AR5K_INT_FATAL | AR5K_INT_GLOBAL |
2346 AR5K_INT_MIB;
2345 2347
2346 ath5k_hw_set_intr(sc->ah, sc->imask); 2348 ath5k_hw_set_intr(sc->ah, sc->imask);
2347 /* Set ack to be sent at low bit-rates */ 2349 /* Set ack to be sent at low bit-rates */
@@ -2521,7 +2523,11 @@ ath5k_intr(int irq, void *dev_id)
2521 if (status & AR5K_INT_BMISS) { 2523 if (status & AR5K_INT_BMISS) {
2522 } 2524 }
2523 if (status & AR5K_INT_MIB) { 2525 if (status & AR5K_INT_MIB) {
2524 /* TODO */ 2526 /*
2527 * These stats are also used for ANI i think
2528 * so how about updating them more often ?
2529 */
2530 ath5k_hw_update_mib_counters(ah, &sc->ll_stats);
2525 } 2531 }
2526 } 2532 }
2527 } while (ath5k_hw_is_intr_pending(ah) && counter-- > 0); 2533 } while (ath5k_hw_is_intr_pending(ah) && counter-- > 0);
@@ -3014,6 +3020,10 @@ ath5k_get_stats(struct ieee80211_hw *hw,
3014 struct ieee80211_low_level_stats *stats) 3020 struct ieee80211_low_level_stats *stats)
3015{ 3021{
3016 struct ath5k_softc *sc = hw->priv; 3022 struct ath5k_softc *sc = hw->priv;
3023 struct ath5k_hw *ah = sc->ah;
3024
3025 /* Force update */
3026 ath5k_hw_update_mib_counters(ah, &sc->ll_stats);
3017 3027
3018 memcpy(stats, &sc->ll_stats, sizeof(sc->ll_stats)); 3028 memcpy(stats, &sc->ll_stats, sizeof(sc->ll_stats));
3019 3029