|
@@ -1107,6 +1107,12 @@ int iwl_mvm_scan_offload_stop(struct iwl_mvm *mvm, bool notify)
|
|
return iwl_umac_scan_stop(mvm, IWL_UMAC_SCAN_UID_SCHED_SCAN,
|
|
return iwl_umac_scan_stop(mvm, IWL_UMAC_SCAN_UID_SCHED_SCAN,
|
|
notify);
|
|
notify);
|
|
|
|
|
|
|
|
+ if (mvm->scan_status == IWL_MVM_SCAN_NONE)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
|
|
+ if (iwl_mvm_is_radio_killed(mvm))
|
|
|
|
+ goto out;
|
|
|
|
+
|
|
if (mvm->scan_status != IWL_MVM_SCAN_SCHED &&
|
|
if (mvm->scan_status != IWL_MVM_SCAN_SCHED &&
|
|
(!(mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_LMAC_SCAN) ||
|
|
(!(mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_LMAC_SCAN) ||
|
|
mvm->scan_status != IWL_MVM_SCAN_OS)) {
|
|
mvm->scan_status != IWL_MVM_SCAN_OS)) {
|
|
@@ -1143,6 +1149,7 @@ int iwl_mvm_scan_offload_stop(struct iwl_mvm *mvm, bool notify)
|
|
if (mvm->scan_status == IWL_MVM_SCAN_OS)
|
|
if (mvm->scan_status == IWL_MVM_SCAN_OS)
|
|
iwl_mvm_unref(mvm, IWL_MVM_REF_SCAN);
|
|
iwl_mvm_unref(mvm, IWL_MVM_REF_SCAN);
|
|
|
|
|
|
|
|
+out:
|
|
mvm->scan_status = IWL_MVM_SCAN_NONE;
|
|
mvm->scan_status = IWL_MVM_SCAN_NONE;
|
|
|
|
|
|
if (notify) {
|
|
if (notify) {
|