case STATION_POWER_SAVE_MODE:
wl1251_debug(DEBUG_PSM, "entering psm");
- ret = wl1251_acx_wake_up_conditions(wl,
- WAKE_UP_EVENT_DTIM_BITMAP,
- wl->listen_int);
- if (ret < 0)
- return ret;
+ if (wl->long_doze_mode != wl->long_doze_mode_set) {
+ wl1251_acx_wake_up_conditions(wl, wl->long_doze_mode
+ ? WAKE_UP_EVENT_DTIM_BITMAP
+ : WAKE_UP_EVENT_BEACON_BITMAP,
+ wl->listen_int);
+ wl->long_doze_mode_set = wl->long_doze_mode;
+ }
#if 0 /* problems seen on one router */
ret = wl1251_acx_bet_enable(wl, WL1251_ACX_BET_ENABLE,
if (ret < 0)
return ret;
- ret = wl1251_cmd_template_set(wl, CMD_DISCONNECT, NULL, 0);
+ ret = wl1251_cmd_disconnect(wl);
if (ret < 0)
return ret;
break;
if (ret < 0)
return ret;
- ret = wl1251_acx_wake_up_conditions(wl,
- WAKE_UP_EVENT_DTIM_BITMAP,
- wl->listen_int);
- if (ret < 0)
- return ret;
-
ret = wl1251_cmd_ps_mode(wl, CHIP_ACTIVE_MODE);
if (ret < 0)
return ret;