wl12xx: flush Tx during suspend and 802.11h chan switch
authorArik Nemtsov <arik@wizery.com>
Mon, 27 Feb 2012 22:41:33 +0000 (00:41 +0200)
committerLuciano Coelho <coelho@ti.com>
Tue, 28 Feb 2012 11:25:10 +0000 (13:25 +0200)
Flush our Tx queues before suspending or changing the channel due to a
channel_switch element in the AP beacon.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/main.c

index 712e385301532242892b287c69963ddf403f5738..ad1a4addaab59f61f62714d3bc7a0ba029ef9d83 100644 (file)
@@ -1737,6 +1737,8 @@ static int wl1271_op_suspend(struct ieee80211_hw *hw,
        wl1271_debug(DEBUG_MAC80211, "mac80211 suspend wow=%d", !!wow);
        WARN_ON(!wow || !wow->any);
 
+       wl1271_tx_flush(wl);
+
        wl->wow_enabled = true;
        wl12xx_for_each_wlvif(wl, wlvif) {
                ret = wl1271_configure_suspend(wl, wlvif);
@@ -4496,6 +4498,8 @@ static void wl12xx_op_channel_switch(struct ieee80211_hw *hw,
 
        wl1271_debug(DEBUG_MAC80211, "mac80211 channel switch");
 
+       wl1271_tx_flush(wl);
+
        mutex_lock(&wl->mutex);
 
        if (unlikely(wl->state == WL1271_STATE_OFF)) {