summaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/300-pending_work.patch
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-03-10 12:59:28 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2012-03-10 12:59:28 +0000
commit62d9e800de8a0df483d600263f80e14600751ac3 (patch)
treec344065ab10f6780aee50168a7ba151104217e18 /package/mac80211/patches/300-pending_work.patch
parent669f5554cb75b36c42fb42b49d6c4e2d35eb3e62 (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.patch23
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 b96e15488..70c823a17 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;