aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/wl1271_main.c
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2009-11-02 13:22:11 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-02 15:43:34 -0500
commit19ad0715d8d9acc259ef02f83df767df2cf1eafe (patch)
tree330fff898975a7f3a17106046e939c4049200e68 /drivers/net/wireless/wl12xx/wl1271_main.c
parent3b775b4b27818130291e7716f3ce1e24664004c9 (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.c5
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;