On 19 mrt. 2012, at 14:37, Ronald Wahl <ronald.wahl@xxxxxxxxxxx> wrote: > When receiving DTIM we currently disable power save mode in the > hardware unconditionally, i.e. also when the hardware was not sleeping. > This causes trouble with at least one wireless chipset (Ralink RT3572). > When the hardware is not sleeping and we send a wakeup command (e.g. > this happens after a scan) then a significant decrease of the link > quality or a disconnect may occur. > Disabling power save mode only when it was enabled prevents this issue. > > Signed-off-by: Ronald Wahl <ronald.wahl@xxxxxxxxxxx> Reviewed-by: Gertjan van Wingerde <gwingerde@xxxxxxxxx> Obviously rt2x00 is the only one that seems to need this, but simply replicating maintaining the PS state inside rt2x00 while mac80211 already does this doesn't seem right to me. > --- > Index: linux/net/mac80211/mlme.c > =================================================================== > --- linux/net/mac80211/mlme.c (revision 213137) > +++ linux/net/mac80211/mlme.c (working copy) > @@ -1922,9 +1922,11 @@ > if (local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK) { > if (directed_tim) { > if (local->hw.conf.dynamic_ps_timeout > 0) { > - local->hw.conf.flags &= ~IEEE80211_CONF_PS; > - ieee80211_hw_config(local, > - IEEE80211_CONF_CHANGE_PS); > + if (local->hw.conf.flags & IEEE80211_CONF_PS) { > + local->hw.conf.flags &= ~IEEE80211_CONF_PS; > + ieee80211_hw_config(local, > + IEEE80211_CONF_CHANGE_PS); > + } > ieee80211_send_nullfunc(local, sdata, 0); > } else { > local->pspolling = true; > -- > 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 -- 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