Commit 7e8258c0 authored by Luca Coelho's avatar Luca Coelho

iwlwifi: pass the iwl_config_trans_params when needed

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: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 0c18714a
...@@ -1000,7 +1000,7 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -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")) if (WARN_ONCE(!cfg->trans.csr, "CSR addresses aren't configured\n"))
return -EINVAL; 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)) if (IS_ERR(iwl_trans))
return PTR_ERR(iwl_trans); return PTR_ERR(iwl_trans);
......
...@@ -635,9 +635,10 @@ iwl_trans_pcie_get_trans(struct iwl_trans_pcie *trans_pcie) ...@@ -635,9 +635,10 @@ iwl_trans_pcie_get_trans(struct iwl_trans_pcie *trans_pcie)
* Convention: trans API functions: iwl_trans_pcie_XXX * Convention: trans API functions: iwl_trans_pcie_XXX
* Other functions: iwl_pcie_XXX * Other functions: iwl_pcie_XXX
*/ */
struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, struct iwl_trans
const struct pci_device_id *ent, *iwl_trans_pcie_alloc(struct pci_dev *pdev,
const struct iwl_cfg *cfg); const struct pci_device_id *ent,
const struct iwl_cfg_trans_params *cfg_trans);
void iwl_trans_pcie_free(struct iwl_trans *trans); void iwl_trans_pcie_free(struct iwl_trans *trans);
/***************************************************** /*****************************************************
......
...@@ -3373,8 +3373,8 @@ static const struct iwl_trans_ops trans_ops_pcie_gen2 = { ...@@ -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, struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
const struct pci_device_id *ent, const struct pci_device_id *ent,
const struct iwl_cfg *cfg) const struct iwl_cfg_trans_params *cfg_trans)
{ {
struct iwl_trans_pcie *trans_pcie; struct iwl_trans_pcie *trans_pcie;
struct iwl_trans *trans; struct iwl_trans *trans;
...@@ -3384,7 +3384,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, ...@@ -3384,7 +3384,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
if (ret) if (ret)
return ERR_PTR(ret); return ERR_PTR(ret);
if (cfg->trans.gen2) if (cfg_trans->gen2)
trans = iwl_trans_alloc(sizeof(struct iwl_trans_pcie), trans = iwl_trans_alloc(sizeof(struct iwl_trans_pcie),
&pdev->dev, &trans_ops_pcie_gen2); &pdev->dev, &trans_ops_pcie_gen2);
else else
...@@ -3409,7 +3409,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, ...@@ -3409,7 +3409,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
} }
trans_pcie->debug_rfkill = -1; 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 * 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 * 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, ...@@ -3422,7 +3422,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
trans_pcie->def_rx_queue = 0; trans_pcie->def_rx_queue = 0;
if (cfg->trans.use_tfh) { if (cfg_trans->use_tfh) {
addr_size = 64; addr_size = 64;
trans_pcie->max_tbs = IWL_TFH_NUM_TBS; trans_pcie->max_tbs = IWL_TFH_NUM_TBS;
trans_pcie->tfd_size = sizeof(struct iwl_tfh_tfd); trans_pcie->tfd_size = sizeof(struct iwl_tfh_tfd);
...@@ -3484,7 +3484,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, ...@@ -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 * "dash" value). To keep hw_rev backwards compatible - we'll store it
* in the old format. * 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) | trans->hw_rev = (trans->hw_rev & 0xfff0) |
(CSR_HW_REV_STEP(trans->hw_rev << 2) << 2); (CSR_HW_REV_STEP(trans->hw_rev << 2) << 2);
...@@ -3498,7 +3498,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, ...@@ -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 * in-order to recognize C step driver should read chip version
* id located at the AUX bus MISC address space. * 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) if (ret)
goto out_no_pci; goto out_no_pci;
...@@ -3506,7 +3506,7 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, ...@@ -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_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; trans->hw_id = (pdev->device << 16) + pdev->subsystem_device;
snprintf(trans->hw_id_str, sizeof(trans->hw_id_str), snprintf(trans->hw_id_str, sizeof(trans->hw_id_str),
"PCI ID: 0x%04X:0x%04X", pdev->device, pdev->subsystem_device); "PCI ID: 0x%04X:0x%04X", pdev->device, pdev->subsystem_device);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment