iwlwifi: mvm: set max_out_time equal to frag_passive_dwell in fragmented scan
authorHaim Dreyfuss <haim.dreyfuss@intel.com>
Thu, 18 Dec 2014 10:34:01 +0000 (12:34 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 22 Jan 2015 15:53:59 +0000 (17:53 +0200)
Fragmented scan should be applied for all channels, passive and active.
When scanning on passive channels the firmware uses frag_passive_dwell
to define the maximum continuous scan time before returning to the
operating channel. On active channels max_out_time is the parameter
used by the firmware to define the maximum time allowed out of the
operating channel. Since active channels' scan should also be fragmented
set max_out_time equal to frag_passive_dwell.
In addition:
- Set max_out_time and suspend_time if the firmware doesn't support
  fragmented scan to avoid unexpected behavior.
- Adjust max_out_time for second level of scan precedence.

Signed-off-by: Haim Dreyfuss <haim.dreyfuss@intel.com>
Reviewed-by: Alexander Bondar <alexander.bondar@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/mvm/scan.c

index 199f6fce09684a568f006c4beb41cebe66b49010..0ee0f81113fe10629b89450e0777fbb30fff0dd9 100644 (file)
@@ -309,18 +309,18 @@ static void iwl_mvm_scan_calc_params(struct iwl_mvm *mvm,
                goto not_bound;
 
        params->suspend_time = 30;
-       params->max_out_time = 170;
+       params->max_out_time = 120;
 
        if (iwl_mvm_low_latency(mvm)) {
                if (mvm->fw->ucode_capa.api[0] &
                    IWL_UCODE_TLV_API_FRAGMENTED_SCAN) {
                        params->suspend_time = 105;
-                       params->max_out_time = 70;
                        /*
                         * If there is more than one active interface make
                         * passive scan more fragmented.
                         */
                        frag_passive_dwell = (global_cnt < 2) ? 40 : 20;
+                       params->max_out_time = frag_passive_dwell;
                } else {
                        params->suspend_time = 120;
                        params->max_out_time = 120;