aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex/scan.c
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2013-06-19 11:49:05 -0400
committerJohn W. Linville <linville@tuxdriver.com>2013-06-19 15:28:33 -0400
commit2a7305c88d245f104c3d6bd3babafb029fd07477 (patch)
tree11bc89a28e36d5b26df148b7243f00b9f29322ed /drivers/net/wireless/mwifiex/scan.c
parent86a9c4a28b2c1a367d340db53570ebea02f33fca (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.c19
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