From 51b8905a6966c96e1178b6ff0fde7b46f842eb31 Mon Sep 17 00:00:00 2001 From: nbd Date: Sat, 9 Oct 2010 00:36:54 +0000 Subject: ath9k: implement extended channel utilization statistics via survey git-svn-id: svn://svn.openwrt.org/openwrt/trunk@23350 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches/521-ath5k_common_clockrate.patch | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 package/mac80211/patches/521-ath5k_common_clockrate.patch (limited to 'package/mac80211/patches/521-ath5k_common_clockrate.patch') diff --git a/package/mac80211/patches/521-ath5k_common_clockrate.patch b/package/mac80211/patches/521-ath5k_common_clockrate.patch new file mode 100644 index 000000000..08c18342e --- /dev/null +++ b/package/mac80211/patches/521-ath5k_common_clockrate.patch @@ -0,0 +1,65 @@ +--- a/drivers/net/wireless/ath/ath5k/pcu.c ++++ b/drivers/net/wireless/ath/ath5k/pcu.c +@@ -207,7 +207,8 @@ static int ath5k_hw_set_cts_timeout(stru + */ + unsigned int ath5k_hw_htoclock(struct ath5k_hw *ah, unsigned int usec) + { +- return usec * ath5k_hw_get_clockrate(ah); ++ struct ath_common *common = ath5k_hw_common(ah); ++ return usec * common->clockrate; + } + + /** +@@ -216,17 +217,19 @@ unsigned int ath5k_hw_htoclock(struct at + */ + unsigned int ath5k_hw_clocktoh(struct ath5k_hw *ah, unsigned int clock) + { +- return clock / ath5k_hw_get_clockrate(ah); ++ struct ath_common *common = ath5k_hw_common(ah); ++ return clock / common->clockrate; + } + + /** +- * ath5k_hw_get_clockrate - Get the clock rate for current mode ++ * ath5k_hw_set_clockrate - Set common->clockrate for the current channel + * + * @ah: The &struct ath5k_hw + */ +-unsigned int ath5k_hw_get_clockrate(struct ath5k_hw *ah) ++void ath5k_hw_set_clockrate(struct ath5k_hw *ah) + { + struct ieee80211_channel *channel = ah->ah_current_channel; ++ struct ath_common *common = ath5k_hw_common(ah); + int clock; + + if (channel->hw_value & CHANNEL_5GHZ) +@@ -240,7 +243,7 @@ unsigned int ath5k_hw_get_clockrate(stru + if (channel->hw_value & CHANNEL_TURBO) + clock *= 2; + +- return clock; ++ common->clockrate = clock; + } + + /** +--- a/drivers/net/wireless/ath/ath5k/ath5k.h ++++ b/drivers/net/wireless/ath/ath5k/ath5k.h +@@ -1201,7 +1201,7 @@ void ath5k_hw_set_ack_bitrate_high(struc + /* Clock rate related functions */ + unsigned int ath5k_hw_htoclock(struct ath5k_hw *ah, unsigned int usec); + unsigned int ath5k_hw_clocktoh(struct ath5k_hw *ah, unsigned int clock); +-unsigned int ath5k_hw_get_clockrate(struct ath5k_hw *ah); ++void ath5k_hw_set_clockrate(struct ath5k_hw *ah); + + /* Queue Control Unit, DFS Control Unit Functions */ + int ath5k_hw_get_tx_queueprops(struct ath5k_hw *ah, int queue, +--- a/drivers/net/wireless/ath/ath5k/phy.c ++++ b/drivers/net/wireless/ath/ath5k/phy.c +@@ -1093,6 +1093,7 @@ int ath5k_hw_channel(struct ath5k_hw *ah + + ah->ah_current_channel = channel; + ah->ah_turbo = channel->hw_value == CHANNEL_T ? true : false; ++ ath5k_hw_set_clockrate(ah); + + return 0; + } -- cgit v1.2.3