diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-27 15:35:51 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-27 15:35:51 -0500 |
commit | 7205649778ca4a110d6098f8defd7312f0bb7289 (patch) | |
tree | 1e056fcdf578a62e5639e0a2b5cb8cd393115491 /drivers/net/wireless/ath/ath9k/main.c | |
parent | 0b711cac8b9e604c93b32ca6e0b6b73261056d65 (diff) | |
parent | 4bb9ebc78097376b3734c6d3001a96aecac0f7bb (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (43 commits)
bnx2: Eliminate AER error messages on systems not supporting it
cnic: Fix big endian bug
xfrm6: Don't forget to propagate peer into ipsec route.
tg3: Use new VLAN code
bonding: update documentation - alternate configuration.
TCP: fix a bug that triggers large number of TCP RST by mistake
MAINTAINERS: remove Reinette Chatre as iwlwifi maintainer
rt2x00: add device id for windy31 usb device
mac80211: fix a crash in ieee80211_beacon_get_tim on change_interface
ipv6: Revert 'administrative down' address handling changes.
textsearch: doc - fix spelling in lib/textsearch.c.
USB NET KL5KUSB101: Fix mem leak in error path of kaweth_download_firmware()
pch_gbe: don't use flush_scheduled_work()
bnx2: Always set ETH_FLAG_TXVLAN
net: clear heap allocation for ethtool_get_regs()
ipv6: Always clone offlink routes.
dcbnl: make get_app handling symmetric for IEEE and CEE DCBx
tcp: fix bug in listening_get_next()
inetpeer: Use correct AVL tree base pointer in inet_getpeer().
GRO: fix merging a paged skb after non-paged skbs
...
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/main.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index f90a6ca94a76..c79c97be6cd4 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -592,14 +592,12 @@ void ath9k_tasklet(unsigned long data) | |||
592 | u32 status = sc->intrstatus; | 592 | u32 status = sc->intrstatus; |
593 | u32 rxmask; | 593 | u32 rxmask; |
594 | 594 | ||
595 | ath9k_ps_wakeup(sc); | ||
596 | |||
597 | if (status & ATH9K_INT_FATAL) { | 595 | if (status & ATH9K_INT_FATAL) { |
598 | ath_reset(sc, true); | 596 | ath_reset(sc, true); |
599 | ath9k_ps_restore(sc); | ||
600 | return; | 597 | return; |
601 | } | 598 | } |
602 | 599 | ||
600 | ath9k_ps_wakeup(sc); | ||
603 | spin_lock(&sc->sc_pcu_lock); | 601 | spin_lock(&sc->sc_pcu_lock); |
604 | 602 | ||
605 | if (!ath9k_hw_check_alive(ah)) | 603 | if (!ath9k_hw_check_alive(ah)) |
@@ -969,6 +967,7 @@ int ath_reset(struct ath_softc *sc, bool retry_tx) | |||
969 | /* Stop ANI */ | 967 | /* Stop ANI */ |
970 | del_timer_sync(&common->ani.timer); | 968 | del_timer_sync(&common->ani.timer); |
971 | 969 | ||
970 | ath9k_ps_wakeup(sc); | ||
972 | spin_lock_bh(&sc->sc_pcu_lock); | 971 | spin_lock_bh(&sc->sc_pcu_lock); |
973 | 972 | ||
974 | ieee80211_stop_queues(hw); | 973 | ieee80211_stop_queues(hw); |
@@ -1015,6 +1014,7 @@ int ath_reset(struct ath_softc *sc, bool retry_tx) | |||
1015 | 1014 | ||
1016 | /* Start ANI */ | 1015 | /* Start ANI */ |
1017 | ath_start_ani(common); | 1016 | ath_start_ani(common); |
1017 | ath9k_ps_restore(sc); | ||
1018 | 1018 | ||
1019 | return r; | 1019 | return r; |
1020 | } | 1020 | } |
@@ -1701,7 +1701,9 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed) | |||
1701 | skip_chan_change: | 1701 | skip_chan_change: |
1702 | if (changed & IEEE80211_CONF_CHANGE_POWER) { | 1702 | if (changed & IEEE80211_CONF_CHANGE_POWER) { |
1703 | sc->config.txpowlimit = 2 * conf->power_level; | 1703 | sc->config.txpowlimit = 2 * conf->power_level; |
1704 | ath9k_ps_wakeup(sc); | ||
1704 | ath_update_txpow(sc); | 1705 | ath_update_txpow(sc); |
1706 | ath9k_ps_restore(sc); | ||
1705 | } | 1707 | } |
1706 | 1708 | ||
1707 | spin_lock_bh(&sc->wiphy_lock); | 1709 | spin_lock_bh(&sc->wiphy_lock); |