aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_acx.h4
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_event.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1251_acx.h b/drivers/net/wireless/wl12xx/wl1251_acx.h
index 44a4b049459..652371432cd 100644
--- a/drivers/net/wireless/wl12xx/wl1251_acx.h
+++ b/drivers/net/wireless/wl12xx/wl1251_acx.h
@@ -463,8 +463,8 @@ struct acx_beacon_filter_ie_table {
u8 pad[3];
} __attribute__ ((packed));
-#define SYNCH_FAIL_DEFAULT_THRESHOLD 5 /* number of beacons */
-#define NO_BEACON_DEFAULT_TIMEOUT (100) /* TU */
+#define SYNCH_FAIL_DEFAULT_THRESHOLD 10 /* number of beacons */
+#define NO_BEACON_DEFAULT_TIMEOUT (500) /* in microseconds */
struct acx_conn_monit_params {
struct acx_header header;
diff --git a/drivers/net/wireless/wl12xx/wl1251_event.c b/drivers/net/wireless/wl12xx/wl1251_event.c
index 18c301ddcd7..020d764f9c1 100644
--- a/drivers/net/wireless/wl12xx/wl1251_event.c
+++ b/drivers/net/wireless/wl12xx/wl1251_event.c
@@ -86,6 +86,14 @@ static int wl1251_event_process(struct wl1251 *wl, struct event_mailbox *mbox)
ieee80211_beacon_loss(wl->vif);
}
+ if (vector & REGAINED_BSS_EVENT_ID) {
+ if (wl->psm_requested) {
+ ret = wl1251_ps_set_mode(wl, STATION_POWER_SAVE_MODE);
+ if (ret < 0)
+ return ret;
+ }
+ }
+
return 0;
}