On Tue, 2009-10-27 at 17:36 +0200, Kalle Valo wrote: > From: Kalle Valo <kalle.valo@xxxxxxxxx> > > In TX path it was assumed that dynamic power save works only if > IEEE80211_HW_PS_NULLFUNC_STACK is set. But is not the case, there are > devices which have nullfunc support in hardware but need mac80211 > to handle dynamic power save timers, TI's wl1251 is one of them. > > The fix is to not check for IEEE80211_HW_PS_NULLFUNC_STACK in > is_dynamic_ps_enabled(), instead check IEEE80211_HW_SUPPORTS_PS and > IEEE80211_HW_SUPPORTS_DYNAMIC_PS flags and act accordingly. > > Tested with wl1251. > > Signed-off-by: Kalle Valo <kalle.valo@xxxxxxxxx> Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > --- > > net/mac80211/tx.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c > index c59ed84..66dab40 100644 > --- a/net/mac80211/tx.c > +++ b/net/mac80211/tx.c > @@ -1390,7 +1390,11 @@ static int ieee80211_skb_resize(struct ieee80211_local *local, > static bool need_dynamic_ps(struct ieee80211_local *local) > { > /* driver doesn't support power save */ > - if (!(local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK)) > + if (!(local->hw.flags & IEEE80211_HW_SUPPORTS_PS)) > + return false; > + > + /* hardware does dynamic power save */ > + if (local->hw.flags & IEEE80211_HW_SUPPORTS_DYNAMIC_PS) > return false; > > /* dynamic power save disabled */ > > -- 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