diff options
author | Johannes Berg <johannes.berg@intel.com> | 2014-06-04 04:13:50 -0400 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-06-24 08:04:39 -0400 |
commit | ab4800303299e9a3b844e8256bf3c8fd9f095060 (patch) | |
tree | b3993fa4a88d0d013f1b12a75a907fb81394fad3 /drivers/net/wireless | |
parent | 0564679bb6e750dc6d441f6d67e95c0590fa3f80 (diff) |
iwlwifi: mvm: add back support for low-priority scan
The low-priority scan feature can be useful, e.g. for OBSS
scans (if those are required by the AP); add back support
for it, restoring the maximum out time to the value it was
for low-priority scan before that was removed.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mac80211.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/scan.c | 9 |
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c index 7215f5980186..41c0aace3e84 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c | |||
@@ -374,6 +374,7 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm) | |||
374 | hw->wiphy->max_sched_scan_ie_len = SCAN_OFFLOAD_PROBE_REQ_SIZE - 24 - 2; | 374 | hw->wiphy->max_sched_scan_ie_len = SCAN_OFFLOAD_PROBE_REQ_SIZE - 24 - 2; |
375 | 375 | ||
376 | hw->wiphy->features |= NL80211_FEATURE_P2P_GO_CTWIN | | 376 | hw->wiphy->features |= NL80211_FEATURE_P2P_GO_CTWIN | |
377 | NL80211_FEATURE_LOW_PRIORITY_SCAN | | ||
377 | NL80211_FEATURE_P2P_GO_OPPPS; | 378 | NL80211_FEATURE_P2P_GO_OPPPS; |
378 | 379 | ||
379 | mvm->rts_threshold = IEEE80211_MAX_RTS_THRESHOLD; | 380 | mvm->rts_threshold = IEEE80211_MAX_RTS_THRESHOLD; |
diff --git a/drivers/net/wireless/iwlwifi/mvm/scan.c b/drivers/net/wireless/iwlwifi/mvm/scan.c index df8f3ebea84a..896c21d4fc7c 100644 --- a/drivers/net/wireless/iwlwifi/mvm/scan.c +++ b/drivers/net/wireless/iwlwifi/mvm/scan.c | |||
@@ -267,7 +267,7 @@ static void iwl_mvm_scan_condition_iterator(void *data, u8 *mac, | |||
267 | 267 | ||
268 | static void iwl_mvm_scan_calc_params(struct iwl_mvm *mvm, | 268 | static void iwl_mvm_scan_calc_params(struct iwl_mvm *mvm, |
269 | struct ieee80211_vif *vif, | 269 | struct ieee80211_vif *vif, |
270 | int n_ssids, | 270 | int n_ssids, u32 flags, |
271 | struct iwl_mvm_scan_params *params) | 271 | struct iwl_mvm_scan_params *params) |
272 | { | 272 | { |
273 | bool global_bound = false; | 273 | bool global_bound = false; |
@@ -289,6 +289,9 @@ static void iwl_mvm_scan_calc_params(struct iwl_mvm *mvm, | |||
289 | params->max_out_time = 250; | 289 | params->max_out_time = 250; |
290 | } | 290 | } |
291 | 291 | ||
292 | if (flags & NL80211_SCAN_FLAG_LOW_PRIORITY) | ||
293 | params->max_out_time = 200; | ||
294 | |||
292 | not_bound: | 295 | not_bound: |
293 | 296 | ||
294 | for (band = IEEE80211_BAND_2GHZ; band < IEEE80211_NUM_BANDS; band++) { | 297 | for (band = IEEE80211_BAND_2GHZ; band < IEEE80211_NUM_BANDS; band++) { |
@@ -332,7 +335,7 @@ int iwl_mvm_scan_request(struct iwl_mvm *mvm, | |||
332 | cmd->quiet_plcp_th = cpu_to_le16(IWL_PLCP_QUIET_THRESH); | 335 | cmd->quiet_plcp_th = cpu_to_le16(IWL_PLCP_QUIET_THRESH); |
333 | cmd->rxchain_sel_flags = iwl_mvm_scan_rx_chain(mvm); | 336 | cmd->rxchain_sel_flags = iwl_mvm_scan_rx_chain(mvm); |
334 | 337 | ||
335 | iwl_mvm_scan_calc_params(mvm, vif, req->n_ssids, ¶ms); | 338 | iwl_mvm_scan_calc_params(mvm, vif, req->n_ssids, req->flags, ¶ms); |
336 | cmd->max_out_time = cpu_to_le32(params.max_out_time); | 339 | cmd->max_out_time = cpu_to_le32(params.max_out_time); |
337 | cmd->suspend_time = cpu_to_le32(params.suspend_time); | 340 | cmd->suspend_time = cpu_to_le32(params.suspend_time); |
338 | if (params.passive_fragmented) | 341 | if (params.passive_fragmented) |
@@ -758,7 +761,7 @@ int iwl_mvm_config_sched_scan(struct iwl_mvm *mvm, | |||
758 | if (!scan_cfg) | 761 | if (!scan_cfg) |
759 | return -ENOMEM; | 762 | return -ENOMEM; |
760 | 763 | ||
761 | iwl_mvm_scan_calc_params(mvm, vif, req->n_ssids, ¶ms); | 764 | iwl_mvm_scan_calc_params(mvm, vif, req->n_ssids, 0, ¶ms); |
762 | iwl_build_scan_cmd(mvm, vif, req, &scan_cfg->scan_cmd, ¶ms); | 765 | iwl_build_scan_cmd(mvm, vif, req, &scan_cfg->scan_cmd, ¶ms); |
763 | scan_cfg->scan_cmd.len = cpu_to_le16(cmd_len); | 766 | scan_cfg->scan_cmd.len = cpu_to_le16(cmd_len); |
764 | 767 | ||