aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2011-04-07 08:52:05 -0400
committerLuciano Coelho <coelho@ti.com>2011-05-02 03:26:02 -0400
commitcb5ae0530e0e2af86d128ce758645b6b4a9132e1 (patch)
tree710a3fe0e22480df40f6d4d1ee0f050ce85203c7 /drivers/net/wireless/wl12xx
parent30df14d0d35dd166d50b8ea80d5f0b7ef1edb6da (diff)
wl12xx: configure rates when working in ibss mode
When working in ibss mode, we don't configure rate policy per station (as we use the same link for multiple stations), so currently the 1mb/s rate is being used. Instead, configure the firmware to use the whole 11b rates by default. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx')
-rw-r--r--drivers/net/wireless/wl12xx/conf.h7
-rw-r--r--drivers/net/wireless/wl12xx/main.c18
2 files changed, 25 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/conf.h b/drivers/net/wireless/wl12xx/conf.h
index d16094f2604f..5551d9d4016b 100644
--- a/drivers/net/wireless/wl12xx/conf.h
+++ b/drivers/net/wireless/wl12xx/conf.h
@@ -516,6 +516,13 @@ struct conf_rx_settings {
516#define CONF_TX_AP_DEFAULT_MGMT_RATES (CONF_HW_BIT_RATE_1MBPS | \ 516#define CONF_TX_AP_DEFAULT_MGMT_RATES (CONF_HW_BIT_RATE_1MBPS | \
517 CONF_HW_BIT_RATE_2MBPS | CONF_HW_BIT_RATE_5_5MBPS) 517 CONF_HW_BIT_RATE_2MBPS | CONF_HW_BIT_RATE_5_5MBPS)
518 518
519/*
520 * Default rates for working as IBSS. use 11b rates
521 */
522#define CONF_TX_IBSS_DEFAULT_RATES (CONF_HW_BIT_RATE_1MBPS | \
523 CONF_HW_BIT_RATE_2MBPS | CONF_HW_BIT_RATE_5_5MBPS | \
524 CONF_HW_BIT_RATE_11MBPS);
525
519struct conf_tx_rate_class { 526struct conf_tx_rate_class {
520 527
521 /* 528 /*
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 1dd735cc38b1..53a8e2357ccf 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -2509,6 +2509,24 @@ static void wl1271_bss_info_changed_ap(struct wl1271 *wl,
2509 } 2509 }
2510 } 2510 }
2511 2511
2512 if (changed & BSS_CHANGED_IBSS) {
2513 wl1271_debug(DEBUG_ADHOC, "ibss_joined: %d",
2514 bss_conf->ibss_joined);
2515
2516 if (bss_conf->ibss_joined) {
2517 u32 rates = bss_conf->basic_rates;
2518 wl->basic_rate_set = wl1271_tx_enabled_rates_get(wl,
2519 rates);
2520 wl->basic_rate = wl1271_tx_min_rate_get(wl);
2521
2522 /* by default, use 11b rates */
2523 wl->rate_set = CONF_TX_IBSS_DEFAULT_RATES;
2524 ret = wl1271_acx_sta_rate_policies(wl);
2525 if (ret < 0)
2526 goto out;
2527 }
2528 }
2529
2512 ret = wl1271_bss_erp_info_changed(wl, bss_conf, changed); 2530 ret = wl1271_bss_erp_info_changed(wl, bss_conf, changed);
2513 if (ret < 0) 2531 if (ret < 0)
2514 goto out; 2532 goto out;