aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLuciano Coelho <coelho@ti.com>2012-05-10 05:14:14 -0400
committerLuciano Coelho <coelho@ti.com>2012-06-05 08:58:36 -0400
commit60462b4885450410df03cf3829367b285baf9ab8 (patch)
tree8febdbae53d6b17410c87c17e41decb08d5a2d17 /drivers
parent174a73034cdbe2bb2784c9963e75d196364c348e (diff)
wlcore: use proper values for supported local rates
We were setting all the rates bits when starting the AP role. Instead of doing this, we should set only the rates we really support (eg. MIMO rates or wide-channel rates). This commit changes that so that we always use the default rates (basic rates + MCS0-7) and add the values returned by the ap_get_mimo_wide_rate_mask operation. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ti/wlcore/cmd.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c
index 5c4756047098..5b14446ece4a 100644
--- a/drivers/net/wireless/ti/wlcore/cmd.c
+++ b/drivers/net/wireless/ti/wlcore/cmd.c
@@ -36,6 +36,7 @@
36#include "cmd.h" 36#include "cmd.h"
37#include "event.h" 37#include "event.h"
38#include "tx.h" 38#include "tx.h"
39#include "hw_ops.h"
39 40
40#define WL1271_CMD_FAST_POLL_COUNT 50 41#define WL1271_CMD_FAST_POLL_COUNT 50
41 42
@@ -500,6 +501,7 @@ int wl12xx_cmd_role_start_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif)
500 struct wl12xx_cmd_role_start *cmd; 501 struct wl12xx_cmd_role_start *cmd;
501 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); 502 struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif);
502 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; 503 struct ieee80211_bss_conf *bss_conf = &vif->bss_conf;
504 u32 supported_rates;
503 int ret; 505 int ret;
504 506
505 wl1271_debug(DEBUG_CMD, "cmd role start ap %d", wlvif->role_id); 507 wl1271_debug(DEBUG_CMD, "cmd role start ap %d", wlvif->role_id);
@@ -550,7 +552,13 @@ int wl12xx_cmd_role_start_ap(struct wl1271 *wl, struct wl12xx_vif *wlvif)
550 memcpy(cmd->ap.ssid, bss_conf->ssid, bss_conf->ssid_len); 552 memcpy(cmd->ap.ssid, bss_conf->ssid, bss_conf->ssid_len);
551 } 553 }
552 554
553 cmd->ap.local_rates = cpu_to_le32(0xffffffff); 555 supported_rates = CONF_TX_AP_ENABLED_RATES | CONF_TX_MCS_RATES |
556 wlcore_hw_ap_get_mimo_wide_rate_mask(wl, wlvif);
557
558 wl1271_debug(DEBUG_CMD, "cmd role start ap with supported_rates 0x%08x",
559 supported_rates);
560
561 cmd->ap.local_rates = cpu_to_le32(supported_rates);
554 562
555 switch (wlvif->band) { 563 switch (wlvif->band) {
556 case IEEE80211_BAND_2GHZ: 564 case IEEE80211_BAND_2GHZ: