wlcore: don't enable BET for high basic rates
authorVictor Goldenshtein <victorg@ti.com>
Mon, 14 May 2012 10:55:47 +0000 (13:55 +0300)
committerLuciano Coelho <coelho@ti.com>
Tue, 5 Jun 2012 17:24:32 +0000 (20:24 +0300)
The beacon early termination is not relevant for
high basic rates, which doesn't contribute
anything to the PS and only adds unnecessary FW
work.

Enable BET only if the basic rate is less than 9
Mbps.

Signed-off-by: Ziv Riesel <zivriesel@ti.com>
Signed-off-by: Victor Goldenshtein <victorg@ti.com>
Signed-off-by: Igal Chernobelsky <igalc@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/ti/wlcore/ps.c

index 958535dee9f3440d2526ead024cc1082d155a543..47e81b32f7da93a6dc2622b53f748509b485e177 100644 (file)
@@ -193,8 +193,12 @@ int wl1271_ps_set_mode(struct wl1271 *wl, struct wl12xx_vif *wlvif,
 
                set_bit(WLVIF_FLAG_IN_PS, &wlvif->flags);
 
-               /* enable beacon early termination. Not relevant for 5GHz */
-               if (wlvif->band == IEEE80211_BAND_2GHZ) {
+               /*
+                * enable beacon early termination.
+                * Not relevant for 5GHz and for high rates.
+                */
+               if ((wlvif->band == IEEE80211_BAND_2GHZ) &&
+                   (wlvif->basic_rate < CONF_HW_BIT_RATE_9MBPS)) {
                        ret = wl1271_acx_bet_enable(wl, wlvif, true);
                        if (ret < 0)
                                return ret;
@@ -204,7 +208,8 @@ int wl1271_ps_set_mode(struct wl1271 *wl, struct wl12xx_vif *wlvif,
                wl1271_debug(DEBUG_PSM, "leaving psm");
 
                /* disable beacon early termination */
-               if (wlvif->band == IEEE80211_BAND_2GHZ) {
+               if ((wlvif->band == IEEE80211_BAND_2GHZ) &&
+                   (wlvif->basic_rate < CONF_HW_BIT_RATE_9MBPS)) {
                        ret = wl1271_acx_bet_enable(wl, wlvif, false);
                        if (ret < 0)
                                return ret;