From: Jouni Malinen Date: Tue, 16 Jun 2009 08:59:23 +0000 (+0300) Subject: ath5k: avoid PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling X-Git-Tag: v2.6.30.1~24 X-Git-Url: https://git.fsl.cs.sunysb.edu/?a=commitdiff_plain;h=42848904e9e78a3aae7c03b1539268ef82114017;p=unionfs-2.6.39.y.git ath5k: avoid PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling commit 8451d22dad40a66416b8d9c0952efa09ec5398c5 upstream. 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 Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c index 32df27a9c7a..409f022992b 100644 --- a/drivers/net/wireless/ath5k/base.c +++ b/drivers/net/wireless/ath5k/base.c @@ -685,6 +685,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");