aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2013-04-10 14:09:54 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-04-10 14:09:54 -0400
commit655d8e2328a6ef6b6b514609a4c1e33508d3a1da (patch)
tree144b686bf3fd6512a55987da2d911f739646ce02 /include/net
parent6fe5468f452c0c40348ebd4e737758a842286ca8 (diff)
parentddc4db2e3d5393ede7a9222bb3b7522a603a4678 (diff)
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next
Conflicts: drivers/net/wireless/ath/carl9170/debug.c drivers/net/wireless/ath/carl9170/main.c net/mac80211/ieee80211_i.h
Diffstat (limited to 'include/net')
-rw-r--r--include/net/cfg80211.h4
-rw-r--r--include/net/mac80211.h37
2 files changed, 28 insertions, 13 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index bdba9b619064..57870b646974 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1998,6 +1998,10 @@ struct cfg80211_update_ft_ies_params {
1998 * advertise the support for MAC based ACL have to implement this callback. 1998 * advertise the support for MAC based ACL have to implement this callback.
1999 * 1999 *
2000 * @start_radar_detection: Start radar detection in the driver. 2000 * @start_radar_detection: Start radar detection in the driver.
2001 *
2002 * @update_ft_ies: Provide updated Fast BSS Transition information to the
2003 * driver. If the SME is in the driver/firmware, this information can be
2004 * used in building Authentication and Reassociation Request frames.
2001 */ 2005 */
2002struct cfg80211_ops { 2006struct cfg80211_ops {
2003 int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); 2007 int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index dd73b8c6746b..64faf015dd1e 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -330,8 +330,7 @@ enum ieee80211_rssi_event {
330 * @ssid_len: Length of SSID given in @ssid. 330 * @ssid_len: Length of SSID given in @ssid.
331 * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode. 331 * @hidden_ssid: The SSID of the current vif is hidden. Only valid in AP-mode.
332 * @txpower: TX power in dBm 332 * @txpower: TX power in dBm
333 * @p2p_ctwindow: P2P CTWindow, only for P2P client interfaces 333 * @p2p_noa_attr: P2P NoA attribute for P2P powersave
334 * @p2p_oppps: P2P opportunistic PS is enabled
335 */ 334 */
336struct ieee80211_bss_conf { 335struct ieee80211_bss_conf {
337 const u8 *bssid; 336 const u8 *bssid;
@@ -365,8 +364,7 @@ struct ieee80211_bss_conf {
365 size_t ssid_len; 364 size_t ssid_len;
366 bool hidden_ssid; 365 bool hidden_ssid;
367 int txpower; 366 int txpower;
368 u8 p2p_ctwindow; 367 struct ieee80211_p2p_noa_attr p2p_noa_attr;
369 bool p2p_oppps;
370}; 368};
371 369
372/** 370/**
@@ -976,8 +974,7 @@ enum ieee80211_smps_mode {
976 * @power_level: requested transmit power (in dBm), backward compatibility 974 * @power_level: requested transmit power (in dBm), backward compatibility
977 * value only that is set to the minimum of all interfaces 975 * value only that is set to the minimum of all interfaces
978 * 976 *
979 * @channel: the channel to tune to 977 * @chandef: the channel definition to tune to
980 * @channel_type: the channel (HT) type
981 * @radar_enabled: whether radar detection is enabled 978 * @radar_enabled: whether radar detection is enabled
982 * 979 *
983 * @long_frame_max_tx_count: Maximum number of transmissions for a "long" frame 980 * @long_frame_max_tx_count: Maximum number of transmissions for a "long" frame
@@ -1003,8 +1000,7 @@ struct ieee80211_conf {
1003 1000
1004 u8 long_frame_max_tx_count, short_frame_max_tx_count; 1001 u8 long_frame_max_tx_count, short_frame_max_tx_count;
1005 1002
1006 struct ieee80211_channel *channel; 1003 struct cfg80211_chan_def chandef;
1007 enum nl80211_channel_type channel_type;
1008 bool radar_enabled; 1004 bool radar_enabled;
1009 enum ieee80211_smps_mode smps_mode; 1005 enum ieee80211_smps_mode smps_mode;
1010}; 1006};
@@ -1536,6 +1532,17 @@ enum ieee80211_hw_flags {
1536 * @netdev_features: netdev features to be set in each netdev created 1532 * @netdev_features: netdev features to be set in each netdev created
1537 * from this HW. Note only HW checksum features are currently 1533 * from this HW. Note only HW checksum features are currently
1538 * compatible with mac80211. Other feature bits will be rejected. 1534 * compatible with mac80211. Other feature bits will be rejected.
1535 *
1536 * @uapsd_queues: This bitmap is included in (re)association frame to indicate
1537 * for each access category if it is uAPSD trigger-enabled and delivery-
1538 * enabled. Use IEEE80211_WMM_IE_STA_QOSINFO_AC_* to set this bitmap.
1539 * Each bit corresponds to different AC. Value '1' in specific bit means
1540 * that corresponding AC is both trigger- and delivery-enabled. '0' means
1541 * neither enabled.
1542 *
1543 * @uapsd_max_sp_len: maximum number of total buffered frames the WMM AP may
1544 * deliver to a WMM STA during any Service Period triggered by the WMM STA.
1545 * Use IEEE80211_WMM_IE_STA_QOSINFO_SP_* for correct values.
1539 */ 1546 */
1540struct ieee80211_hw { 1547struct ieee80211_hw {
1541 struct ieee80211_conf conf; 1548 struct ieee80211_conf conf;
@@ -1561,6 +1568,8 @@ struct ieee80211_hw {
1561 u8 radiotap_mcs_details; 1568 u8 radiotap_mcs_details;
1562 u16 radiotap_vht_details; 1569 u16 radiotap_vht_details;
1563 netdev_features_t netdev_features; 1570 netdev_features_t netdev_features;
1571 u8 uapsd_queues;
1572 u8 uapsd_max_sp_len;
1564}; 1573};
1565 1574
1566/** 1575/**
@@ -4205,31 +4214,33 @@ void ieee80211_rate_control_unregister(struct rate_control_ops *ops);
4205static inline bool 4214static inline bool
4206conf_is_ht20(struct ieee80211_conf *conf) 4215conf_is_ht20(struct ieee80211_conf *conf)
4207{ 4216{
4208 return conf->channel_type == NL80211_CHAN_HT20; 4217 return conf->chandef.width == NL80211_CHAN_WIDTH_20;
4209} 4218}
4210 4219
4211static inline bool 4220static inline bool
4212conf_is_ht40_minus(struct ieee80211_conf *conf) 4221conf_is_ht40_minus(struct ieee80211_conf *conf)
4213{ 4222{
4214 return conf->channel_type == NL80211_CHAN_HT40MINUS; 4223 return conf->chandef.width == NL80211_CHAN_WIDTH_40 &&
4224 conf->chandef.center_freq1 < conf->chandef.chan->center_freq;
4215} 4225}
4216 4226
4217static inline bool 4227static inline bool
4218conf_is_ht40_plus(struct ieee80211_conf *conf) 4228conf_is_ht40_plus(struct ieee80211_conf *conf)
4219{ 4229{
4220 return conf->channel_type == NL80211_CHAN_HT40PLUS; 4230 return conf->chandef.width == NL80211_CHAN_WIDTH_40 &&
4231 conf->chandef.center_freq1 > conf->chandef.chan->center_freq;
4221} 4232}
4222 4233
4223static inline bool 4234static inline bool
4224conf_is_ht40(struct ieee80211_conf *conf) 4235conf_is_ht40(struct ieee80211_conf *conf)
4225{ 4236{
4226 return conf_is_ht40_minus(conf) || conf_is_ht40_plus(conf); 4237 return conf->chandef.width == NL80211_CHAN_WIDTH_40;
4227} 4238}
4228 4239
4229static inline bool 4240static inline bool
4230conf_is_ht(struct ieee80211_conf *conf) 4241conf_is_ht(struct ieee80211_conf *conf)
4231{ 4242{
4232 return conf->channel_type != NL80211_CHAN_NO_HT; 4243 return conf->chandef.width != NL80211_CHAN_WIDTH_20_NOHT;
4233} 4244}
4234 4245
4235static inline enum nl80211_iftype 4246static inline enum nl80211_iftype