lkml.org 
[lkml]   [2010]   [Dec]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[019/289] ath9k: fix regression which prevents chip sleep after CAB data
    2.6.36-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Senthil Balasubramanian <senthilkumar@atheros.com>

    commit 3fac6dfdcd2b893c22b20a03dd1bf1af8b627c4b upstream.

    The patch:

    commit 293dc5dfdbcc16cde06e40a688394cc8ab083e48
    Author: Gabor Juhos <juhosg@openwrt.org>
    Date: Fri Jun 19 12:17:48 2009 +0200

    ath9k: remove ath_rx_ps_back_to_sleep helper

    This helper only clears the SC_OP_WAIT_FOR_{BEACON,CAB} flags.
    Remove it and clear these flags directly in the approptiate
    places instead.

    Changes-licensed-under: ISC
    Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>

    introduced a regression which forgot to lift the beacon flag
    after we received all broadcast and multicast data. This meant
    we never went to sleep consuming about ~650mW on idle. This pretty
    much broke power save completely.

    This patch has fixes for stable kernels [2.6.32+].

    Cc: Paul Stewart <pstew@google.com>
    Cc: Sameer Nanda <snanda@google.com>
    Cc: Gabor Juhos <juhosg@openwrt.org>
    Cc: Amod Bodas <amod.bodas@atheros.com>
    Signed-off-by: Senthil Balasubramanian <senthilkumar@atheros.com>
    Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/net/wireless/ath/ath9k/recv.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/net/wireless/ath/ath9k/recv.c
    +++ b/drivers/net/wireless/ath/ath9k/recv.c
    @@ -631,7 +631,7 @@ static void ath_rx_ps(struct ath_softc *
    * No more broadcast/multicast frames to be received at this
    * point.
    */
    - sc->ps_flags &= ~PS_WAIT_FOR_CAB;
    + sc->ps_flags &= ~(PS_WAIT_FOR_CAB | PS_WAIT_FOR_BEACON);
    ath_print(common, ATH_DBG_PS,
    "All PS CAB frames received, back to sleep\n");
    } else if ((sc->ps_flags & PS_WAIT_FOR_PSPOLL_DATA) &&



    \
     
     \ /
      Last update: 2010-12-08 03:03    [W:5.809 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site