aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx
diff options
context:
space:
mode:
authorIdo Yariv <ido@wizery.com>2011-04-18 09:40:14 -0400
committerLuciano Coelho <coelho@ti.com>2011-05-02 03:27:08 -0400
commitae825e4ba81203e1b3d3159f24327cdc2629dbd8 (patch)
tree15cc63f51963b2a94cb72f52167d355a10290f03 /drivers/net/wireless/wl12xx
parent1fe9e2464c667903d7eec0314db26c462ca9d276 (diff)
wl12xx: Modify memory configuration for 128x/AP
The 128x/AP firmware does not yet support dynamic memory. Temporarily, the memory configuration for the 127x was used both for 127x/AP as well as 128x/AP. Since the two chips don't have the same number of memory blocks, TP was significantly degraded. This hasn't been fine tuned yet, but using the base 128x numbers (without dynamic memory) seems to yield much better results (around 30% more). Additional fine tuning will be required in the future. Signed-off-by: Ido Yariv <ido@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx')
-rw-r--r--drivers/net/wireless/wl12xx/acx.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/net/wireless/wl12xx/acx.c b/drivers/net/wireless/wl12xx/acx.c
index 8a39d1e40a68..b1b5139139e7 100644
--- a/drivers/net/wireless/wl12xx/acx.c
+++ b/drivers/net/wireless/wl12xx/acx.c
@@ -954,6 +954,7 @@ out:
954int wl1271_acx_ap_mem_cfg(struct wl1271 *wl) 954int wl1271_acx_ap_mem_cfg(struct wl1271 *wl)
955{ 955{
956 struct wl1271_acx_ap_config_memory *mem_conf; 956 struct wl1271_acx_ap_config_memory *mem_conf;
957 struct conf_memory_settings *mem;
957 int ret; 958 int ret;
958 959
959 wl1271_debug(DEBUG_ACX, "wl1271 mem cfg"); 960 wl1271_debug(DEBUG_ACX, "wl1271 mem cfg");
@@ -964,14 +965,21 @@ int wl1271_acx_ap_mem_cfg(struct wl1271 *wl)
964 goto out; 965 goto out;
965 } 966 }
966 967
968 if (wl->chip.id == CHIP_ID_1283_PG20)
969 /*
970 * FIXME: The 128x AP FW does not yet support dynamic memory.
971 * Use the base memory configuration for 128x for now. This
972 * should be fine tuned in the future.
973 */
974 mem = &wl->conf.mem_wl128x;
975 else
976 mem = &wl->conf.mem_wl127x;
977
967 /* memory config */ 978 /* memory config */
968 /* FIXME: for now we always use mem_wl127x for AP, because it 979 mem_conf->num_stations = mem->num_stations;
969 * doesn't support dynamic memory and we don't have the 980 mem_conf->rx_mem_block_num = mem->rx_block_num;
970 * optimal values for wl128x without dynamic memory yet */ 981 mem_conf->tx_min_mem_block_num = mem->tx_min_block_num;
971 mem_conf->num_stations = wl->conf.mem_wl127x.num_stations; 982 mem_conf->num_ssid_profiles = mem->ssid_profiles;
972 mem_conf->rx_mem_block_num = wl->conf.mem_wl127x.rx_block_num;
973 mem_conf->tx_min_mem_block_num = wl->conf.mem_wl127x.tx_min_block_num;
974 mem_conf->num_ssid_profiles = wl->conf.mem_wl127x.ssid_profiles;
975 mem_conf->total_tx_descriptors = cpu_to_le32(ACX_TX_DESCRIPTORS); 983 mem_conf->total_tx_descriptors = cpu_to_le32(ACX_TX_DESCRIPTORS);
976 984
977 ret = wl1271_cmd_configure(wl, ACX_MEM_CFG, mem_conf, 985 ret = wl1271_cmd_configure(wl, ACX_MEM_CFG, mem_conf,