diff options
author | Luciano Coelho | 2014-10-01 12:22:40 +0200 |
---|---|---|
committer | Emmanuel Grumbach | 2014-10-29 11:49:12 +0100 |
commit | b141c23581164bfa7eb5eb19c2f00cb303c70d3b (patch) | |
tree | fe4a7d74f8bf6b3e48ea88a047880303b8922da7 /drivers/net/wireless/iwlwifi/mvm/scan.c | |
parent | iwlwifi: mvm: move the check if associated outside of the iterator for wowlan (diff) | |
download | kernel-qcow2-linux-b141c23581164bfa7eb5eb19c2f00cb303c70d3b.tar.gz kernel-qcow2-linux-b141c23581164bfa7eb5eb19c2f00cb303c70d3b.tar.xz kernel-qcow2-linux-b141c23581164bfa7eb5eb19c2f00cb303c70d3b.zip |
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>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/scan.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/scan.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/scan.c b/drivers/net/wireless/iwlwifi/mvm/scan.c index b280d5d87127..64c02a274f76 100644 --- a/drivers/net/wireless/iwlwifi/mvm/scan.c +++ b/drivers/net/wireless/iwlwifi/mvm/scan.c @@ -1007,6 +1007,31 @@ int iwl_mvm_sched_scan_start(struct iwl_mvm *mvm, 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) { int ret; |