wl12xx: enable/disable BET with AUTO_PS/ACTIVE
authorEyal Shapira <eyal@wizery.com>
Tue, 31 Jan 2012 09:57:24 +0000 (11:57 +0200)
committerLuciano Coelho <coelho@ti.com>
Wed, 15 Feb 2012 06:38:32 +0000 (08:38 +0200)
While the FW with dynamic PS controls BET when going to PSM and back
internally within the FW, there's still a need to enable it from the driver
at least once (so enable on every entry to AUTO_PS)
and disable it once we explicitly go back to STATION_ACTIVE_MODE.
BET isn't relevant for 5GHz

Signed-off-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/ps.c

index 5074c2af17c0a213c8844a4a24c7b6af7cbaa3d8..d7a91d3c398dfac18af7831ef8c7e3ae378ff4c9 100644 (file)
@@ -181,6 +181,13 @@ int wl1271_ps_set_mode(struct wl1271 *wl, struct wl12xx_vif *wlvif,
                        return ret;
 
                set_bit(WLVIF_FLAG_PSM, &wlvif->flags);
+
+               /* enable beacon early termination. Not relevant for 5GHz */
+               if (wlvif->band == IEEE80211_BAND_2GHZ) {
+                       ret = wl1271_acx_bet_enable(wl, wlvif, true);
+                       if (ret < 0)
+                               return ret;
+               }
                break;
        case STATION_ACTIVE_MODE:
                wl1271_debug(DEBUG_PSM, "leaving psm");