Search Linux Wireless

Re: [PATCH] mac80211: when receiving DTIM disable power-save mode only if it was enabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux