diff options
| author | David S. Miller <davem@davemloft.net> | 2013-10-17 16:14:29 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2013-10-17 16:14:29 -0400 |
| commit | 5cda73b68ebf7e08586d61e6777e64e12df23f07 (patch) | |
| tree | 54e7d4409f96e519a6e1ef4ff2a057785df5f6f1 /include/net | |
| parent | 0baf2b35fc70ab16c385963d2502da26a55d2cb7 (diff) | |
| parent | 9f96da4dd2ccf685b506a21104cb13b1aadd907a (diff) | |
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next
John W. Linville says:
====================
This is a batch of updates intended for the 3.13 stream...
The biggest item of interest in here is wcn36xx, the new mac80211
driver for Qualcomm WCN3660/WCN3680 hardware.
Regarding the mac80211 bits, Johannes says:
"We have an assortment of cleanups and new features, of which the
biggest one is probably the channel-switch support in IBSS. Nothing
else really stands out much."
On top of that, the ath9k and rt2x00 get a lot of update action from
Felix Fietkau and Gabor Juhos, respectively. There are a handful of
updates to other drivers here and there as well.
Please let me know if there are problems!
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
| -rw-r--r-- | include/net/cfg80211.h | 9 | ||||
| -rw-r--r-- | include/net/mac80211.h | 42 |
2 files changed, 51 insertions, 0 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index cb710913d5c8..45f6bf591104 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -437,6 +437,15 @@ bool cfg80211_chandef_usable(struct wiphy *wiphy, | |||
| 437 | u32 prohibited_flags); | 437 | u32 prohibited_flags); |
| 438 | 438 | ||
| 439 | /** | 439 | /** |
| 440 | * cfg80211_chandef_dfs_required - checks if radar detection is required | ||
| 441 | * @wiphy: the wiphy to validate against | ||
| 442 | * @chandef: the channel definition to check | ||
| 443 | * Return: 1 if radar detection is required, 0 if it is not, < 0 on error | ||
| 444 | */ | ||
| 445 | int cfg80211_chandef_dfs_required(struct wiphy *wiphy, | ||
| 446 | const struct cfg80211_chan_def *chandef); | ||
| 447 | |||
| 448 | /** | ||
| 440 | * ieee80211_chandef_rate_flags - returns rate flags for a channel | 449 | * ieee80211_chandef_rate_flags - returns rate flags for a channel |
| 441 | * | 450 | * |
| 442 | * In some channel types, not all rates may be used - for example CCK | 451 | * In some channel types, not all rates may be used - for example CCK |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index cc6035f1a2f1..f386c480e134 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
| @@ -829,6 +829,15 @@ ieee80211_tx_info_clear_status(struct ieee80211_tx_info *info) | |||
| 829 | * @RX_FLAG_STBC_MASK: STBC 2 bit bitmask. 1 - Nss=1, 2 - Nss=2, 3 - Nss=3 | 829 | * @RX_FLAG_STBC_MASK: STBC 2 bit bitmask. 1 - Nss=1, 2 - Nss=2, 3 - Nss=3 |
| 830 | * @RX_FLAG_10MHZ: 10 MHz (half channel) was used | 830 | * @RX_FLAG_10MHZ: 10 MHz (half channel) was used |
| 831 | * @RX_FLAG_5MHZ: 5 MHz (quarter channel) was used | 831 | * @RX_FLAG_5MHZ: 5 MHz (quarter channel) was used |
| 832 | * @RX_FLAG_AMSDU_MORE: Some drivers may prefer to report separate A-MSDU | ||
| 833 | * subframes instead of a one huge frame for performance reasons. | ||
| 834 | * All, but the last MSDU from an A-MSDU should have this flag set. E.g. | ||
| 835 | * if an A-MSDU has 3 frames, the first 2 must have the flag set, while | ||
| 836 | * the 3rd (last) one must not have this flag set. The flag is used to | ||
| 837 | * deal with retransmission/duplication recovery properly since A-MSDU | ||
| 838 | * subframes share the same sequence number. Reported subframes can be | ||
| 839 | * either regular MSDU or singly A-MSDUs. Subframes must not be | ||
| 840 | * interleaved with other frames. | ||
| 832 | */ | 841 | */ |
| 833 | enum mac80211_rx_flags { | 842 | enum mac80211_rx_flags { |
| 834 | RX_FLAG_MMIC_ERROR = BIT(0), | 843 | RX_FLAG_MMIC_ERROR = BIT(0), |
| @@ -859,6 +868,7 @@ enum mac80211_rx_flags { | |||
| 859 | RX_FLAG_STBC_MASK = BIT(26) | BIT(27), | 868 | RX_FLAG_STBC_MASK = BIT(26) | BIT(27), |
| 860 | RX_FLAG_10MHZ = BIT(28), | 869 | RX_FLAG_10MHZ = BIT(28), |
| 861 | RX_FLAG_5MHZ = BIT(29), | 870 | RX_FLAG_5MHZ = BIT(29), |
| 871 | RX_FLAG_AMSDU_MORE = BIT(30), | ||
| 862 | }; | 872 | }; |
| 863 | 873 | ||
| 864 | #define RX_FLAG_STBC_SHIFT 26 | 874 | #define RX_FLAG_STBC_SHIFT 26 |
| @@ -1492,6 +1502,11 @@ struct ieee80211_tx_control { | |||
| 1492 | * | 1502 | * |
| 1493 | * @IEEE80211_HW_TIMING_BEACON_ONLY: Use sync timing from beacon frames | 1503 | * @IEEE80211_HW_TIMING_BEACON_ONLY: Use sync timing from beacon frames |
| 1494 | * only, to allow getting TBTT of a DTIM beacon. | 1504 | * only, to allow getting TBTT of a DTIM beacon. |
| 1505 | * | ||
| 1506 | * @IEEE80211_HW_CHANCTX_STA_CSA: Support 802.11h based channel-switch (CSA) | ||
| 1507 | * for a single active channel while using channel contexts. When support | ||
| 1508 | * is not enabled the default action is to disconnect when getting the | ||
| 1509 | * CSA frame. | ||
| 1495 | */ | 1510 | */ |
| 1496 | enum ieee80211_hw_flags { | 1511 | enum ieee80211_hw_flags { |
| 1497 | IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, | 1512 | IEEE80211_HW_HAS_RATE_CONTROL = 1<<0, |
| @@ -1522,6 +1537,7 @@ enum ieee80211_hw_flags { | |||
| 1522 | IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 1<<25, | 1537 | IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF = 1<<25, |
| 1523 | IEEE80211_HW_TIMING_BEACON_ONLY = 1<<26, | 1538 | IEEE80211_HW_TIMING_BEACON_ONLY = 1<<26, |
| 1524 | IEEE80211_HW_SUPPORTS_HT_CCK_RATES = 1<<27, | 1539 | IEEE80211_HW_SUPPORTS_HT_CCK_RATES = 1<<27, |
| 1540 | IEEE80211_HW_CHANCTX_STA_CSA = 1<<28, | ||
| 1525 | }; | 1541 | }; |
| 1526 | 1542 | ||
| 1527 | /** | 1543 | /** |
| @@ -2666,6 +2682,10 @@ enum ieee80211_roc_type { | |||
| 2666 | * zero using ieee80211_csa_is_complete() after the beacon has been | 2682 | * zero using ieee80211_csa_is_complete() after the beacon has been |
| 2667 | * transmitted and then call ieee80211_csa_finish(). | 2683 | * transmitted and then call ieee80211_csa_finish(). |
| 2668 | * | 2684 | * |
| 2685 | * @join_ibss: Join an IBSS (on an IBSS interface); this is called after all | ||
| 2686 | * information in bss_conf is set up and the beacon can be retrieved. A | ||
| 2687 | * channel context is bound before this is called. | ||
| 2688 | * @leave_ibss: Leave the IBSS again. | ||
| 2669 | */ | 2689 | */ |
| 2670 | struct ieee80211_ops { | 2690 | struct ieee80211_ops { |
| 2671 | void (*tx)(struct ieee80211_hw *hw, | 2691 | void (*tx)(struct ieee80211_hw *hw, |
| @@ -2857,6 +2877,9 @@ struct ieee80211_ops { | |||
| 2857 | void (*channel_switch_beacon)(struct ieee80211_hw *hw, | 2877 | void (*channel_switch_beacon)(struct ieee80211_hw *hw, |
| 2858 | struct ieee80211_vif *vif, | 2878 | struct ieee80211_vif *vif, |
| 2859 | struct cfg80211_chan_def *chandef); | 2879 | struct cfg80211_chan_def *chandef); |
| 2880 | |||
| 2881 | int (*join_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif); | ||
| 2882 | void (*leave_ibss)(struct ieee80211_hw *hw, struct ieee80211_vif *vif); | ||
| 2860 | }; | 2883 | }; |
| 2861 | 2884 | ||
| 2862 | /** | 2885 | /** |
| @@ -3920,6 +3943,25 @@ void ieee80211_iterate_active_interfaces_atomic(struct ieee80211_hw *hw, | |||
| 3920 | void *data); | 3943 | void *data); |
| 3921 | 3944 | ||
| 3922 | /** | 3945 | /** |
| 3946 | * ieee80211_iterate_active_interfaces_rtnl - iterate active interfaces | ||
| 3947 | * | ||
| 3948 | * This function iterates over the interfaces associated with a given | ||
| 3949 | * hardware that are currently active and calls the callback for them. | ||
| 3950 | * This version can only be used while holding the RTNL. | ||
| 3951 | * | ||
| 3952 | * @hw: the hardware struct of which the interfaces should be iterated over | ||
| 3953 | * @iter_flags: iteration flags, see &enum ieee80211_interface_iteration_flags | ||
| 3954 | * @iterator: the iterator function to call, cannot sleep | ||
| 3955 | * @data: first argument of the iterator function | ||
| 3956 | */ | ||
| 3957 | void ieee80211_iterate_active_interfaces_rtnl(struct ieee80211_hw *hw, | ||
| 3958 | u32 iter_flags, | ||
| 3959 | void (*iterator)(void *data, | ||
| 3960 | u8 *mac, | ||
| 3961 | struct ieee80211_vif *vif), | ||
| 3962 | void *data); | ||
| 3963 | |||
| 3964 | /** | ||
| 3923 | * ieee80211_queue_work - add work onto the mac80211 workqueue | 3965 | * ieee80211_queue_work - add work onto the mac80211 workqueue |
| 3924 | * | 3966 | * |
| 3925 | * Drivers and mac80211 use this to add work onto the mac80211 workqueue. | 3967 | * Drivers and mac80211 use this to add work onto the mac80211 workqueue. |
