iwlwifi: remove dflt_pwr_limit from the transport
authorLuca Coelho <luciano.coelho@intel.com>
Thu, 28 Sep 2017 12:29:27 +0000 (15:29 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 6 Oct 2017 12:22:34 +0000 (15:22 +0300)
The default power limit read from the SPLC method in ACPI doesn't
have anything to do with the transport and is only used in the opmode,
so we can remove it from the trans.  Additionally, this value is only
user when the opmode is starting, so we don't need to store it
anywhere.

Remove the dflt_pwr_limit element from the trans and move call to
iwl_acpi_get_pwr_limit() call to mvm.

Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-trans.h
drivers/net/wireless/intel/iwlwifi/mvm/ops.c
drivers/net/wireless/intel/iwlwifi/pcie/drv.c

index 91ec077900f691549231387abe654f4fce58e3e3..bba4f54cbbbb817212f10e6ab4638688b2d5a4b1 100644 (file)
@@ -749,8 +749,6 @@ struct iwl_trans {
        struct lockdep_map sync_cmd_lockdep_map;
 #endif
 
-       u64 dflt_pwr_limit;
-
        const struct iwl_fw_dbg_dest_tlv *dbg_dest_tlv;
        const struct iwl_fw_dbg_conf_tlv *dbg_conf_tlv[FW_DBG_CONF_MAX];
        struct iwl_fw_dbg_trigger_tlv * const *dbg_trigger_tlv;
index d855920f5456b667ee59b5b36129fb1dd682595a..e82b4462722b52a343c1d83bc97c26ca7c83ba06 100644 (file)
@@ -86,6 +86,7 @@
 #include "time-event.h"
 #include "fw-api.h"
 #include "fw/api/scan.h"
+#include "fw/acpi.h"
 
 #define DRV_DESCRIPTION        "The new Intel(R) wireless AGN driver for Linux"
 MODULE_DESCRIPTION(DRV_DESCRIPTION);
@@ -488,18 +489,21 @@ static const struct iwl_hcmd_arr iwl_mvm_groups[] = {
 static void iwl_mvm_async_handlers_wk(struct work_struct *wk);
 static void iwl_mvm_d0i3_exit_work(struct work_struct *wk);
 
-static u32 calc_min_backoff(struct iwl_trans *trans, const struct iwl_cfg *cfg)
+static u32 iwl_mvm_min_backoff(struct iwl_mvm *mvm)
 {
-       const struct iwl_pwr_tx_backoff *pwr_tx_backoff = cfg->pwr_tx_backoffs;
+       const struct iwl_pwr_tx_backoff *backoff = mvm->cfg->pwr_tx_backoffs;
+       u64 dflt_pwr_limit;
 
-       if (!pwr_tx_backoff)
+       if (!backoff)
                return 0;
 
-       while (pwr_tx_backoff->pwr) {
-               if (trans->dflt_pwr_limit >= pwr_tx_backoff->pwr)
-                       return pwr_tx_backoff->backoff;
+       dflt_pwr_limit = iwl_acpi_get_pwr_limit(mvm->dev);
 
-               pwr_tx_backoff++;
+       while (backoff->pwr) {
+               if (dflt_pwr_limit >= backoff->pwr)
+                       return backoff->backoff;
+
+               backoff++;
        }
 
        return 0;
@@ -769,7 +773,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
                goto out_free;
        mvm->hw_registered = true;
 
-       min_backoff = calc_min_backoff(trans, cfg);
+       min_backoff = iwl_mvm_min_backoff(mvm);
        iwl_mvm_thermal_initialize(mvm, min_backoff);
 
        err = iwl_mvm_dbgfs_register(mvm, dbgfs_dir);
index d81f2414fd8e643970609715a0d93c38a7deb465..ce7254ec05141610ff56d3d00350905ef1bc3e09 100644 (file)
@@ -78,7 +78,6 @@
 #include "iwl-trans.h"
 #include "iwl-drv.h"
 #include "internal.h"
-#include "fw/acpi.h"
 
 #define IWL_PCI_DEVICE(dev, subdev, cfg) \
        .vendor = PCI_VENDOR_ID_INTEL,  .device = (dev), \
@@ -651,8 +650,6 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                goto out_free_trans;
        }
 
-       iwl_trans->dflt_pwr_limit = iwl_acpi_get_pwr_limit(iwl_trans->dev);
-
        /* register transport layer debugfs here */
        ret = iwl_trans_pcie_dbgfs_register(iwl_trans);
        if (ret)