aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/wl1271_init.c
diff options
context:
space:
mode:
authorJuuso Oikarinen <juuso.oikarinen@nokia.com>2010-09-01 05:31:12 -0400
committerLuciano Coelho <luciano.coelho@nokia.com>2010-09-28 05:30:02 -0400
commit9987a9da3eda093ceeff14ad4926adb130a0d0ea (patch)
tree108d8164035b6aa7a4d8883b367ce4b093903665 /drivers/net/wireless/wl12xx/wl1271_init.c
parented484a16b495ee7e13cb28fd6ff6053d10657633 (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.c20
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)