diff options
author | Juuso Oikarinen <juuso.oikarinen@nokia.com> | 2010-04-01 04:38:22 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-04-06 16:55:13 -0400 |
commit | 50c500ad3da49f866628d60d49645f4f8f4ff92c (patch) | |
tree | d45422fa8fab45f8423e915de5cc9fb1f471a36d /drivers/net/wireless/wl12xx | |
parent | 606c1487ac894798121bc2c64d27c1953c5a6210 (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.h | 7 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1271_main.c | 6 |
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 | ||
982 | enum { | 989 | enum { |
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 | |