Commit 26e05cc3 authored by David Spinadel's avatar David Spinadel Committed by Johannes Berg

iwlwifi: mvm: enable pre-scan passive to active

Enable passive to active scan feature, on channels that was
active in the past hour.
Signed-off-by: default avatarDavid Spinadel <david.spinadel@intel.com>
Reviewed-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent da4f87f0
...@@ -138,6 +138,8 @@ struct iwl_ssid_ie { ...@@ -138,6 +138,8 @@ struct iwl_ssid_ie {
*@SCAN_FLAGS_DELAYED_SCAN_LOWBAND: *@SCAN_FLAGS_DELAYED_SCAN_LOWBAND:
*@SCAN_FLAGS_DELAYED_SCAN_HIGHBAND: *@SCAN_FLAGS_DELAYED_SCAN_HIGHBAND:
*@SCAN_FLAGS_FRAGMENTED_SCAN: *@SCAN_FLAGS_FRAGMENTED_SCAN:
*@SCAN_FLAGS_PASSIVE2ACTIVE: use active scan on channels that was active
* in the past hour, even if they are marked as passive.
*/ */
enum iwl_scan_flags { enum iwl_scan_flags {
SCAN_FLAGS_PERIODIC_SCAN = BIT(0), SCAN_FLAGS_PERIODIC_SCAN = BIT(0),
...@@ -145,6 +147,7 @@ enum iwl_scan_flags { ...@@ -145,6 +147,7 @@ enum iwl_scan_flags {
SCAN_FLAGS_DELAYED_SCAN_LOWBAND = BIT(2), SCAN_FLAGS_DELAYED_SCAN_LOWBAND = BIT(2),
SCAN_FLAGS_DELAYED_SCAN_HIGHBAND = BIT(3), SCAN_FLAGS_DELAYED_SCAN_HIGHBAND = BIT(3),
SCAN_FLAGS_FRAGMENTED_SCAN = BIT(4), SCAN_FLAGS_FRAGMENTED_SCAN = BIT(4),
SCAN_FLAGS_PASSIVE2ACTIVE = BIT(5),
}; };
/** /**
...@@ -179,7 +182,7 @@ enum iwl_scan_type { ...@@ -179,7 +182,7 @@ enum iwl_scan_type {
* @quiet_time: in msecs, dwell this time for active scan on quiet channels * @quiet_time: in msecs, dwell this time for active scan on quiet channels
* @quiet_plcp_th: quiet PLCP threshold (channel is quiet if less than * @quiet_plcp_th: quiet PLCP threshold (channel is quiet if less than
* this number of packets were received (typically 1) * this number of packets were received (typically 1)
* @passive2active: is auto switching from passive to active allowed (0 or 1) * @passive2active: is auto switching from passive to active during scan allowed
* @rxchain_sel_flags: RXON_RX_CHAIN_* * @rxchain_sel_flags: RXON_RX_CHAIN_*
* @max_out_time: in usecs, max out of serving channel time * @max_out_time: in usecs, max out of serving channel time
* @suspend_time: how long to pause scan when returning to service channel: * @suspend_time: how long to pause scan when returning to service channel:
......
...@@ -306,10 +306,12 @@ int iwl_mvm_scan_request(struct iwl_mvm *mvm, ...@@ -306,10 +306,12 @@ int iwl_mvm_scan_request(struct iwl_mvm *mvm,
*/ */
if (req->n_ssids > 0) { if (req->n_ssids > 0) {
cmd->passive2active = cpu_to_le16(1); cmd->passive2active = cpu_to_le16(1);
cmd->scan_flags |= SCAN_FLAGS_PASSIVE2ACTIVE;
ssid = req->ssids[0].ssid; ssid = req->ssids[0].ssid;
ssid_len = req->ssids[0].ssid_len; ssid_len = req->ssids[0].ssid_len;
} else { } else {
cmd->passive2active = 0; cmd->passive2active = 0;
cmd->scan_flags &= ~SCAN_FLAGS_PASSIVE2ACTIVE;
} }
iwl_mvm_scan_fill_ssids(cmd, req); iwl_mvm_scan_fill_ssids(cmd, req);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment