diff options
Diffstat (limited to 'package/mac80211')
-rw-r--r-- | package/mac80211/patches/560-cfg80211_get_freq.patch | 34 | ||||
-rw-r--r-- | package/mac80211/patches/560-nl80211_get_freq.patch | 47 | ||||
-rw-r--r-- | package/mac80211/patches/570-mac80211_get_freq.patch | 29 |
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, |