aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2010-04-01 04:38:22 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-04-06 16:55:13 -0400
commit50c500ad3da49f866628d60d49645f4f8f4ff92c (patch)
treed45422fa8fab45f8423e915de5cc9fb1f471a36d /drivers/net/wireless/wl12xx
parent606c1487ac894798121bc2c64d27c1953c5a6210 (diff)
wl1271: Configure a higher listen interval to AP upon association
Increase the fixed listen-interval max value configured to the mac80211 on driver init. This value will allow a larger value to be configured to the AP, which means the AP will buffer our frames longer. Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com> Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com> Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx')
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_conf.h7
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_main.c6
2 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_conf.h b/drivers/net/wireless/wl12xx/wl1271_conf.h
index 0b34b6261176..d76ae03762a3 100644
--- a/drivers/net/wireless/wl12xx/wl1271_conf.h
+++ b/drivers/net/wireless/wl12xx/wl1271_conf.h
@@ -977,6 +977,13 @@ struct conf_conn_settings {
977 * Range: 1000 - 3600000 977 * Range: 1000 - 3600000
978 */ 978 */
979 u32 keep_alive_interval; 979 u32 keep_alive_interval;
980
981 /*
982 * Maximum listen interval supported by the driver in units of beacons.
983 *
984 * Range: u16
985 */
986 u8 max_listen_interval;
980}; 987};
981 988
982enum { 989enum {
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c
index 247f4079832e..5c32d8d72361 100644
--- a/drivers/net/wireless/wl12xx/wl1271_main.c
+++ b/drivers/net/wireless/wl12xx/wl1271_main.c
@@ -219,7 +219,7 @@ static struct conf_drv_settings default_conf = {
219 }, 219 },
220 .conn = { 220 .conn = {
221 .wake_up_event = CONF_WAKE_UP_EVENT_DTIM, 221 .wake_up_event = CONF_WAKE_UP_EVENT_DTIM,
222 .listen_interval = 0, 222 .listen_interval = 1,
223 .bcn_filt_mode = CONF_BCN_FILT_MODE_ENABLED, 223 .bcn_filt_mode = CONF_BCN_FILT_MODE_ENABLED,
224 .bcn_filt_ie_count = 1, 224 .bcn_filt_ie_count = 1,
225 .bcn_filt_ie = { 225 .bcn_filt_ie = {
@@ -266,7 +266,8 @@ static struct conf_drv_settings default_conf = {
266 .bet_enable = CONF_BET_MODE_ENABLE, 266 .bet_enable = CONF_BET_MODE_ENABLE,
267 .bet_max_consecutive = 10, 267 .bet_max_consecutive = 10,
268 .psm_entry_retries = 3, 268 .psm_entry_retries = 3,
269 .keep_alive_interval = 55000 269 .keep_alive_interval = 55000,
270 .max_listen_interval = 20,
270 }, 271 },
271 .init = { 272 .init = {
272 .radioparam = { 273 .radioparam = {
@@ -2253,6 +2254,7 @@ int wl1271_init_ieee80211(struct wl1271 *wl)
2253 /* unit us */ 2254 /* unit us */
2254 /* FIXME: find a proper value */ 2255 /* FIXME: find a proper value */
2255 wl->hw->channel_change_time = 10000; 2256 wl->hw->channel_change_time = 10000;
2257 wl->hw->max_listen_interval = wl->conf.conn.max_listen_interval;
2256 2258
2257 wl->hw->flags = IEEE80211_HW_SIGNAL_DBM | 2259 wl->hw->flags = IEEE80211_HW_SIGNAL_DBM |
2258 IEEE80211_HW_NOISE_DBM | 2260 IEEE80211_HW_NOISE_DBM |