|
@@ -173,15 +173,21 @@ static void iwl_mvm_scan_fill_ssids(struct iwl_ssid_ie *cmd_ssid,
|
|
|
* already included in the probe template, so we need to set only
|
|
|
* req->n_ssids - 1 bits in addition to the first bit.
|
|
|
*/
|
|
|
-static u16 iwl_mvm_get_active_dwell(enum ieee80211_band band, int n_ssids)
|
|
|
+static u16 iwl_mvm_get_active_dwell(struct iwl_mvm *mvm,
|
|
|
+ enum ieee80211_band band, int n_ssids)
|
|
|
{
|
|
|
+ if (mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_BASIC_DWELL)
|
|
|
+ return 10;
|
|
|
if (band == IEEE80211_BAND_2GHZ)
|
|
|
return 20 + 3 * (n_ssids + 1);
|
|
|
return 10 + 2 * (n_ssids + 1);
|
|
|
}
|
|
|
|
|
|
-static u16 iwl_mvm_get_passive_dwell(enum ieee80211_band band)
|
|
|
+static u16 iwl_mvm_get_passive_dwell(struct iwl_mvm *mvm,
|
|
|
+ enum ieee80211_band band)
|
|
|
{
|
|
|
+ if (mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_BASIC_DWELL)
|
|
|
+ return 110;
|
|
|
return band == IEEE80211_BAND_2GHZ ? 100 + 20 : 100 + 10;
|
|
|
}
|
|
|
|
|
@@ -337,7 +343,8 @@ static void iwl_mvm_scan_calc_params(struct iwl_mvm *mvm,
|
|
|
*/
|
|
|
if (vif->type == NL80211_IFTYPE_P2P_DEVICE) {
|
|
|
u32 passive_dwell =
|
|
|
- iwl_mvm_get_passive_dwell(IEEE80211_BAND_2GHZ);
|
|
|
+ iwl_mvm_get_passive_dwell(mvm,
|
|
|
+ IEEE80211_BAND_2GHZ);
|
|
|
params->max_out_time = passive_dwell;
|
|
|
} else {
|
|
|
params->passive_fragmented = true;
|
|
@@ -354,8 +361,8 @@ not_bound:
|
|
|
params->dwell[band].passive = frag_passive_dwell;
|
|
|
else
|
|
|
params->dwell[band].passive =
|
|
|
- iwl_mvm_get_passive_dwell(band);
|
|
|
- params->dwell[band].active = iwl_mvm_get_active_dwell(band,
|
|
|
+ iwl_mvm_get_passive_dwell(mvm, band);
|
|
|
+ params->dwell[band].active = iwl_mvm_get_active_dwell(mvm, band,
|
|
|
n_ssids);
|
|
|
}
|
|
|
}
|