aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/main.c
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2011-04-07 15:52:05 +0300
committerLuciano Coelho <coelho@ti.com>2011-05-02 10:26:02 +0300
commitcb5ae0530e0e2af86d128ce758645b6b4a9132e1 (patch)
tree710a3fe0e22480df40f6d4d1ee0f050ce85203c7 /drivers/net/wireless/wl12xx/main.c
parent30df14d0d35dd166d50b8ea80d5f0b7ef1edb6da (diff)
downloadkernel_samsung_smdk4412-cb5ae0530e0e2af86d128ce758645b6b4a9132e1.zip
kernel_samsung_smdk4412-cb5ae0530e0e2af86d128ce758645b6b4a9132e1.tar.gz
kernel_samsung_smdk4412-cb5ae0530e0e2af86d128ce758645b6b4a9132e1.tar.bz2
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/main.c')
-rw-r--r--drivers/net/wireless/wl12xx/main.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 1dd735c..53a8e23 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,
}
}
+ if (changed & BSS_CHANGED_IBSS) {
+ wl1271_debug(DEBUG_ADHOC, "ibss_joined: %d",
+ bss_conf->ibss_joined);
+
+ if (bss_conf->ibss_joined) {
+ u32 rates = bss_conf->basic_rates;
+ wl->basic_rate_set = wl1271_tx_enabled_rates_get(wl,
+ rates);
+ wl->basic_rate = wl1271_tx_min_rate_get(wl);
+
+ /* by default, use 11b rates */
+ wl->rate_set = CONF_TX_IBSS_DEFAULT_RATES;
+ ret = wl1271_acx_sta_rate_policies(wl);
+ if (ret < 0)
+ goto out;
+ }
+ }
+
ret = wl1271_bss_erp_info_changed(wl, bss_conf, changed);
if (ret < 0)
goto out;