mac80211: update to wireless-testing 2010-10-15, add a few ath9k fixes and performanc...
[openwrt/svn-archive/archive.git] / package / mac80211 / patches / 524-mac80211_survey_channel_stats.patch
diff --git a/package/mac80211/patches/524-mac80211_survey_channel_stats.patch b/package/mac80211/patches/524-mac80211_survey_channel_stats.patch
deleted file mode 100644 (file)
index af71234..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
---- a/include/linux/nl80211.h
-+++ b/include/linux/nl80211.h
-@@ -1413,6 +1413,16 @@ enum nl80211_reg_rule_flags {
-  * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
-  * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
-  * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used
-+ * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio
-+ *    spent on this channel
-+ * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary
-+ *    channel was sensed busy (either due to activity or energy detect)
-+ * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension
-+ *    channel was sensed busy
-+ * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent
-+ *    receiving data
-+ * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent
-+ *    transmitting data
-  * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
-  *    currently defined
-  * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
-@@ -1422,6 +1432,11 @@ enum nl80211_survey_info {
-       NL80211_SURVEY_INFO_FREQUENCY,
-       NL80211_SURVEY_INFO_NOISE,
-       NL80211_SURVEY_INFO_IN_USE,
-+      NL80211_SURVEY_INFO_CHANNEL_TIME,
-+      NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY,
-+      NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY,
-+      NL80211_SURVEY_INFO_CHANNEL_TIME_RX,
-+      NL80211_SURVEY_INFO_CHANNEL_TIME_TX,
-       /* keep last */
-       __NL80211_SURVEY_INFO_AFTER_LAST,
---- a/include/net/cfg80211.h
-+++ b/include/net/cfg80211.h
-@@ -295,6 +295,11 @@ struct key_params {
-  *
-  * @SURVEY_INFO_NOISE_DBM: noise (in dBm) was filled in
-  * @SURVEY_INFO_IN_USE: channel is currently being used
-+ * @SURVEY_INFO_CHANNEL_TIME: channel active time (in ms) was filled in
-+ * @SURVEY_INFO_CHANNEL_TIME_BUSY: channel busy time was filled in
-+ * @SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: extension channel busy time was filled in
-+ * @SURVEY_INFO_CHANNEL_TIME_RX: channel receive time was filled in
-+ * @SURVEY_INFO_CHANNEL_TIME_TX: channel transmit time was filled in
-  *
-  * Used by the driver to indicate which info in &struct survey_info
-  * it has filled in during the get_survey().
-@@ -302,6 +307,11 @@ struct key_params {
- enum survey_info_flags {
-       SURVEY_INFO_NOISE_DBM = 1<<0,
-       SURVEY_INFO_IN_USE = 1<<1,
-+      SURVEY_INFO_CHANNEL_TIME = 1<<2,
-+      SURVEY_INFO_CHANNEL_TIME_BUSY = 1<<3,
-+      SURVEY_INFO_CHANNEL_TIME_EXT_BUSY = 1<<4,
-+      SURVEY_INFO_CHANNEL_TIME_RX = 1<<5,
-+      SURVEY_INFO_CHANNEL_TIME_TX = 1<<6,
- };
- /**
-@@ -311,6 +321,11 @@ enum survey_info_flags {
-  * @filled: bitflag of flags from &enum survey_info_flags
-  * @noise: channel noise in dBm. This and all following fields are
-  *     optional
-+ * @channel_time: amount of time in ms the radio spent on the channel
-+ * @channel_time_busy: amount of time the primary channel was sensed busy
-+ * @channel_time_ext_busy: amount of time the extension channel was sensed busy
-+ * @channel_time_rx: amount of time the radio spent receiving data
-+ * @channel_time_tx: amount of time the radio spent transmitting data
-  *
-  * Used by dump_survey() to report back per-channel survey information.
-  *
-@@ -319,6 +334,11 @@ enum survey_info_flags {
-  */
- struct survey_info {
-       struct ieee80211_channel *channel;
-+      u64 channel_time;
-+      u64 channel_time_busy;
-+      u64 channel_time_ext_busy;
-+      u64 channel_time_rx;
-+      u64 channel_time_tx;
-       u32 filled;
-       s8 noise;
- };
---- a/net/wireless/nl80211.c
-+++ b/net/wireless/nl80211.c
-@@ -3153,6 +3153,21 @@ static int nl80211_send_survey(struct sk
-                           survey->noise);
-       if (survey->filled & SURVEY_INFO_IN_USE)
-               NLA_PUT_FLAG(msg, NL80211_SURVEY_INFO_IN_USE);
-+      if (survey->filled & SURVEY_INFO_CHANNEL_TIME)
-+              NLA_PUT_U64(msg, NL80211_SURVEY_INFO_CHANNEL_TIME,
-+                          survey->channel_time);
-+      if (survey->filled & SURVEY_INFO_CHANNEL_TIME_BUSY)
-+              NLA_PUT_U64(msg, NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY,
-+                          survey->channel_time_busy);
-+      if (survey->filled & SURVEY_INFO_CHANNEL_TIME_EXT_BUSY)
-+              NLA_PUT_U64(msg, NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY,
-+                          survey->channel_time_ext_busy);
-+      if (survey->filled & SURVEY_INFO_CHANNEL_TIME_RX)
-+              NLA_PUT_U64(msg, NL80211_SURVEY_INFO_CHANNEL_TIME_RX,
-+                          survey->channel_time_rx);
-+      if (survey->filled & SURVEY_INFO_CHANNEL_TIME_TX)
-+              NLA_PUT_U64(msg, NL80211_SURVEY_INFO_CHANNEL_TIME_TX,
-+                          survey->channel_time_tx);
-       nla_nest_end(msg, infoattr);