iwlwifi: mvm: fix extended dwell time
authorDavid Spinadel <david.spinadel@intel.com>
Sun, 3 Jan 2016 15:08:32 +0000 (17:08 +0200)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 7 Jan 2016 17:01:27 +0000 (19:01 +0200)
FW adds 10 msec for every dwell time in low band, so we need
to set 10 msec less.
Don't use extended dwell time when fragmented scan is needed
because FW adds 3 msec per probe and it can easily exceed
max out of channel time.

Fixes: c3e230b167a9 ("iwlwifi: mvm: add extended dwell time")
Signed-off-by: David Spinadel <david.spinadel@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/scan.c

index bee3201c7116e58c288aab68ee9973b8ce40c2a6..9a15642f80dd28b88dc4ae8326f465a7ec583e35 100644 (file)
@@ -92,7 +92,7 @@ static struct iwl_mvm_scan_timing_params scan_timing[] = {
                .dwell_active = 10,
                .dwell_passive = 110,
                .dwell_fragmented = 44,
-               .dwell_extended = 100,
+               .dwell_extended = 90,
                .suspend_time = 0,
                .max_out_time = 0,
        },
@@ -100,7 +100,7 @@ static struct iwl_mvm_scan_timing_params scan_timing[] = {
                .dwell_active = 10,
                .dwell_passive = 110,
                .dwell_fragmented = 44,
-               .dwell_extended = 100,
+               .dwell_extended = 90,
                .suspend_time = 30,
                .max_out_time = 120,
        },
@@ -108,7 +108,7 @@ static struct iwl_mvm_scan_timing_params scan_timing[] = {
                .dwell_active = 10,
                .dwell_passive = 110,
                .dwell_fragmented = 44,
-               .dwell_extended = 100,
+               .dwell_extended = 90,
                .suspend_time = 120,
                .max_out_time = 120,
        },
@@ -116,7 +116,6 @@ static struct iwl_mvm_scan_timing_params scan_timing[] = {
                .dwell_active = 10,
                .dwell_passive = 110,
                .dwell_fragmented = 44,
-               .dwell_extended = 44,
                .suspend_time = 95,
                .max_out_time = 44,
        },
@@ -790,7 +789,8 @@ static int iwl_mvm_scan_lmac_flags(struct iwl_mvm *mvm,
 #endif
 
        if (iwl_mvm_is_regular_scan(params) &&
-           vif->type != NL80211_IFTYPE_P2P_DEVICE)
+           vif->type != NL80211_IFTYPE_P2P_DEVICE &&
+           params->type != IWL_SCAN_TYPE_FRAGMENTED)
                flags |= IWL_MVM_LMAC_SCAN_FLAG_EXTENDED_DWELL;
 
        return flags;
@@ -1072,7 +1072,8 @@ static u32 iwl_mvm_scan_umac_flags(struct iwl_mvm *mvm,
 #endif
 
        if (iwl_mvm_is_regular_scan(params) &&
-           vif->type != NL80211_IFTYPE_P2P_DEVICE)
+           vif->type != NL80211_IFTYPE_P2P_DEVICE &&
+           params->type != IWL_SCAN_TYPE_FRAGMENTED)
                flags |= IWL_UMAC_SCAN_GEN_FLAGS_EXTENDED_DWELL;
 
        return flags;