diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-03-10 12:59:28 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-03-10 12:59:28 +0000 |
commit | 1812fe63b223bfcc286778ceb51d0af615df4858 (patch) | |
tree | e72bcbc8dccd5acdd90fd1e7f914d197153a2f25 /package/mac80211/patches/300-pending_work.patch | |
parent | 414f23e49dbc6307252f57219262faaa50ec9ee8 (diff) | |
download | master-31e0f0ae-1812fe63b223bfcc286778ceb51d0af615df4858.tar.gz master-31e0f0ae-1812fe63b223bfcc286778ceb51d0af615df4858.tar.bz2 master-31e0f0ae-1812fe63b223bfcc286778ceb51d0af615df4858.zip |
ath9k: merge a fix for hardware full sleep
SVN-Revision: 30864
Diffstat (limited to 'package/mac80211/patches/300-pending_work.patch')
-rw-r--r-- | package/mac80211/patches/300-pending_work.patch | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch index b96e154884..70c823a177 100644 --- a/package/mac80211/patches/300-pending_work.patch +++ b/package/mac80211/patches/300-pending_work.patch @@ -1390,7 +1390,26 @@ EXPORT_SYMBOL(ath9k_hw_beaconq_setup); --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -2300,6 +2300,7 @@ static int ath9k_tx_last_beacon(struct i +@@ -118,13 +118,15 @@ void ath9k_ps_restore(struct ath_softc * + if (--sc->ps_usecount != 0) + goto unlock; + +- if (sc->ps_idle && (sc->ps_flags & PS_WAIT_FOR_TX_ACK)) ++ if (sc->ps_flags & PS_WAIT_FOR_TX_ACK) ++ goto unlock; ++ ++ if (sc->ps_idle) + mode = ATH9K_PM_FULL_SLEEP; + else if (sc->ps_enabled && + !(sc->ps_flags & (PS_WAIT_FOR_BEACON | + PS_WAIT_FOR_CAB | +- PS_WAIT_FOR_PSPOLL_DATA | +- PS_WAIT_FOR_TX_ACK))) ++ PS_WAIT_FOR_PSPOLL_DATA))) + mode = ATH9K_PM_NETWORK_SLEEP; + else + goto unlock; +@@ -2300,6 +2302,7 @@ static int ath9k_tx_last_beacon(struct i struct ath_vif *avp; struct ath_buf *bf; struct ath_tx_status ts; @@ -1398,7 +1417,7 @@ int status; vif = sc->beacon.bslot[0]; -@@ -2310,7 +2311,7 @@ static int ath9k_tx_last_beacon(struct i +@@ -2310,7 +2313,7 @@ static int ath9k_tx_last_beacon(struct i if (!avp->is_bslot_active) return 0; |