diff options
author | Juuso Oikarinen <juuso.oikarinen@nokia.com> | 2010-09-01 05:31:12 -0400 |
---|---|---|
committer | Luciano Coelho <luciano.coelho@nokia.com> | 2010-09-28 05:30:02 -0400 |
commit | 9987a9da3eda093ceeff14ad4926adb130a0d0ea (patch) | |
tree | 108d8164035b6aa7a4d8883b367ce4b093903665 /drivers/net/wireless/wl12xx/wl1271_init.c | |
parent | ed484a16b495ee7e13cb28fd6ff6053d10657633 (diff) |
wl1271: Fix AC/TID default configuration
The WMM queue default configuration was incorrect, and caused uapsd mode
problems (among possible others.)
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>
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl1271_init.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1271_init.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_init.c b/drivers/net/wireless/wl12xx/wl1271_init.c index 5614a352528b..349571fe04b3 100644 --- a/drivers/net/wireless/wl12xx/wl1271_init.c +++ b/drivers/net/wireless/wl12xx/wl1271_init.c | |||
@@ -290,8 +290,16 @@ int wl1271_hw_init(struct wl1271 *wl) | |||
290 | if (ret < 0) | 290 | if (ret < 0) |
291 | goto out_free_memmap; | 291 | goto out_free_memmap; |
292 | 292 | ||
293 | /* Default TID configuration */ | 293 | /* Default TID/AC configuration */ |
294 | BUG_ON(wl->conf.tx.tid_conf_count != wl->conf.tx.ac_conf_count); | ||
294 | for (i = 0; i < wl->conf.tx.tid_conf_count; i++) { | 295 | for (i = 0; i < wl->conf.tx.tid_conf_count; i++) { |
296 | conf_ac = &wl->conf.tx.ac_conf[i]; | ||
297 | ret = wl1271_acx_ac_cfg(wl, conf_ac->ac, conf_ac->cw_min, | ||
298 | conf_ac->cw_max, conf_ac->aifsn, | ||
299 | conf_ac->tx_op_limit); | ||
300 | if (ret < 0) | ||
301 | goto out_free_memmap; | ||
302 | |||
295 | conf_tid = &wl->conf.tx.tid_conf[i]; | 303 | conf_tid = &wl->conf.tx.tid_conf[i]; |
296 | ret = wl1271_acx_tid_cfg(wl, conf_tid->queue_id, | 304 | ret = wl1271_acx_tid_cfg(wl, conf_tid->queue_id, |
297 | conf_tid->channel_type, | 305 | conf_tid->channel_type, |
@@ -304,16 +312,6 @@ int wl1271_hw_init(struct wl1271 *wl) | |||
304 | goto out_free_memmap; | 312 | goto out_free_memmap; |
305 | } | 313 | } |
306 | 314 | ||
307 | /* Default AC configuration */ | ||
308 | for (i = 0; i < wl->conf.tx.ac_conf_count; i++) { | ||
309 | conf_ac = &wl->conf.tx.ac_conf[i]; | ||
310 | ret = wl1271_acx_ac_cfg(wl, conf_ac->ac, conf_ac->cw_min, | ||
311 | conf_ac->cw_max, conf_ac->aifsn, | ||
312 | conf_ac->tx_op_limit); | ||
313 | if (ret < 0) | ||
314 | goto out_free_memmap; | ||
315 | } | ||
316 | |||
317 | /* Configure TX rate classes */ | 315 | /* Configure TX rate classes */ |
318 | ret = wl1271_acx_rate_policies(wl); | 316 | ret = wl1271_acx_rate_policies(wl); |
319 | if (ret < 0) | 317 | if (ret < 0) |