summaryrefslogtreecommitdiffstats
path: root/package/mac80211
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211')
-rw-r--r--package/mac80211/patches/560-cfg80211_get_freq.patch34
-rw-r--r--package/mac80211/patches/560-nl80211_get_freq.patch47
-rw-r--r--package/mac80211/patches/570-mac80211_get_freq.patch29
3 files changed, 34 insertions, 76 deletions
diff --git a/package/mac80211/patches/560-cfg80211_get_freq.patch b/package/mac80211/patches/560-cfg80211_get_freq.patch
new file mode 100644
index 000000000..93c9d6e5b
--- /dev/null
+++ b/package/mac80211/patches/560-cfg80211_get_freq.patch
@@ -0,0 +1,34 @@
+--- a/net/wireless/core.h
++++ b/net/wireless/core.h
+@@ -75,6 +75,7 @@ struct cfg80211_registered_device {
+
+ /* current channel */
+ struct ieee80211_channel *channel;
++ enum nl80211_channel_type channel_type;
+
+ /* must be last because of the way we do wiphy_priv(),
+ * and it should at least be aligned to NETDEV_ALIGN */
+--- a/net/wireless/chan.c
++++ b/net/wireless/chan.c
+@@ -97,6 +97,7 @@ int rdev_set_freq(struct cfg80211_regist
+ return result;
+
+ rdev->channel = chan;
++ rdev->channel_type = channel_type;
+
+ return 0;
+ }
+--- a/net/wireless/nl80211.c
++++ b/net/wireless/nl80211.c
+@@ -881,6 +881,11 @@ static int nl80211_send_iface(struct sk_
+ NLA_PUT_U32(msg, NL80211_ATTR_WIPHY, rdev->wiphy_idx);
+ NLA_PUT_STRING(msg, NL80211_ATTR_IFNAME, dev->name);
+ NLA_PUT_U32(msg, NL80211_ATTR_IFTYPE, dev->ieee80211_ptr->iftype);
++ if (rdev->channel) {
++ NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_FREQ, rdev->channel->center_freq);
++ NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_CHANNEL_TYPE, rdev->channel_type);
++ }
++
+
+ NLA_PUT_U32(msg, NL80211_ATTR_GENERATION,
+ rdev->devlist_generation ^
diff --git a/package/mac80211/patches/560-nl80211_get_freq.patch b/package/mac80211/patches/560-nl80211_get_freq.patch
deleted file mode 100644
index 25d915473..000000000
--- a/package/mac80211/patches/560-nl80211_get_freq.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/include/net/cfg80211.h
-+++ b/include/net/cfg80211.h
-@@ -954,6 +954,8 @@ struct cfg80211_pmksa {
- *
- * @set_txq_params: Set TX queue parameters
- *
-+ * @get_channel: Get operating channel
-+ *
- * @set_channel: Set channel
- *
- * @scan: Request to do a scan. If returning zero, the scan request is given
-@@ -1079,6 +1081,10 @@ struct cfg80211_ops {
- int (*set_txq_params)(struct wiphy *wiphy,
- struct ieee80211_txq_params *params);
-
-+ int (*get_channel)(struct wiphy *wiphy,
-+ struct ieee80211_channel **chan,
-+ enum nl80211_channel_type *channel_type);
-+
- int (*set_channel)(struct wiphy *wiphy,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type);
---- a/net/wireless/nl80211.c
-+++ b/net/wireless/nl80211.c
-@@ -427,7 +427,8 @@ static int nl80211_send_wiphy(struct sk_
- struct nlattr *nl_modes;
- struct nlattr *nl_cmds;
- enum ieee80211_band band;
-- struct ieee80211_channel *chan;
-+ struct ieee80211_channel *chan = NULL;
-+ enum nl80211_channel_type chan_type;
- struct ieee80211_rate *rate;
- int i;
- u16 ifmodes = dev->wiphy.interface_modes;
-@@ -465,6 +466,12 @@ static int nl80211_send_wiphy(struct sk_
- NLA_PUT_U8(msg, NL80211_ATTR_MAX_NUM_PMKIDS,
- dev->wiphy.max_num_pmkids);
-
-+ if (dev->ops->get_channel &&
-+ dev->ops->get_channel(&dev->wiphy, &chan, &chan_type) == 0) {
-+ NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_FREQ, chan->center_freq);
-+ NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_CHANNEL_TYPE, chan_type);
-+ }
-+
- nl_modes = nla_nest_start(msg, NL80211_ATTR_SUPPORTED_IFTYPES);
- if (!nl_modes)
- goto nla_put_failure;
diff --git a/package/mac80211/patches/570-mac80211_get_freq.patch b/package/mac80211/patches/570-mac80211_get_freq.patch
deleted file mode 100644
index 073fe6386..000000000
--- a/package/mac80211/patches/570-mac80211_get_freq.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/net/mac80211/cfg.c
-+++ b/net/mac80211/cfg.c
-@@ -1154,6 +1154,18 @@ static int ieee80211_set_txq_params(stru
- return 0;
- }
-
-+static int ieee80211_get_oper_channel(struct wiphy *wiphy,
-+ struct ieee80211_channel **chan,
-+ enum nl80211_channel_type *channel_type)
-+{
-+ struct ieee80211_local *local = wiphy_priv(wiphy);
-+
-+ *chan = local->oper_channel;
-+ *channel_type = local->oper_channel_type;
-+
-+ return 0;
-+}
-+
- static int ieee80211_set_channel(struct wiphy *wiphy,
- struct ieee80211_channel *chan,
- enum nl80211_channel_type channel_type)
-@@ -1494,6 +1506,7 @@ struct cfg80211_ops mac80211_config_ops
- #endif
- .change_bss = ieee80211_change_bss,
- .set_txq_params = ieee80211_set_txq_params,
-+ .get_channel = ieee80211_get_oper_channel,
- .set_channel = ieee80211_set_channel,
- .suspend = ieee80211_suspend,
- .resume = ieee80211_resume,