aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVidhya Govindan <vidhya.govindan@nokia.com>2009-11-17 11:49:23 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-18 17:09:22 -0500
commit33d51facad8360cb9c55fd696431e2a477f16cc1 (patch)
tree7f74accddf8ce730dc7f526e205f5ddda52ebaab
parent72b57344a2a1f98c6838c2268fdc5ed5fae54cd8 (diff)
wl1251: Increase the beacon loss timeout value and handle regain event
This patch increases the number of beacons to be missed before generating SYNC TIMEOUT event. It increases the beacon timeout period to 500 microseconds, which gives enough time for the firmware to receive probe response or beacon. Also handled the regain event from firmware once it receives a probe response or beacon. Signed-off-by: Vidhya Govindan <vidhya.govindan@nokia.com> Reviewed-by: Janne Ylalehto <janne.ylalehto@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: Kalle Valo <kalle.valo@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-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 44a4b0494592..652371432cd8 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 {
463 u8 pad[3]; 463 u8 pad[3];
464} __attribute__ ((packed)); 464} __attribute__ ((packed));
465 465
466#define SYNCH_FAIL_DEFAULT_THRESHOLD 5 /* number of beacons */ 466#define SYNCH_FAIL_DEFAULT_THRESHOLD 10 /* number of beacons */
467#define NO_BEACON_DEFAULT_TIMEOUT (100) /* TU */ 467#define NO_BEACON_DEFAULT_TIMEOUT (500) /* in microseconds */
468 468
469struct acx_conn_monit_params { 469struct acx_conn_monit_params {
470 struct acx_header header; 470 struct acx_header header;
diff --git a/drivers/net/wireless/wl12xx/wl1251_event.c b/drivers/net/wireless/wl12xx/wl1251_event.c
index 18c301ddcd74..020d764f9c13 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)
86 ieee80211_beacon_loss(wl->vif); 86 ieee80211_beacon_loss(wl->vif);
87 } 87 }
88 88
89 if (vector & REGAINED_BSS_EVENT_ID) {
90 if (wl->psm_requested) {
91 ret = wl1251_ps_set_mode(wl, STATION_POWER_SAVE_MODE);
92 if (ret < 0)
93 return ret;
94 }
95 }
96
89 return 0; 97 return 0;
90} 98}
91 99