aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
diff options
context:
space:
mode:
authorDavid Spinadel <david.spinadel@intel.com>2016-01-03 10:08:32 -0500
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2016-01-07 12:01:27 -0500
commitca95ff3a9f9edea919a53a297a4cba178b6cdf5f (patch)
tree768db636defd76bea68029af09a718563eddf94a /drivers/net/wireless/intel/iwlwifi/mvm/scan.c
parent488c28e110e18466c99ffb1e2342498b42d3344e (diff)
iwlwifi: mvm: fix extended dwell time
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>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/scan.c')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/scan.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index bee3201c7116..9a15642f80dd 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -92,7 +92,7 @@ static struct iwl_mvm_scan_timing_params scan_timing[] = {
92 .dwell_active = 10, 92 .dwell_active = 10,
93 .dwell_passive = 110, 93 .dwell_passive = 110,
94 .dwell_fragmented = 44, 94 .dwell_fragmented = 44,
95 .dwell_extended = 100, 95 .dwell_extended = 90,
96 .suspend_time = 0, 96 .suspend_time = 0,
97 .max_out_time = 0, 97 .max_out_time = 0,
98 }, 98 },
@@ -100,7 +100,7 @@ static struct iwl_mvm_scan_timing_params scan_timing[] = {
100 .dwell_active = 10, 100 .dwell_active = 10,
101 .dwell_passive = 110, 101 .dwell_passive = 110,
102 .dwell_fragmented = 44, 102 .dwell_fragmented = 44,
103 .dwell_extended = 100, 103 .dwell_extended = 90,
104 .suspend_time = 30, 104 .suspend_time = 30,
105 .max_out_time = 120, 105 .max_out_time = 120,
106 }, 106 },
@@ -108,7 +108,7 @@ static struct iwl_mvm_scan_timing_params scan_timing[] = {
108 .dwell_active = 10, 108 .dwell_active = 10,
109 .dwell_passive = 110, 109 .dwell_passive = 110,
110 .dwell_fragmented = 44, 110 .dwell_fragmented = 44,
111 .dwell_extended = 100, 111 .dwell_extended = 90,
112 .suspend_time = 120, 112 .suspend_time = 120,
113 .max_out_time = 120, 113 .max_out_time = 120,
114 }, 114 },
@@ -116,7 +116,6 @@ static struct iwl_mvm_scan_timing_params scan_timing[] = {
116 .dwell_active = 10, 116 .dwell_active = 10,
117 .dwell_passive = 110, 117 .dwell_passive = 110,
118 .dwell_fragmented = 44, 118 .dwell_fragmented = 44,
119 .dwell_extended = 44,
120 .suspend_time = 95, 119 .suspend_time = 95,
121 .max_out_time = 44, 120 .max_out_time = 44,
122 }, 121 },
@@ -790,7 +789,8 @@ static int iwl_mvm_scan_lmac_flags(struct iwl_mvm *mvm,
790#endif 789#endif
791 790
792 if (iwl_mvm_is_regular_scan(params) && 791 if (iwl_mvm_is_regular_scan(params) &&
793 vif->type != NL80211_IFTYPE_P2P_DEVICE) 792 vif->type != NL80211_IFTYPE_P2P_DEVICE &&
793 params->type != IWL_SCAN_TYPE_FRAGMENTED)
794 flags |= IWL_MVM_LMAC_SCAN_FLAG_EXTENDED_DWELL; 794 flags |= IWL_MVM_LMAC_SCAN_FLAG_EXTENDED_DWELL;
795 795
796 return flags; 796 return flags;
@@ -1072,7 +1072,8 @@ static u32 iwl_mvm_scan_umac_flags(struct iwl_mvm *mvm,
1072#endif 1072#endif
1073 1073
1074 if (iwl_mvm_is_regular_scan(params) && 1074 if (iwl_mvm_is_regular_scan(params) &&
1075 vif->type != NL80211_IFTYPE_P2P_DEVICE) 1075 vif->type != NL80211_IFTYPE_P2P_DEVICE &&
1076 params->type != IWL_SCAN_TYPE_FRAGMENTED)
1076 flags |= IWL_UMAC_SCAN_GEN_FLAGS_EXTENDED_DWELL; 1077 flags |= IWL_UMAC_SCAN_GEN_FLAGS_EXTENDED_DWELL;
1077 1078
1078 return flags; 1079 return flags;