forked from luck/tmp_suning_uos_patched
ath9k: fix going to full-sleep on PS idle
The check for PS_WAIT_FOR_TX_ACK was inverted, the hardware should only go to full sleep if no tx is pending. Reported-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Felix Fietkau <nbd@openwrt.org> Cc: stable@vger.kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
ffb1c56a97
commit
c1afdaff90
@ -118,13 +118,15 @@ void ath9k_ps_restore(struct ath_softc *sc)
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user