iwlwifi: reset pci retry timeout
authorAbhijeet Kolekar <abhijeet.kolekar@intel.com>
Wed, 14 Apr 2010 17:27:00 +0000 (10:27 -0700)
committerReinette Chatre <reinette.chatre@intel.com>
Fri, 30 Apr 2010 22:34:30 +0000 (15:34 -0700)
We removed resetting of PCI_RETRY_TIMEOUT register
in merge of suspend resume work.
'Suspend and resume' resets the PCI configuration space, so we
have to disable the RETRY_TIMEOUT register again here.

Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
drivers/net/wireless/iwlwifi/iwl-core.c

index 1cbc22a180a7856035d4eafdc6dbfce1164ab598..1e11706dcf63630a661f09307fdbb93ae1acdccd 100644 (file)
@@ -2930,6 +2930,12 @@ int iwl_pci_resume(struct pci_dev *pdev)
        struct iwl_priv *priv = pci_get_drvdata(pdev);
        int ret;
 
+       /*
+        * We disable the RETRY_TIMEOUT register (0x41) to keep
+        * PCI Tx retries from interfering with C3 CPU state.
+        */
+       pci_write_config_byte(pdev, PCI_CFG_RETRY_TIMEOUT, 0x00);
+
        pci_set_power_state(pdev, PCI_D0);
        ret = pci_enable_device(pdev);
        if (ret)