mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
iwlwifi: mvm: spin off a function to start scan offload
The net-detect feature will require a scan offload to be started in the same way it is done now for scheduled scan. Spin a new function off of the sched_scan_start op code for reuse. Additionally, restructure the function a bit for more readability. Signed-off-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This commit is contained in:
parent
1e4d19ca6e
commit
b141c23581
@ -2170,25 +2170,9 @@ static int iwl_mvm_mac_sched_scan_start(struct ieee80211_hw *hw,
|
|||||||
|
|
||||||
mvm->scan_status = IWL_MVM_SCAN_SCHED;
|
mvm->scan_status = IWL_MVM_SCAN_SCHED;
|
||||||
|
|
||||||
if (!(mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_LMAC_SCAN)) {
|
ret = iwl_mvm_scan_offload_start(mvm, vif, req, ies);
|
||||||
ret = iwl_mvm_config_sched_scan(mvm, vif, req, ies);
|
|
||||||
if (ret)
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = iwl_mvm_config_sched_scan_profiles(mvm, req);
|
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
mvm->scan_status = IWL_MVM_SCAN_NONE;
|
||||||
|
|
||||||
if (mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_LMAC_SCAN)
|
|
||||||
ret = iwl_mvm_unified_sched_scan_lmac(mvm, vif, req, ies);
|
|
||||||
else
|
|
||||||
ret = iwl_mvm_sched_scan_start(mvm, req);
|
|
||||||
|
|
||||||
if (!ret)
|
|
||||||
goto out;
|
|
||||||
err:
|
|
||||||
mvm->scan_status = IWL_MVM_SCAN_NONE;
|
|
||||||
out:
|
out:
|
||||||
mutex_unlock(&mvm->mutex);
|
mutex_unlock(&mvm->mutex);
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -949,6 +949,10 @@ int iwl_mvm_config_sched_scan_profiles(struct iwl_mvm *mvm,
|
|||||||
struct cfg80211_sched_scan_request *req);
|
struct cfg80211_sched_scan_request *req);
|
||||||
int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
|
int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
|
||||||
struct cfg80211_sched_scan_request *req);
|
struct cfg80211_sched_scan_request *req);
|
||||||
|
int iwl_mvm_scan_offload_start(struct iwl_mvm *mvm,
|
||||||
|
struct ieee80211_vif *vif,
|
||||||
|
struct cfg80211_sched_scan_request *req,
|
||||||
|
struct ieee80211_scan_ies *ies);
|
||||||
int iwl_mvm_scan_offload_stop(struct iwl_mvm *mvm, bool notify);
|
int iwl_mvm_scan_offload_stop(struct iwl_mvm *mvm, bool notify);
|
||||||
int iwl_mvm_rx_scan_offload_results(struct iwl_mvm *mvm,
|
int iwl_mvm_rx_scan_offload_results(struct iwl_mvm *mvm,
|
||||||
struct iwl_rx_cmd_buffer *rxb,
|
struct iwl_rx_cmd_buffer *rxb,
|
||||||
|
@ -1007,6 +1007,31 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm,
|
|||||||
sizeof(scan_req), &scan_req);
|
sizeof(scan_req), &scan_req);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int iwl_mvm_scan_offload_start(struct iwl_mvm *mvm,
|
||||||
|
struct ieee80211_vif *vif,
|
||||||
|
struct cfg80211_sched_scan_request *req,
|
||||||
|
struct ieee80211_scan_ies *ies)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if ((mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_LMAC_SCAN)) {
|
||||||
|
ret = iwl_mvm_config_sched_scan_profiles(mvm, req);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
ret = iwl_mvm_unified_sched_scan_lmac(mvm, vif, req, ies);
|
||||||
|
} else {
|
||||||
|
ret = iwl_mvm_config_sched_scan(mvm, vif, req, ies);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
ret = iwl_mvm_config_sched_scan_profiles(mvm, req);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
ret = iwl_mvm_sched_scan_start(mvm, req);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static int iwl_mvm_send_scan_offload_abort(struct iwl_mvm *mvm)
|
static int iwl_mvm_send_scan_offload_abort(struct iwl_mvm *mvm)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user