ath9k: Wake up for RX filter changes
authorJouni Malinen <jouni.malinen@atheros.com>
Tue, 19 May 2009 14:01:41 +0000 (17:01 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 20 May 2009 18:46:33 +0000 (14:46 -0400)
We must make sure the chip is awake when changing the RX filter
parameters. This could have caused problems, e.g., when changing the
interface to promiscuous mode while in sleep mode.

Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/main.c

index d2ef9732c1d9717f66f9e296d5db90be68ca419f..d6545b3538b1a97afcfa3879782cfcdefff46c58 100644 (file)
@@ -2428,8 +2428,10 @@ static void ath9k_configure_filter(struct ieee80211_hw *hw,
        *total_flags &= SUPPORTED_FILTERS;
 
        sc->rx.rxfilter = *total_flags;
+       ath9k_ps_wakeup(sc);
        rfilt = ath_calcrxfilter(sc);
        ath9k_hw_setrxfilter(sc->sc_ah, rfilt);
+       ath9k_ps_restore(sc);
 
        DPRINTF(sc, ATH_DBG_CONFIG, "Set HW RX filter: 0x%x\n", sc->rx.rxfilter);
 }