wl1251: Increase the beacon loss timeout value and handle regain event
authorVidhya Govindan <vidhya.govindan@nokia.com>
Tue, 17 Nov 2009 16:49:23 +0000 (18:49 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 18 Nov 2009 22:09:22 +0000 (17:09 -0500)
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>
drivers/net/wireless/wl12xx/wl1251_acx.h
drivers/net/wireless/wl12xx/wl1251_event.c

index 44a4b049459207ea5be6c0dfe26252aa11967ba5..652371432cd81c109bc8ac48d3066c8eed81101b 100644 (file)
@@ -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;
index 18c301ddcd7467e25d46c83a5c7ade3b472f037a..020d764f9c135d38838297a241b3709ba02b62a1 100644 (file)
@@ -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;
 }