diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-03-10 12:59:28 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-03-10 12:59:28 +0000 |
commit | 62d9e800de8a0df483d600263f80e14600751ac3 (patch) | |
tree | c344065ab10f6780aee50168a7ba151104217e18 /package/mac80211/patches/300-pending_work.patch | |
parent | 669f5554cb75b36c42fb42b49d6c4e2d35eb3e62 (diff) |
ath9k: merge a fix for hardware full sleep
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30864 3c298f89-4303-0410-b956-a3cf2f4a3e73
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; |