diff options
| author | John W. Linville <linville@tuxdriver.com> | 2014-03-21 14:02:04 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2014-03-21 14:02:04 -0400 |
| commit | 49c0ca17ee8dd3530f688052d4eb2ae6d3e55119 (patch) | |
| tree | 251a4c566723b60505234a18ed864763ad0d0506 /include | |
| parent | a85ae0e97879f51bccd8511668b07d346d98b3eb (diff) | |
| parent | 67b3bd4e65f0854aca70e0134d59b1daede49504 (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/ieee80211.h | 4 | ||||
| -rw-r--r-- | include/linux/mmc/sdio_ids.h | 1 | ||||
| -rw-r--r-- | include/net/bluetooth/hci_core.h | 11 | ||||
| -rw-r--r-- | include/net/bluetooth/mgmt.h | 12 | ||||
| -rw-r--r-- | include/net/cfg80211.h | 23 | ||||
| -rw-r--r-- | include/net/mac80211.h | 6 | ||||
| -rw-r--r-- | include/net/nfc/digital.h | 7 | ||||
| -rw-r--r-- | include/net/nfc/nfc.h | 3 | ||||
| -rw-r--r-- | include/net/regulatory.h | 21 | ||||
| -rw-r--r-- | include/uapi/linux/nfc.h | 9 | ||||
| -rw-r--r-- | include/uapi/linux/nl80211.h | 6 |
11 files changed, 82 insertions, 21 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 06299048c4f4..f194ccb8539c 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
| @@ -154,6 +154,10 @@ static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2) | |||
| 154 | 802.11e clarifies the figure in section 7.1.2. The frame body is | 154 | 802.11e clarifies the figure in section 7.1.2. The frame body is |
| 155 | up to 2304 octets long (maximum MSDU size) plus any crypt overhead. */ | 155 | up to 2304 octets long (maximum MSDU size) plus any crypt overhead. */ |
| 156 | #define IEEE80211_MAX_DATA_LEN 2304 | 156 | #define IEEE80211_MAX_DATA_LEN 2304 |
| 157 | /* 802.11ad extends maximum MSDU size for DMG (freq > 40Ghz) networks | ||
| 158 | * to 7920 bytes, see 8.2.3 General frame format | ||
| 159 | */ | ||
| 160 | #define IEEE80211_MAX_DATA_LEN_DMG 7920 | ||
| 157 | /* 30 byte 4 addr hdr, 2 byte QoS, 2304 byte MSDU, 12 byte crypt, 4 byte FCS */ | 161 | /* 30 byte 4 addr hdr, 2 byte QoS, 2304 byte MSDU, 12 byte crypt, 4 byte FCS */ |
| 158 | #define IEEE80211_MAX_FRAME_LEN 2352 | 162 | #define IEEE80211_MAX_FRAME_LEN 2352 |
| 159 | 163 | ||
diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h index d8836623f36a..0f01fe065424 100644 --- a/include/linux/mmc/sdio_ids.h +++ b/include/linux/mmc/sdio_ids.h | |||
| @@ -31,6 +31,7 @@ | |||
| 31 | #define SDIO_DEVICE_ID_BROADCOM_4334 0x4334 | 31 | #define SDIO_DEVICE_ID_BROADCOM_4334 0x4334 |
| 32 | #define SDIO_DEVICE_ID_BROADCOM_4335_4339 0x4335 | 32 | #define SDIO_DEVICE_ID_BROADCOM_4335_4339 0x4335 |
| 33 | #define SDIO_DEVICE_ID_BROADCOM_43362 43362 | 33 | #define SDIO_DEVICE_ID_BROADCOM_43362 43362 |
| 34 | #define SDIO_DEVICE_ID_BROADCOM_4354 0x4354 | ||
| 34 | 35 | ||
| 35 | #define SDIO_VENDOR_ID_INTEL 0x0089 | 36 | #define SDIO_VENDOR_ID_INTEL 0x0089 |
| 36 | #define SDIO_DEVICE_ID_INTEL_IWMC3200WIMAX 0x1402 | 37 | #define SDIO_DEVICE_ID_INTEL_IWMC3200WIMAX 0x1402 |
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index dbb788e4f265..b8cc39a4a9a5 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h | |||
| @@ -91,6 +91,13 @@ struct bt_uuid { | |||
| 91 | u8 svc_hint; | 91 | u8 svc_hint; |
| 92 | }; | 92 | }; |
| 93 | 93 | ||
| 94 | struct smp_csrk { | ||
| 95 | bdaddr_t bdaddr; | ||
| 96 | u8 bdaddr_type; | ||
| 97 | u8 master; | ||
| 98 | u8 val[16]; | ||
| 99 | }; | ||
| 100 | |||
| 94 | struct smp_ltk { | 101 | struct smp_ltk { |
| 95 | struct list_head list; | 102 | struct list_head list; |
| 96 | bdaddr_t bdaddr; | 103 | bdaddr_t bdaddr; |
| @@ -1263,8 +1270,10 @@ void mgmt_remote_name(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 link_type, | |||
| 1263 | void mgmt_discovering(struct hci_dev *hdev, u8 discovering); | 1270 | void mgmt_discovering(struct hci_dev *hdev, u8 discovering); |
| 1264 | int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); | 1271 | int mgmt_device_blocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); |
| 1265 | int mgmt_device_unblocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); | 1272 | int mgmt_device_unblocked(struct hci_dev *hdev, bdaddr_t *bdaddr, u8 type); |
| 1266 | void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key); | 1273 | void mgmt_new_ltk(struct hci_dev *hdev, struct smp_ltk *key, bool persistent); |
| 1267 | void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk); | 1274 | void mgmt_new_irk(struct hci_dev *hdev, struct smp_irk *irk); |
| 1275 | void mgmt_new_csrk(struct hci_dev *hdev, struct smp_csrk *csrk, | ||
| 1276 | bool persistent); | ||
| 1268 | void mgmt_reenable_advertising(struct hci_dev *hdev); | 1277 | void mgmt_reenable_advertising(struct hci_dev *hdev); |
| 1269 | void mgmt_smp_complete(struct hci_conn *conn, bool complete); | 1278 | void mgmt_smp_complete(struct hci_conn *conn, bool complete); |
| 1270 | 1279 | ||
diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h index 0326648fd799..d4b571c2f9fd 100644 --- a/include/net/bluetooth/mgmt.h +++ b/include/net/bluetooth/mgmt.h | |||
| @@ -551,3 +551,15 @@ struct mgmt_ev_new_irk { | |||
| 551 | bdaddr_t rpa; | 551 | bdaddr_t rpa; |
| 552 | struct mgmt_irk_info irk; | 552 | struct mgmt_irk_info irk; |
| 553 | } __packed; | 553 | } __packed; |
| 554 | |||
| 555 | struct mgmt_csrk_info { | ||
| 556 | struct mgmt_addr_info addr; | ||
| 557 | __u8 master; | ||
| 558 | __u8 val[16]; | ||
| 559 | } __packed; | ||
| 560 | |||
| 561 | #define MGMT_EV_NEW_CSRK 0x0019 | ||
| 562 | struct mgmt_ev_new_csrk { | ||
| 563 | __u8 store_hint; | ||
| 564 | struct mgmt_csrk_info key; | ||
| 565 | } __packed; | ||
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 8c9ba44fb7cf..f3539a15c411 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h | |||
| @@ -151,6 +151,7 @@ enum ieee80211_channel_flags { | |||
| 151 | * @dfs_state: current state of this channel. Only relevant if radar is required | 151 | * @dfs_state: current state of this channel. Only relevant if radar is required |
| 152 | * on this channel. | 152 | * on this channel. |
| 153 | * @dfs_state_entered: timestamp (jiffies) when the dfs state was entered. | 153 | * @dfs_state_entered: timestamp (jiffies) when the dfs state was entered. |
| 154 | * @dfs_cac_ms: DFS CAC time in milliseconds, this is valid for DFS channels. | ||
| 154 | */ | 155 | */ |
| 155 | struct ieee80211_channel { | 156 | struct ieee80211_channel { |
| 156 | enum ieee80211_band band; | 157 | enum ieee80211_band band; |
| @@ -165,6 +166,7 @@ struct ieee80211_channel { | |||
| 165 | int orig_mag, orig_mpwr; | 166 | int orig_mag, orig_mpwr; |
| 166 | enum nl80211_dfs_state dfs_state; | 167 | enum nl80211_dfs_state dfs_state; |
| 167 | unsigned long dfs_state_entered; | 168 | unsigned long dfs_state_entered; |
| 169 | unsigned int dfs_cac_ms; | ||
| 168 | }; | 170 | }; |
| 169 | 171 | ||
| 170 | /** | 172 | /** |
| @@ -2503,7 +2505,8 @@ struct cfg80211_ops { | |||
| 2503 | 2505 | ||
| 2504 | int (*start_radar_detection)(struct wiphy *wiphy, | 2506 | int (*start_radar_detection)(struct wiphy *wiphy, |
| 2505 | struct net_device *dev, | 2507 | struct net_device *dev, |
| 2506 | struct cfg80211_chan_def *chandef); | 2508 | struct cfg80211_chan_def *chandef, |
| 2509 | u32 cac_time_ms); | ||
| 2507 | int (*update_ft_ies)(struct wiphy *wiphy, struct net_device *dev, | 2510 | int (*update_ft_ies)(struct wiphy *wiphy, struct net_device *dev, |
| 2508 | struct cfg80211_update_ft_ies_params *ftie); | 2511 | struct cfg80211_update_ft_ies_params *ftie); |
| 2509 | int (*crit_proto_start)(struct wiphy *wiphy, | 2512 | int (*crit_proto_start)(struct wiphy *wiphy, |
| @@ -3180,6 +3183,7 @@ struct cfg80211_cached_keys; | |||
| 3180 | * @p2p_started: true if this is a P2P Device that has been started | 3183 | * @p2p_started: true if this is a P2P Device that has been started |
| 3181 | * @cac_started: true if DFS channel availability check has been started | 3184 | * @cac_started: true if DFS channel availability check has been started |
| 3182 | * @cac_start_time: timestamp (jiffies) when the dfs state was entered. | 3185 | * @cac_start_time: timestamp (jiffies) when the dfs state was entered. |
| 3186 | * @cac_time_ms: CAC time in ms | ||
| 3183 | * @ps: powersave mode is enabled | 3187 | * @ps: powersave mode is enabled |
| 3184 | * @ps_timeout: dynamic powersave timeout | 3188 | * @ps_timeout: dynamic powersave timeout |
| 3185 | * @ap_unexpected_nlportid: (private) netlink port ID of application | 3189 | * @ap_unexpected_nlportid: (private) netlink port ID of application |
| @@ -3235,6 +3239,7 @@ struct wireless_dev { | |||
| 3235 | 3239 | ||
| 3236 | bool cac_started; | 3240 | bool cac_started; |
| 3237 | unsigned long cac_start_time; | 3241 | unsigned long cac_start_time; |
| 3242 | unsigned int cac_time_ms; | ||
| 3238 | 3243 | ||
| 3239 | #ifdef CONFIG_CFG80211_WEXT | 3244 | #ifdef CONFIG_CFG80211_WEXT |
| 3240 | /* wext data */ | 3245 | /* wext data */ |
| @@ -3667,7 +3672,7 @@ void cfg80211_sched_scan_stopped(struct wiphy *wiphy); | |||
| 3667 | * cfg80211_inform_bss_width_frame - inform cfg80211 of a received BSS frame | 3672 | * cfg80211_inform_bss_width_frame - inform cfg80211 of a received BSS frame |
| 3668 | * | 3673 | * |
| 3669 | * @wiphy: the wiphy reporting the BSS | 3674 | * @wiphy: the wiphy reporting the BSS |
| 3670 | * @channel: The channel the frame was received on | 3675 | * @rx_channel: The channel the frame was received on |
| 3671 | * @scan_width: width of the control channel | 3676 | * @scan_width: width of the control channel |
| 3672 | * @mgmt: the management frame (probe response or beacon) | 3677 | * @mgmt: the management frame (probe response or beacon) |
| 3673 | * @len: length of the management frame | 3678 | * @len: length of the management frame |
| @@ -3682,18 +3687,18 @@ void cfg80211_sched_scan_stopped(struct wiphy *wiphy); | |||
| 3682 | */ | 3687 | */ |
| 3683 | struct cfg80211_bss * __must_check | 3688 | struct cfg80211_bss * __must_check |
| 3684 | cfg80211_inform_bss_width_frame(struct wiphy *wiphy, | 3689 | cfg80211_inform_bss_width_frame(struct wiphy *wiphy, |
| 3685 | struct ieee80211_channel *channel, | 3690 | struct ieee80211_channel *rx_channel, |
| 3686 | enum nl80211_bss_scan_width scan_width, | 3691 | enum nl80211_bss_scan_width scan_width, |
| 3687 | struct ieee80211_mgmt *mgmt, size_t len, | 3692 | struct ieee80211_mgmt *mgmt, size_t len, |
| 3688 | s32 signal, gfp_t gfp); | 3693 | s32 signal, gfp_t gfp); |
| 3689 | 3694 | ||
| 3690 | static inline struct cfg80211_bss * __must_check | 3695 | static inline struct cfg80211_bss * __must_check |
| 3691 | cfg80211_inform_bss_frame(struct wiphy *wiphy, | 3696 | cfg80211_inform_bss_frame(struct wiphy *wiphy, |
| 3692 | struct ieee80211_channel *channel, | 3697 | struct ieee80211_channel *rx_channel, |
| 3693 | struct ieee80211_mgmt *mgmt, size_t len, | 3698 | struct ieee80211_mgmt *mgmt, size_t len, |
| 3694 | s32 signal, gfp_t gfp) | 3699 | s32 signal, gfp_t gfp) |
| 3695 | { | 3700 | { |
| 3696 | return cfg80211_inform_bss_width_frame(wiphy, channel, | 3701 | return cfg80211_inform_bss_width_frame(wiphy, rx_channel, |
| 3697 | NL80211_BSS_CHAN_WIDTH_20, | 3702 | NL80211_BSS_CHAN_WIDTH_20, |
| 3698 | mgmt, len, signal, gfp); | 3703 | mgmt, len, signal, gfp); |
| 3699 | } | 3704 | } |
| @@ -3702,7 +3707,7 @@ cfg80211_inform_bss_frame(struct wiphy *wiphy, | |||
| 3702 | * cfg80211_inform_bss - inform cfg80211 of a new BSS | 3707 | * cfg80211_inform_bss - inform cfg80211 of a new BSS |
| 3703 | * | 3708 | * |
| 3704 | * @wiphy: the wiphy reporting the BSS | 3709 | * @wiphy: the wiphy reporting the BSS |
| 3705 | * @channel: The channel the frame was received on | 3710 | * @rx_channel: The channel the frame was received on |
| 3706 | * @scan_width: width of the control channel | 3711 | * @scan_width: width of the control channel |
| 3707 | * @bssid: the BSSID of the BSS | 3712 | * @bssid: the BSSID of the BSS |
| 3708 | * @tsf: the TSF sent by the peer in the beacon/probe response (or 0) | 3713 | * @tsf: the TSF sent by the peer in the beacon/probe response (or 0) |
| @@ -3721,7 +3726,7 @@ cfg80211_inform_bss_frame(struct wiphy *wiphy, | |||
| 3721 | */ | 3726 | */ |
| 3722 | struct cfg80211_bss * __must_check | 3727 | struct cfg80211_bss * __must_check |
| 3723 | cfg80211_inform_bss_width(struct wiphy *wiphy, | 3728 | cfg80211_inform_bss_width(struct wiphy *wiphy, |
| 3724 | struct ieee80211_channel *channel, | 3729 | struct ieee80211_channel *rx_channel, |
| 3725 | enum nl80211_bss_scan_width scan_width, | 3730 | enum nl80211_bss_scan_width scan_width, |
| 3726 | const u8 *bssid, u64 tsf, u16 capability, | 3731 | const u8 *bssid, u64 tsf, u16 capability, |
| 3727 | u16 beacon_interval, const u8 *ie, size_t ielen, | 3732 | u16 beacon_interval, const u8 *ie, size_t ielen, |
| @@ -3729,12 +3734,12 @@ cfg80211_inform_bss_width(struct wiphy *wiphy, | |||
| 3729 | 3734 | ||
| 3730 | static inline struct cfg80211_bss * __must_check | 3735 | static inline struct cfg80211_bss * __must_check |
| 3731 | cfg80211_inform_bss(struct wiphy *wiphy, | 3736 | cfg80211_inform_bss(struct wiphy *wiphy, |
| 3732 | struct ieee80211_channel *channel, | 3737 | struct ieee80211_channel *rx_channel, |
| 3733 | const u8 *bssid, u64 tsf, u16 capability, | 3738 | const u8 *bssid, u64 tsf, u16 capability, |
| 3734 | u16 beacon_interval, const u8 *ie, size_t ielen, | 3739 | u16 beacon_interval, const u8 *ie, size_t ielen, |
| 3735 | s32 signal, gfp_t gfp) | 3740 | s32 signal, gfp_t gfp) |
| 3736 | { | 3741 | { |
| 3737 | return cfg80211_inform_bss_width(wiphy, channel, | 3742 | return cfg80211_inform_bss_width(wiphy, rx_channel, |
| 3738 | NL80211_BSS_CHAN_WIDTH_20, | 3743 | NL80211_BSS_CHAN_WIDTH_20, |
| 3739 | bssid, tsf, capability, | 3744 | bssid, tsf, capability, |
| 3740 | beacon_interval, ie, ielen, signal, | 3745 | beacon_interval, ie, ielen, signal, |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 86faa413b37d..2de7ff42ff3a 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
| @@ -697,11 +697,11 @@ struct ieee80211_tx_info { | |||
| 697 | } control; | 697 | } control; |
| 698 | struct { | 698 | struct { |
| 699 | struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES]; | 699 | struct ieee80211_tx_rate rates[IEEE80211_TX_MAX_RATES]; |
| 700 | int ack_signal; | 700 | s32 ack_signal; |
| 701 | u8 ampdu_ack_len; | 701 | u8 ampdu_ack_len; |
| 702 | u8 ampdu_len; | 702 | u8 ampdu_len; |
| 703 | u8 antenna; | 703 | u8 antenna; |
| 704 | /* 21 bytes free */ | 704 | void *status_driver_data[21 / sizeof(void *)]; |
| 705 | } status; | 705 | } status; |
| 706 | struct { | 706 | struct { |
| 707 | struct ieee80211_tx_rate driver_rates[ | 707 | struct ieee80211_tx_rate driver_rates[ |
| @@ -877,11 +877,13 @@ enum mac80211_rx_flags { | |||
| 877 | * @RX_VHT_FLAG_80MHZ: 80 MHz was used | 877 | * @RX_VHT_FLAG_80MHZ: 80 MHz was used |
| 878 | * @RX_VHT_FLAG_80P80MHZ: 80+80 MHz was used | 878 | * @RX_VHT_FLAG_80P80MHZ: 80+80 MHz was used |
| 879 | * @RX_VHT_FLAG_160MHZ: 160 MHz was used | 879 | * @RX_VHT_FLAG_160MHZ: 160 MHz was used |
| 880 | * @RX_VHT_FLAG_BF: packet was beamformed | ||
| 880 | */ | 881 | */ |
| 881 | enum mac80211_rx_vht_flags { | 882 | enum mac80211_rx_vht_flags { |
| 882 | RX_VHT_FLAG_80MHZ = BIT(0), | 883 | RX_VHT_FLAG_80MHZ = BIT(0), |
| 883 | RX_VHT_FLAG_80P80MHZ = BIT(1), | 884 | RX_VHT_FLAG_80P80MHZ = BIT(1), |
| 884 | RX_VHT_FLAG_160MHZ = BIT(2), | 885 | RX_VHT_FLAG_160MHZ = BIT(2), |
| 886 | RX_VHT_FLAG_BF = BIT(3), | ||
| 885 | }; | 887 | }; |
| 886 | 888 | ||
| 887 | /** | 889 | /** |
diff --git a/include/net/nfc/digital.h b/include/net/nfc/digital.h index 81af21e9bcd4..7655cfe27c34 100644 --- a/include/net/nfc/digital.h +++ b/include/net/nfc/digital.h | |||
| @@ -35,6 +35,7 @@ enum { | |||
| 35 | NFC_DIGITAL_RF_TECH_106A = 0, | 35 | NFC_DIGITAL_RF_TECH_106A = 0, |
| 36 | NFC_DIGITAL_RF_TECH_212F, | 36 | NFC_DIGITAL_RF_TECH_212F, |
| 37 | NFC_DIGITAL_RF_TECH_424F, | 37 | NFC_DIGITAL_RF_TECH_424F, |
| 38 | NFC_DIGITAL_RF_TECH_ISO15693, | ||
| 38 | 39 | ||
| 39 | NFC_DIGITAL_RF_TECH_LAST, | 40 | NFC_DIGITAL_RF_TECH_LAST, |
| 40 | }; | 41 | }; |
| @@ -50,6 +51,7 @@ enum { | |||
| 50 | 51 | ||
| 51 | NFC_DIGITAL_FRAMING_NFCA_T1T, | 52 | NFC_DIGITAL_FRAMING_NFCA_T1T, |
| 52 | NFC_DIGITAL_FRAMING_NFCA_T2T, | 53 | NFC_DIGITAL_FRAMING_NFCA_T2T, |
| 54 | NFC_DIGITAL_FRAMING_NFCA_T4T, | ||
| 53 | NFC_DIGITAL_FRAMING_NFCA_NFC_DEP, | 55 | NFC_DIGITAL_FRAMING_NFCA_NFC_DEP, |
| 54 | 56 | ||
| 55 | NFC_DIGITAL_FRAMING_NFCF, | 57 | NFC_DIGITAL_FRAMING_NFCF, |
| @@ -57,6 +59,9 @@ enum { | |||
| 57 | NFC_DIGITAL_FRAMING_NFCF_NFC_DEP, | 59 | NFC_DIGITAL_FRAMING_NFCF_NFC_DEP, |
| 58 | NFC_DIGITAL_FRAMING_NFC_DEP_ACTIVATED, | 60 | NFC_DIGITAL_FRAMING_NFC_DEP_ACTIVATED, |
| 59 | 61 | ||
| 62 | NFC_DIGITAL_FRAMING_ISO15693_INVENTORY, | ||
| 63 | NFC_DIGITAL_FRAMING_ISO15693_T5T, | ||
| 64 | |||
| 60 | NFC_DIGITAL_FRAMING_LAST, | 65 | NFC_DIGITAL_FRAMING_LAST, |
| 61 | }; | 66 | }; |
| 62 | 67 | ||
| @@ -204,6 +209,8 @@ struct nfc_digital_dev { | |||
| 204 | u8 curr_rf_tech; | 209 | u8 curr_rf_tech; |
| 205 | u8 curr_nfc_dep_pni; | 210 | u8 curr_nfc_dep_pni; |
| 206 | 211 | ||
| 212 | u16 target_fsc; | ||
| 213 | |||
| 207 | int (*skb_check_crc)(struct sk_buff *skb); | 214 | int (*skb_check_crc)(struct sk_buff *skb); |
| 208 | void (*skb_add_crc)(struct sk_buff *skb); | 215 | void (*skb_add_crc)(struct sk_buff *skb); |
| 209 | }; | 216 | }; |
diff --git a/include/net/nfc/nfc.h b/include/net/nfc/nfc.h index e80894bca1d0..2e8b40c16274 100644 --- a/include/net/nfc/nfc.h +++ b/include/net/nfc/nfc.h | |||
| @@ -111,6 +111,9 @@ struct nfc_target { | |||
| 111 | u8 sensf_res[NFC_SENSF_RES_MAXSIZE]; | 111 | u8 sensf_res[NFC_SENSF_RES_MAXSIZE]; |
| 112 | u8 hci_reader_gate; | 112 | u8 hci_reader_gate; |
| 113 | u8 logical_idx; | 113 | u8 logical_idx; |
| 114 | u8 is_iso15693; | ||
| 115 | u8 iso15693_dsfid; | ||
| 116 | u8 iso15693_uid[NFC_ISO15693_UID_MAXSIZE]; | ||
| 114 | }; | 117 | }; |
| 115 | 118 | ||
| 116 | /** | 119 | /** |
diff --git a/include/net/regulatory.h b/include/net/regulatory.h index b07cdc9fa454..75fc1f5a948d 100644 --- a/include/net/regulatory.h +++ b/include/net/regulatory.h | |||
| @@ -155,6 +155,7 @@ struct ieee80211_reg_rule { | |||
| 155 | struct ieee80211_freq_range freq_range; | 155 | struct ieee80211_freq_range freq_range; |
| 156 | struct ieee80211_power_rule power_rule; | 156 | struct ieee80211_power_rule power_rule; |
| 157 | u32 flags; | 157 | u32 flags; |
| 158 | u32 dfs_cac_ms; | ||
| 158 | }; | 159 | }; |
| 159 | 160 | ||
| 160 | struct ieee80211_regdomain { | 161 | struct ieee80211_regdomain { |
| @@ -172,14 +173,18 @@ struct ieee80211_regdomain { | |||
| 172 | #define DBM_TO_MBM(gain) ((gain) * 100) | 173 | #define DBM_TO_MBM(gain) ((gain) * 100) |
| 173 | #define MBM_TO_DBM(gain) ((gain) / 100) | 174 | #define MBM_TO_DBM(gain) ((gain) / 100) |
| 174 | 175 | ||
| 175 | #define REG_RULE(start, end, bw, gain, eirp, reg_flags) \ | 176 | #define REG_RULE_EXT(start, end, bw, gain, eirp, dfs_cac, reg_flags) \ |
| 176 | { \ | 177 | { \ |
| 177 | .freq_range.start_freq_khz = MHZ_TO_KHZ(start), \ | 178 | .freq_range.start_freq_khz = MHZ_TO_KHZ(start), \ |
| 178 | .freq_range.end_freq_khz = MHZ_TO_KHZ(end), \ | 179 | .freq_range.end_freq_khz = MHZ_TO_KHZ(end), \ |
| 179 | .freq_range.max_bandwidth_khz = MHZ_TO_KHZ(bw), \ | 180 | .freq_range.max_bandwidth_khz = MHZ_TO_KHZ(bw), \ |
| 180 | .power_rule.max_antenna_gain = DBI_TO_MBI(gain),\ | 181 | .power_rule.max_antenna_gain = DBI_TO_MBI(gain), \ |
| 181 | .power_rule.max_eirp = DBM_TO_MBM(eirp), \ | 182 | .power_rule.max_eirp = DBM_TO_MBM(eirp), \ |
| 182 | .flags = reg_flags, \ | 183 | .flags = reg_flags, \ |
| 184 | .dfs_cac_ms = dfs_cac, \ | ||
| 183 | } | 185 | } |
| 184 | 186 | ||
| 187 | #define REG_RULE(start, end, bw, gain, eirp, reg_flags) \ | ||
| 188 | REG_RULE_EXT(start, end, bw, gain, eirp, 0, reg_flags) | ||
| 189 | |||
| 185 | #endif | 190 | #endif |
diff --git a/include/uapi/linux/nfc.h b/include/uapi/linux/nfc.h index 6ad6cc03ccd3..9789dc95b6a8 100644 --- a/include/uapi/linux/nfc.h +++ b/include/uapi/linux/nfc.h | |||
| @@ -150,6 +150,8 @@ enum nfc_commands { | |||
| 150 | * @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED) | 150 | * @NFC_ATTR_SE_TYPE: Secure element type (UICC or EMBEDDED) |
| 151 | * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status | 151 | * @NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS: Firmware download operation status |
| 152 | * @NFC_ATTR_APDU: Secure element APDU | 152 | * @NFC_ATTR_APDU: Secure element APDU |
| 153 | * @NFC_ATTR_TARGET_ISO15693_DSFID: ISO 15693 Data Storage Format Identifier | ||
| 154 | * @NFC_ATTR_TARGET_ISO15693_UID: ISO 15693 Unique Identifier | ||
| 153 | */ | 155 | */ |
| 154 | enum nfc_attrs { | 156 | enum nfc_attrs { |
| 155 | NFC_ATTR_UNSPEC, | 157 | NFC_ATTR_UNSPEC, |
| @@ -178,6 +180,8 @@ enum nfc_attrs { | |||
| 178 | NFC_ATTR_SE_AID, | 180 | NFC_ATTR_SE_AID, |
| 179 | NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS, | 181 | NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS, |
| 180 | NFC_ATTR_SE_APDU, | 182 | NFC_ATTR_SE_APDU, |
| 183 | NFC_ATTR_TARGET_ISO15693_DSFID, | ||
| 184 | NFC_ATTR_TARGET_ISO15693_UID, | ||
| 181 | /* private: internal use only */ | 185 | /* private: internal use only */ |
| 182 | __NFC_ATTR_AFTER_LAST | 186 | __NFC_ATTR_AFTER_LAST |
| 183 | }; | 187 | }; |
| @@ -200,6 +204,7 @@ enum nfc_sdp_attr { | |||
| 200 | #define NFC_SENSF_RES_MAXSIZE 18 | 204 | #define NFC_SENSF_RES_MAXSIZE 18 |
| 201 | #define NFC_GB_MAXSIZE 48 | 205 | #define NFC_GB_MAXSIZE 48 |
| 202 | #define NFC_FIRMWARE_NAME_MAXSIZE 32 | 206 | #define NFC_FIRMWARE_NAME_MAXSIZE 32 |
| 207 | #define NFC_ISO15693_UID_MAXSIZE 8 | ||
| 203 | 208 | ||
| 204 | /* NFC protocols */ | 209 | /* NFC protocols */ |
| 205 | #define NFC_PROTO_JEWEL 1 | 210 | #define NFC_PROTO_JEWEL 1 |
| @@ -208,8 +213,9 @@ enum nfc_sdp_attr { | |||
| 208 | #define NFC_PROTO_ISO14443 4 | 213 | #define NFC_PROTO_ISO14443 4 |
| 209 | #define NFC_PROTO_NFC_DEP 5 | 214 | #define NFC_PROTO_NFC_DEP 5 |
| 210 | #define NFC_PROTO_ISO14443_B 6 | 215 | #define NFC_PROTO_ISO14443_B 6 |
| 216 | #define NFC_PROTO_ISO15693 7 | ||
| 211 | 217 | ||
| 212 | #define NFC_PROTO_MAX 7 | 218 | #define NFC_PROTO_MAX 8 |
| 213 | 219 | ||
| 214 | /* NFC communication modes */ | 220 | /* NFC communication modes */ |
| 215 | #define NFC_COMM_ACTIVE 0 | 221 | #define NFC_COMM_ACTIVE 0 |
| @@ -227,6 +233,7 @@ enum nfc_sdp_attr { | |||
| 227 | #define NFC_PROTO_ISO14443_MASK (1 << NFC_PROTO_ISO14443) | 233 | #define NFC_PROTO_ISO14443_MASK (1 << NFC_PROTO_ISO14443) |
| 228 | #define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP) | 234 | #define NFC_PROTO_NFC_DEP_MASK (1 << NFC_PROTO_NFC_DEP) |
| 229 | #define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B) | 235 | #define NFC_PROTO_ISO14443_B_MASK (1 << NFC_PROTO_ISO14443_B) |
| 236 | #define NFC_PROTO_ISO15693_MASK (1 << NFC_PROTO_ISO15693) | ||
| 230 | 237 | ||
| 231 | /* NFC Secure Elements */ | 238 | /* NFC Secure Elements */ |
| 232 | #define NFC_SE_UICC 0x1 | 239 | #define NFC_SE_UICC 0x1 |
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h index ff72cab3cd3a..1ba9d626aa83 100644 --- a/include/uapi/linux/nl80211.h +++ b/include/uapi/linux/nl80211.h | |||
| @@ -2335,6 +2335,7 @@ enum nl80211_band_attr { | |||
| 2335 | * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel | 2335 | * @NL80211_FREQUENCY_ATTR_NO_160MHZ: any 160 MHz (but not 80+80) channel |
| 2336 | * using this channel as the primary or any of the secondary channels | 2336 | * using this channel as the primary or any of the secondary channels |
| 2337 | * isn't possible | 2337 | * isn't possible |
| 2338 | * @NL80211_FREQUENCY_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds. | ||
| 2338 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number | 2339 | * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number |
| 2339 | * currently defined | 2340 | * currently defined |
| 2340 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use | 2341 | * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use |
| @@ -2353,6 +2354,7 @@ enum nl80211_frequency_attr { | |||
| 2353 | NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, | 2354 | NL80211_FREQUENCY_ATTR_NO_HT40_PLUS, |
| 2354 | NL80211_FREQUENCY_ATTR_NO_80MHZ, | 2355 | NL80211_FREQUENCY_ATTR_NO_80MHZ, |
| 2355 | NL80211_FREQUENCY_ATTR_NO_160MHZ, | 2356 | NL80211_FREQUENCY_ATTR_NO_160MHZ, |
| 2357 | NL80211_FREQUENCY_ATTR_DFS_CAC_TIME, | ||
| 2356 | 2358 | ||
| 2357 | /* keep last */ | 2359 | /* keep last */ |
| 2358 | __NL80211_FREQUENCY_ATTR_AFTER_LAST, | 2360 | __NL80211_FREQUENCY_ATTR_AFTER_LAST, |
| @@ -2449,6 +2451,8 @@ enum nl80211_reg_type { | |||
| 2449 | * If you don't have one then don't send this. | 2451 | * If you don't have one then don't send this. |
| 2450 | * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for | 2452 | * @NL80211_ATTR_POWER_RULE_MAX_EIRP: the maximum allowed EIRP for |
| 2451 | * a given frequency range. The value is in mBm (100 * dBm). | 2453 | * a given frequency range. The value is in mBm (100 * dBm). |
| 2454 | * @NL80211_ATTR_DFS_CAC_TIME: DFS CAC time in milliseconds. | ||
| 2455 | * If not present or 0 default CAC time will be used. | ||
| 2452 | * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number | 2456 | * @NL80211_REG_RULE_ATTR_MAX: highest regulatory rule attribute number |
| 2453 | * currently defined | 2457 | * currently defined |
| 2454 | * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use | 2458 | * @__NL80211_REG_RULE_ATTR_AFTER_LAST: internal use |
| @@ -2464,6 +2468,8 @@ enum nl80211_reg_rule_attr { | |||
| 2464 | NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, | 2468 | NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN, |
| 2465 | NL80211_ATTR_POWER_RULE_MAX_EIRP, | 2469 | NL80211_ATTR_POWER_RULE_MAX_EIRP, |
| 2466 | 2470 | ||
| 2471 | NL80211_ATTR_DFS_CAC_TIME, | ||
| 2472 | |||
| 2467 | /* keep last */ | 2473 | /* keep last */ |
| 2468 | __NL80211_REG_RULE_ATTR_AFTER_LAST, | 2474 | __NL80211_REG_RULE_ATTR_AFTER_LAST, |
| 2469 | NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1 | 2475 | NL80211_REG_RULE_ATTR_MAX = __NL80211_REG_RULE_ATTR_AFTER_LAST - 1 |
