1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-09-16 08:39:20 +03:00
openwrt-xburst/package/mac80211/patches/563-ath9k_fix_full_sleep_tx.patch
nbd 6c9b7927d4 ath9k: do not put the hardware to full-sleep while tx is pending
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29133 3c298f89-4303-0410-b956-a3cf2f4a3e73
2011-11-14 21:21:24 +00:00

23 lines
809 B
Diff

--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -118,7 +118,7 @@ void ath9k_ps_restore(struct ath_softc *
if (--sc->ps_usecount != 0)
goto unlock;
- if (sc->ps_idle)
+ if (sc->ps_idle && !(sc->ps_flags & PS_WAIT_FOR_TX_ACK))
mode = ATH9K_PM_FULL_SLEEP;
else if (sc->ps_enabled &&
!(sc->ps_flags & (PS_WAIT_FOR_BEACON |
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1983,7 +1983,7 @@ static void ath_tx_complete(struct ath_s
skb_pull(skb, padsize);
}
- if (sc->ps_flags & PS_WAIT_FOR_TX_ACK) {
+ if ((sc->ps_flags & PS_WAIT_FOR_TX_ACK) && !txq->axq_depth) {
sc->ps_flags &= ~PS_WAIT_FOR_TX_ACK;
ath_dbg(common, ATH_DBG_PS,
"Going back to sleep after having received TX status (0x%lx)\n",