diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2013-07-29 23:05:18 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-07-31 08:56:34 +0200 |
commit | eabc4ac5d7606a57ee2b7308cb7323ea8f60183b (patch) | |
tree | c4248cd34d984d081d260d097d7ef1172886e46b | |
parent | 9186a1fd9ed190739423db84bc344d258ef3e3d7 (diff) | |
download | linux-stable-eabc4ac5d7606a57ee2b7308cb7323ea8f60183b.tar.gz linux-stable-eabc4ac5d7606a57ee2b7308cb7323ea8f60183b.tar.bz2 linux-stable-eabc4ac5d7606a57ee2b7308cb7323ea8f60183b.zip |
iwlwifi: pcie: disable L1 Active after pci_enable_device
As Arjan pointed out, we mustn't do anything related to PCI
configuration until the device is properly enabled with
pci_enable_device().
Cc: stable@vger.kernel.org
Reported-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/pcie/trans.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c index 96cfcdd39079..390e2f058aff 100644 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c @@ -1502,16 +1502,16 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, spin_lock_init(&trans_pcie->reg_lock); init_waitqueue_head(&trans_pcie->ucode_write_waitq); - /* 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 lot of power */ - pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1 | - PCIE_LINK_STATE_CLKPM); - if (pci_enable_device(pdev)) { err = -ENODEV; goto out_no_pci; } + /* 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 lot of power */ + pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1 | + PCIE_LINK_STATE_CLKPM); + pci_set_master(pdev); err = pci_set_dma_mask(pdev, DMA_BIT_MASK(36)); |