summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJouni Malinen <jouni.malinen@atheros.com>2009-06-16 10:59:23 +0200
committerJohn W. Linville <linville@tuxdriver.com>2009-06-19 17:50:18 +0200
commit8451d22dad40a66416b8d9c0952efa09ec5398c5 (patch)
tree4e302f427f3ef745ea6393a075873755995a29a4 /drivers
parentrfkill: export persistent attribute in sysfs (diff)
downloadlinux-8451d22dad40a66416b8d9c0952efa09ec5398c5.tar.xz
linux-8451d22dad40a66416b8d9c0952efa09ec5398c5.zip
ath5k: avoid PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling
This reverts 'ath5k: remove dummy PCI "retry timeout" fix' on the same theory as in 'ath9k: Fix PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling'. Reported-by: Bob Copeland <me@bobcopeland.com> Cc: stable@kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath5k/base.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 55f7de09d134..fc5ba0e3a681 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -686,6 +686,13 @@ ath5k_pci_resume(struct pci_dev *pdev)
if (err)
return err;
+ /*
+ * Suspend/Resume resets the PCI configuration space, so we have to
+ * re-disable the RETRY_TIMEOUT register (0x41) to keep
+ * PCI Tx retries from interfering with C3 CPU state
+ */
+ pci_write_config_byte(pdev, 0x41, 0);
+
err = request_irq(pdev->irq, ath5k_intr, IRQF_SHARED, "ath", sc);
if (err) {
ATH5K_ERR(sc, "request_irq failed\n");