From 62d9e800de8a0df483d600263f80e14600751ac3 Mon Sep 17 00:00:00 2001 From: nbd Date: Sat, 10 Mar 2012 12:59:28 +0000 Subject: ath9k: merge a fix for hardware full sleep git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30864 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/mac80211/patches/300-pending_work.patch | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'package/mac80211/patches/300-pending_work.patch') 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; -- cgit v1.2.3