diff options
author | Amitkumar Karwar <akarwar@marvell.com> | 2013-06-19 11:49:05 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-06-19 15:28:33 -0400 |
commit | 2a7305c88d245f104c3d6bd3babafb029fd07477 (patch) | |
tree | 11bc89a28e36d5b26df148b7243f00b9f29322ed /drivers/net/wireless/mwifiex/scan.c | |
parent | 86a9c4a28b2c1a367d340db53570ebea02f33fca (diff) |
mwifiex: add basic 11h support for station
This patch adds code to parse requested AP's 11h capabilities
and add 11h information in association request.
Also, deauth is sent to the AP after receiving channel switch
announcement event from firmware. This happens when AP advertises
WLAN_EID_CHANNEL_SWITCH IE in it's beacon.
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: Paul Stewart <pstew@chromium.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex/scan.c')
-rw-r--r-- | drivers/net/wireless/mwifiex/scan.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/scan.c b/drivers/net/wireless/mwifiex/scan.c index 801b6b728379..284d68bf6acc 100644 --- a/drivers/net/wireless/mwifiex/scan.c +++ b/drivers/net/wireless/mwifiex/scan.c | |||
@@ -391,6 +391,12 @@ mwifiex_is_network_compatible(struct mwifiex_private *priv, | |||
391 | return 0; | 391 | return 0; |
392 | } | 392 | } |
393 | 393 | ||
394 | if (bss_desc->chan_sw_ie_present) { | ||
395 | dev_err(adapter->dev, | ||
396 | "Don't connect to AP with WLAN_EID_CHANNEL_SWITCH\n"); | ||
397 | return -1; | ||
398 | } | ||
399 | |||
394 | if (mwifiex_is_bss_wapi(priv, bss_desc)) { | 400 | if (mwifiex_is_bss_wapi(priv, bss_desc)) { |
395 | dev_dbg(adapter->dev, "info: return success for WAPI AP\n"); | 401 | dev_dbg(adapter->dev, "info: return success for WAPI AP\n"); |
396 | return 0; | 402 | return 0; |
@@ -1169,6 +1175,19 @@ int mwifiex_update_bss_desc_with_ie(struct mwifiex_adapter *adapter, | |||
1169 | bss_entry->erp_flags = *(current_ptr + 2); | 1175 | bss_entry->erp_flags = *(current_ptr + 2); |
1170 | break; | 1176 | break; |
1171 | 1177 | ||
1178 | case WLAN_EID_PWR_CONSTRAINT: | ||
1179 | bss_entry->local_constraint = *(current_ptr + 2); | ||
1180 | bss_entry->sensed_11h = true; | ||
1181 | break; | ||
1182 | |||
1183 | case WLAN_EID_CHANNEL_SWITCH: | ||
1184 | bss_entry->chan_sw_ie_present = true; | ||
1185 | case WLAN_EID_PWR_CAPABILITY: | ||
1186 | case WLAN_EID_TPC_REPORT: | ||
1187 | case WLAN_EID_QUIET: | ||
1188 | bss_entry->sensed_11h = true; | ||
1189 | break; | ||
1190 | |||
1172 | case WLAN_EID_EXT_SUPP_RATES: | 1191 | case WLAN_EID_EXT_SUPP_RATES: |
1173 | /* | 1192 | /* |
1174 | * Only process extended supported rate | 1193 | * Only process extended supported rate |