Vivek Natarajan wrote: > Restore network sleep mode in isr if power save is enabled. > > Signed-off-by: Vivek Natarajan <vnatarajan@xxxxxxxxxxx> > --- > drivers/net/wireless/ath9k/ath9k.h | 3 ++- > drivers/net/wireless/ath9k/main.c | 2 ++ > 2 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/wireless/ath9k/ath9k.h b/drivers/net/wireless/ath9k/ath9k.h > index 6481ea4..69292f3 100644 > --- a/drivers/net/wireless/ath9k/ath9k.h > +++ b/drivers/net/wireless/ath9k/ath9k.h > @@ -677,7 +677,8 @@ static inline void ath9k_ps_wakeup(struct ath_softc *sc) > static inline void ath9k_ps_restore(struct ath_softc *sc) > { > if (atomic_dec_and_test(&sc->ps_usecount)) > - if (sc->hw->conf.flags & IEEE80211_CONF_PS) > + if ((sc->hw->conf.flags & IEEE80211_CONF_PS) && > + !(sc->sc_flags & SC_OP_WAIT_FOR_BEACON)) > ath9k_hw_setpower(sc->sc_ah, > sc->sc_ah->restore_mode); > } > diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c > index fd6cc73..96194ef 100644 > --- a/drivers/net/wireless/ath9k/main.c > +++ b/drivers/net/wireless/ath9k/main.c > @@ -516,6 +516,7 @@ irqreturn_t ath_isr(int irq, void *dev) > return IRQ_NONE; > > sc->intrstatus = status; > + ath9k_ps_wakeup(sc); > > if (status & ATH9K_INT_FATAL) { > /* need a chip reset */ > @@ -581,6 +582,7 @@ irqreturn_t ath_isr(int irq, void *dev) > sched = true; > } > } > + ath9k_ps_restore(sc); > } while (0); > This needs proper locking. Sujith -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html