aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-10-03 15:07:50 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-10-05 16:26:17 -0400
commit93170516a4d64319ffcc43bc9dd61f12775bd297 (patch)
tree2f601e5bcc94621967587319ff5e9a164d5e50c2 /drivers/net
parent6825a26c2dc21eb4f8df9c06d3786ddec97cf53b (diff)
ath9k: fix ASPM initialization on resume
ath_pci_aspm_init is only called on card init, so PCI registers get reset after a suspend/resume cycle. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/ath9k/pci.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
index 0e630a99b68b..270abf720f3e 100644
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
@@ -324,6 +324,9 @@ static int ath_pci_suspend(struct device *device)
324static int ath_pci_resume(struct device *device) 324static int ath_pci_resume(struct device *device)
325{ 325{
326 struct pci_dev *pdev = to_pci_dev(device); 326 struct pci_dev *pdev = to_pci_dev(device);
327 struct ieee80211_hw *hw = pci_get_drvdata(pdev);
328 struct ath_softc *sc = hw->priv;
329 struct ath_common *common = ath9k_hw_common(sc->sc_ah);
327 u32 val; 330 u32 val;
328 331
329 /* 332 /*
@@ -335,6 +338,8 @@ static int ath_pci_resume(struct device *device)
335 if ((val & 0x0000ff00) != 0) 338 if ((val & 0x0000ff00) != 0)
336 pci_write_config_dword(pdev, 0x40, val & 0xffff00ff); 339 pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
337 340
341 ath_pci_aspm_init(common);
342
338 return 0; 343 return 0;
339} 344}
340 345