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,  | 
