aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/523-ath5k_use_common_counters.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-10-16 02:30:30 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-10-16 02:30:30 +0000
commit8083a4380b0832bba5502e0ff05f112367ee7edc (patch)
tree7e0c5d6a40bad533cb1462d94c32ceddd41f3a1c /package/mac80211/patches/523-ath5k_use_common_counters.patch
parentc4541431779b70fdf55de91ce735caa7404a68bd (diff)
downloadupstream-8083a4380b0832bba5502e0ff05f112367ee7edc.tar.gz
upstream-8083a4380b0832bba5502e0ff05f112367ee7edc.tar.bz2
upstream-8083a4380b0832bba5502e0ff05f112367ee7edc.zip
mac80211: update to wireless-testing 2010-10-15, add a few ath9k fixes and performance enhancements
SVN-Revision: 23470
Diffstat (limited to 'package/mac80211/patches/523-ath5k_use_common_counters.patch')
-rw-r--r--package/mac80211/patches/523-ath5k_use_common_counters.patch104
1 files changed, 0 insertions, 104 deletions
diff --git a/package/mac80211/patches/523-ath5k_use_common_counters.patch b/package/mac80211/patches/523-ath5k_use_common_counters.patch
deleted file mode 100644
index 1899f8d465..0000000000
--- a/package/mac80211/patches/523-ath5k_use_common_counters.patch
+++ /dev/null
@@ -1,104 +0,0 @@
---- a/drivers/net/wireless/ath/ath5k/ani.c
-+++ b/drivers/net/wireless/ath/ath5k/ani.c
-@@ -355,41 +355,28 @@ ath5k_ani_lower_immunity(struct ath5k_hw
-
-
- /**
-- * ath5k_hw_ani_get_listen_time() - Calculate time spent listening
-+ * ath5k_hw_ani_get_listen_time() - Update counters and return listening time
- *
- * Return an approximation of the time spent "listening" in milliseconds (ms)
-- * since the last call of this function by deducting the cycles spent
-- * transmitting and receiving from the total cycle count.
-- * Save profile count values for debugging/statistics and because we might want
-- * to use them later.
-- *
-- * We assume no one else clears these registers!
-+ * since the last call of this function.
-+ * Save a snapshot of the counter values for debugging/statistics.
- */
- static int
- ath5k_hw_ani_get_listen_time(struct ath5k_hw *ah, struct ath5k_ani_state *as)
- {
-+ struct ath_common *common = ath5k_hw_common(ah);
- int listen;
-
-- /* freeze */
-- ath5k_hw_reg_write(ah, AR5K_MIBC_FMC, AR5K_MIBC);
-- /* read */
-- as->pfc_cycles = ath5k_hw_reg_read(ah, AR5K_PROFCNT_CYCLE);
-- as->pfc_busy = ath5k_hw_reg_read(ah, AR5K_PROFCNT_RXCLR);
-- as->pfc_tx = ath5k_hw_reg_read(ah, AR5K_PROFCNT_TX);
-- as->pfc_rx = ath5k_hw_reg_read(ah, AR5K_PROFCNT_RX);
-- /* clear */
-- ath5k_hw_reg_write(ah, 0, AR5K_PROFCNT_TX);
-- ath5k_hw_reg_write(ah, 0, AR5K_PROFCNT_RX);
-- ath5k_hw_reg_write(ah, 0, AR5K_PROFCNT_RXCLR);
-- ath5k_hw_reg_write(ah, 0, AR5K_PROFCNT_CYCLE);
-- /* un-freeze */
-- ath5k_hw_reg_write(ah, 0, AR5K_MIBC);
-+ spin_lock_bh(&common->cc_lock);
-
-- /* TODO: where does 44000 come from? (11g clock rate?) */
-- listen = (as->pfc_cycles - as->pfc_rx - as->pfc_tx) / 44000;
-+ ath_hw_cycle_counters_update(common);
-+ memcpy(&as->last_cc, &common->cc_ani, sizeof(as->last_cc));
-+
-+ /* clears common->cc_ani */
-+ listen = ath_hw_get_listen_time(common);
-+
-+ spin_unlock_bh(&common->cc_lock);
-
-- if (as->pfc_cycles == 0 || listen < 0)
-- return 0;
- return listen;
- }
-
---- a/drivers/net/wireless/ath/ath5k/ani.h
-+++ b/drivers/net/wireless/ath/ath5k/ani.h
-@@ -75,10 +75,7 @@ struct ath5k_ani_state {
- unsigned int cck_errors;
-
- /* debug/statistics only: numbers from last ANI calibration */
-- unsigned int pfc_tx;
-- unsigned int pfc_rx;
-- unsigned int pfc_busy;
-- unsigned int pfc_cycles;
-+ struct ath_cycle_counters last_cc;
- unsigned int last_listen;
- unsigned int last_ofdm_errors;
- unsigned int last_cck_errors;
---- a/drivers/net/wireless/ath/ath5k/debug.c
-+++ b/drivers/net/wireless/ath/ath5k/debug.c
-@@ -715,20 +715,21 @@ static ssize_t read_file_ani(struct file
- len += snprintf(buf+len, sizeof(buf)-len,
- "beacon RSSI average:\t%d\n",
- sc->ah->ah_beacon_rssi_avg.avg);
-+
-+#define CC_PRINT(_struct, _field) \
-+ _struct._field, \
-+ _struct.cycles > 0 ? \
-+ _struct._field*100/_struct.cycles : 0
-+
- len += snprintf(buf+len, sizeof(buf)-len, "profcnt tx\t\t%u\t(%d%%)\n",
-- as->pfc_tx,
-- as->pfc_cycles > 0 ?
-- as->pfc_tx*100/as->pfc_cycles : 0);
-+ CC_PRINT(as->last_cc, tx_frame));
- len += snprintf(buf+len, sizeof(buf)-len, "profcnt rx\t\t%u\t(%d%%)\n",
-- as->pfc_rx,
-- as->pfc_cycles > 0 ?
-- as->pfc_rx*100/as->pfc_cycles : 0);
-+ CC_PRINT(as->last_cc, rx_frame));
- len += snprintf(buf+len, sizeof(buf)-len, "profcnt busy\t\t%u\t(%d%%)\n",
-- as->pfc_busy,
-- as->pfc_cycles > 0 ?
-- as->pfc_busy*100/as->pfc_cycles : 0);
-+ CC_PRINT(as->last_cc, rx_busy));
-+#undef CC_PRINT
- len += snprintf(buf+len, sizeof(buf)-len, "profcnt cycles\t\t%u\n",
-- as->pfc_cycles);
-+ as->last_cc.cycles);
- len += snprintf(buf+len, sizeof(buf)-len,
- "listen time\t\t%d\tlast: %d\n",
- as->listen_time, as->last_listen);