diff options
author | Juuso Oikarinen <juuso.oikarinen@nokia.com> | 2009-11-02 13:22:11 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-11-02 15:43:34 -0500 |
commit | 19ad0715d8d9acc259ef02f83df767df2cf1eafe (patch) | |
tree | 330fff898975a7f3a17106046e939c4049200e68 /drivers/net/wireless/wl12xx/wl1271_main.c | |
parent | 3b775b4b27818130291e7716f3ce1e24664004c9 (diff) |
wl1271: Add retry implementation for PSM entries
PSM entries can fail (transmitting the corresponding null-func may not
be heard by the AP.) Previously, this scenario was not detected, and
out-of-sync between STA and AP could occur.
Add retry implementation for the entries to recover from the situation.
Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@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/wl1271_main.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1271_main.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c index 0ae506a2e90b..d2149fcd3cf1 100644 --- a/drivers/net/wireless/wl12xx/wl1271_main.c +++ b/drivers/net/wireless/wl12xx/wl1271_main.c | |||
@@ -222,7 +222,8 @@ static struct conf_drv_settings default_conf = { | |||
222 | .snr_pkt_avg_weight = 10 | 222 | .snr_pkt_avg_weight = 10 |
223 | }, | 223 | }, |
224 | .bet_enable = CONF_BET_MODE_ENABLE, | 224 | .bet_enable = CONF_BET_MODE_ENABLE, |
225 | .bet_max_consecutive = 100 | 225 | .bet_max_consecutive = 100, |
226 | .psm_entry_retries = 3 | ||
226 | }, | 227 | }, |
227 | .init = { | 228 | .init = { |
228 | .sr_err_tbl = { | 229 | .sr_err_tbl = { |
@@ -973,6 +974,7 @@ static void wl1271_op_stop(struct ieee80211_hw *hw) | |||
973 | wl->rx_counter = 0; | 974 | wl->rx_counter = 0; |
974 | wl->elp = false; | 975 | wl->elp = false; |
975 | wl->psm = 0; | 976 | wl->psm = 0; |
977 | wl->psm_entry_retry = 0; | ||
976 | wl->tx_queue_stopped = false; | 978 | wl->tx_queue_stopped = false; |
977 | wl->power_level = WL1271_DEFAULT_POWER_LEVEL; | 979 | wl->power_level = WL1271_DEFAULT_POWER_LEVEL; |
978 | wl->tx_blocks_available = 0; | 980 | wl->tx_blocks_available = 0; |
@@ -1822,6 +1824,7 @@ static int __devinit wl1271_probe(struct spi_device *spi) | |||
1822 | wl->elp = false; | 1824 | wl->elp = false; |
1823 | wl->psm = 0; | 1825 | wl->psm = 0; |
1824 | wl->psm_requested = false; | 1826 | wl->psm_requested = false; |
1827 | wl->psm_entry_retry = 0; | ||
1825 | wl->tx_queue_stopped = false; | 1828 | wl->tx_queue_stopped = false; |
1826 | wl->power_level = WL1271_DEFAULT_POWER_LEVEL; | 1829 | wl->power_level = WL1271_DEFAULT_POWER_LEVEL; |
1827 | wl->basic_rate_set = WL1271_DEFAULT_BASIC_RATE_SET; | 1830 | wl->basic_rate_set = WL1271_DEFAULT_BASIC_RATE_SET; |