]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
iwlwifi: pass the iwl_config_trans_params when needed
authorLuca Coelho <luciano.coelho@intel.com>
Fri, 3 Aug 2018 10:24:18 +0000 (13:24 +0300)
committerLuca Coelho <luciano.coelho@intel.com>
Fri, 6 Sep 2019 12:51:02 +0000 (15:51 +0300)
Instead of accessing the iwl_config_trans_params from the cfg that is
stored in the trans struct, pass this structure directly to functions
that need it during trans_alloc.  This will be useful to isolate the
elements needed during allocation and pass them separately before the
actual cfg struct is known.

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

index c64a40edd75d71c27b642e63c96e80266ff4dece..2010eaca514085d7aea2ffd8f231921e27bb5aa8 100644 (file)
@@ -1000,7 +1000,7 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (WARN_ONCE(!cfg->trans.csr, "CSR addresses aren't configured\n"))
                return -EINVAL;
 
-       iwl_trans = iwl_trans_pcie_alloc(pdev, ent, cfg);
+       iwl_trans = iwl_trans_pcie_alloc(pdev, ent, &cfg->trans);
        if (IS_ERR(iwl_trans))
                return PTR_ERR(iwl_trans);
 
index 53999ea7bb04ceb662337c935f9c5dcaf2155659..eba9660a2bc8644f418a72111afbeba8210e3dbf 100644 (file)
@@ -635,9 +635,10 @@ iwl_trans_pcie_get_trans(struct iwl_trans_pcie *trans_pcie)
  * Convention: trans API functions: iwl_trans_pcie_XXX
  *     Other functions: iwl_pcie_XXX
  */
-struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
-                                      const struct pci_device_id *ent,
-                                      const struct iwl_cfg *cfg);
+struct iwl_trans
+*iwl_trans_pcie_alloc(struct pci_dev *pdev,
+                     const struct pci_device_id *ent,
+                     const struct iwl_cfg_trans_params *cfg_trans);
 void iwl_trans_pcie_free(struct iwl_trans *trans);
 
 /*****************************************************
index c602e4914424166c8b86edb8ed618ef27466fe80..e196e3b87574a3ea86fd28e3fba183b55bb44a9a 100644 (file)
@@ -3373,8 +3373,8 @@ static const struct iwl_trans_ops trans_ops_pcie_gen2 = {
 };
 
 struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
-                                      const struct pci_device_id *ent,
-                                      const struct iwl_cfg *cfg)
+                              const struct pci_device_id *ent,
+                              const struct iwl_cfg_trans_params *cfg_trans)
 {
        struct iwl_trans_pcie *trans_pcie;
        struct iwl_trans *trans;
@@ -3384,7 +3384,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
        if (ret)
                return ERR_PTR(ret);
 
-       if (cfg->trans.gen2)
+       if (cfg_trans->gen2)
                trans = iwl_trans_alloc(sizeof(struct iwl_trans_pcie),
                                        &pdev->dev, &trans_ops_pcie_gen2);
        else
@@ -3409,7 +3409,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
        }
        trans_pcie->debug_rfkill = -1;
 
-       if (!cfg->trans.base_params->pcie_l1_allowed) {
+       if (!cfg_trans->base_params->pcie_l1_allowed) {
                /*
                 * W/A - seems to solve weird behavior. We need to remove this
                 * if we don't want to stay in L1 all the time. This wastes a
@@ -3422,7 +3422,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
 
        trans_pcie->def_rx_queue = 0;
 
-       if (cfg->trans.use_tfh) {
+       if (cfg_trans->use_tfh) {
                addr_size = 64;
                trans_pcie->max_tbs = IWL_TFH_NUM_TBS;
                trans_pcie->tfd_size = sizeof(struct iwl_tfh_tfd);
@@ -3484,7 +3484,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
         * "dash" value). To keep hw_rev backwards compatible - we'll store it
         * in the old format.
         */
-       if (cfg->trans.device_family >= IWL_DEVICE_FAMILY_8000) {
+       if (cfg_trans->device_family >= IWL_DEVICE_FAMILY_8000) {
                trans->hw_rev = (trans->hw_rev & 0xfff0) |
                                (CSR_HW_REV_STEP(trans->hw_rev << 2) << 2);
 
@@ -3498,7 +3498,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
                 * in-order to recognize C step driver should read chip version
                 * id located at the AUX bus MISC address space.
                 */
-               ret = iwl_finish_nic_init(trans, &cfg->trans);
+               ret = iwl_finish_nic_init(trans, cfg_trans);
                if (ret)
                        goto out_no_pci;
 
@@ -3506,7 +3506,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
 
        IWL_DEBUG_INFO(trans, "HW REV: 0x%0x\n", trans->hw_rev);
 
-       iwl_pcie_set_interrupt_capa(pdev, trans, &cfg->trans);
+       iwl_pcie_set_interrupt_capa(pdev, trans, cfg_trans);
        trans->hw_id = (pdev->device << 16) + pdev->subsystem_device;
        snprintf(trans->hw_id_str, sizeof(trans->hw_id_str),
                 "PCI ID: 0x%04X:0x%04X", pdev->device, pdev->subsystem_device);