diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2021-02-10 18:15:05 +0300 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2021-02-11 02:52:07 +0300 |
commit | 46ad1ff977e78401537f953c84990714c4d3d768 (patch) | |
tree | 390a1726e0388b5f942007c5f70a852dab6fea12 | |
parent | 4e8fe214f7c0ca75f512dd573f944221ecdf053e (diff) | |
download | linux-46ad1ff977e78401537f953c84990714c4d3d768.tar.xz |
iwlwifi: mvm: register to mac80211 last
All the actions that were taken after the registration can
be taken before the registration to mac80211.
This will help to defer part of the op_mode_mvm_start
function to a later stage in case the device is not
available.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20210210171218.c03cc5db67c1.Ia928ca34d25a73d959a345ffbe4f1217c3f17394@changeid
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c index 3f82b219b45b..573c4548e441 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c @@ -891,16 +891,9 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, /* Set EBS as successful as long as not stated otherwise by the FW. */ mvm->last_ebs_successful = true; - err = iwl_mvm_mac_setup_register(mvm); - if (err) - goto out_free; - mvm->hw_registered = true; - min_backoff = iwl_mvm_min_backoff(mvm); iwl_mvm_thermal_initialize(mvm, min_backoff); - iwl_mvm_dbgfs_register(mvm, dbgfs_dir); - if (!iwl_mvm_has_new_rx_stats_api(mvm)) memset(&mvm->rx_stats_v3, 0, sizeof(struct mvm_statistics_rx_v3)); @@ -909,8 +902,17 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, iwl_mvm_toggle_tx_ant(mvm, &mvm->mgmt_last_antenna_idx); + err = iwl_mvm_mac_setup_register(mvm); + if (err) + goto out_thermal_exit; + mvm->hw_registered = true; + + iwl_mvm_dbgfs_register(mvm, dbgfs_dir); + return op_mode; + out_thermal_exit: + iwl_mvm_thermal_exit(mvm); out_free: iwl_fw_flush_dumps(&mvm->fwrt); iwl_fw_runtime_free(&mvm->fwrt); |