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>
This commit is contained in:
Juuso Oikarinen 2010-04-01 11:38:22 +03:00 committed by John W. Linville
parent 606c1487ac
commit 50c500ad3d
2 changed files with 11 additions and 2 deletions

View File

@ -977,6 +977,13 @@ struct conf_conn_settings {
* Range: 1000 - 3600000 * Range: 1000 - 3600000
*/ */
u32 keep_alive_interval; u32 keep_alive_interval;
/*
* Maximum listen interval supported by the driver in units of beacons.
*
* Range: u16
*/
u8 max_listen_interval;
}; };
enum { enum {

View File

@ -219,7 +219,7 @@ static struct conf_drv_settings default_conf = {
}, },
.conn = { .conn = {
.wake_up_event = CONF_WAKE_UP_EVENT_DTIM, .wake_up_event = CONF_WAKE_UP_EVENT_DTIM,
.listen_interval = 0, .listen_interval = 1,
.bcn_filt_mode = CONF_BCN_FILT_MODE_ENABLED, .bcn_filt_mode = CONF_BCN_FILT_MODE_ENABLED,
.bcn_filt_ie_count = 1, .bcn_filt_ie_count = 1,
.bcn_filt_ie = { .bcn_filt_ie = {
@ -266,7 +266,8 @@ static struct conf_drv_settings default_conf = {
.bet_enable = CONF_BET_MODE_ENABLE, .bet_enable = CONF_BET_MODE_ENABLE,
.bet_max_consecutive = 10, .bet_max_consecutive = 10,
.psm_entry_retries = 3, .psm_entry_retries = 3,
.keep_alive_interval = 55000 .keep_alive_interval = 55000,
.max_listen_interval = 20,
}, },
.init = { .init = {
.radioparam = { .radioparam = {
@ -2253,6 +2254,7 @@ int wl1271_init_ieee80211(struct wl1271 *wl)
/* unit us */ /* unit us */
/* FIXME: find a proper value */ /* FIXME: find a proper value */
wl->hw->channel_change_time = 10000; wl->hw->channel_change_time = 10000;
wl->hw->max_listen_interval = wl->conf.conn.max_listen_interval;
wl->hw->flags = IEEE80211_HW_SIGNAL_DBM | wl->hw->flags = IEEE80211_HW_SIGNAL_DBM |
IEEE80211_HW_NOISE_DBM | IEEE80211_HW_NOISE_DBM |