diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-10-03 15:07:50 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-10-05 16:26:17 -0400 |
commit | 93170516a4d64319ffcc43bc9dd61f12775bd297 (patch) | |
tree | 2f601e5bcc94621967587319ff5e9a164d5e50c2 /drivers/net | |
parent | 6825a26c2dc21eb4f8df9c06d3786ddec97cf53b (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.c | 5 |
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) | |||
324 | static int ath_pci_resume(struct device *device) | 324 | static 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 | ||