|
@@ -1455,11 +1455,21 @@ static int iwl_mvm_scan_umac(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
|
|
|
if (type == IWL_MVM_SCAN_SCHED || type == IWL_MVM_SCAN_NETDETECT)
|
|
|
cmd->flags = cpu_to_le32(IWL_UMAC_SCAN_FLAG_PREEMPTIVE);
|
|
|
|
|
|
- if (iwl_mvm_scan_use_ebs(mvm, vif))
|
|
|
+ if (iwl_mvm_scan_use_ebs(mvm, vif)) {
|
|
|
channel_flags = IWL_SCAN_CHANNEL_FLAG_EBS |
|
|
|
IWL_SCAN_CHANNEL_FLAG_EBS_ACCURATE |
|
|
|
IWL_SCAN_CHANNEL_FLAG_CACHE_ADD;
|
|
|
|
|
|
+ /* set fragmented ebs for fragmented scan on HB channels */
|
|
|
+ if (iwl_mvm_is_frag_ebs_supported(mvm)) {
|
|
|
+ if (gen_flags &
|
|
|
+ IWL_UMAC_SCAN_GEN_FLAGS_LMAC2_FRAGMENTED ||
|
|
|
+ (!iwl_mvm_is_cdb_supported(mvm) &&
|
|
|
+ gen_flags & IWL_UMAC_SCAN_GEN_FLAGS_FRAGMENTED))
|
|
|
+ channel_flags |= IWL_SCAN_CHANNEL_FLAG_EBS_FRAG;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
chan_param->flags = channel_flags;
|
|
|
chan_param->count = params->n_channels;
|
|
|
|