Commit ae825e4b authored by Ido Yariv's avatar Ido Yariv Committed by Luciano Coelho

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: default avatarIdo Yariv <ido@wizery.com>
Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
parent 1fe9e246
...@@ -954,6 +954,7 @@ int wl1271_acx_tx_config_options(struct wl1271 *wl) ...@@ -954,6 +954,7 @@ int wl1271_acx_tx_config_options(struct wl1271 *wl)
int wl1271_acx_ap_mem_cfg(struct wl1271 *wl) int wl1271_acx_ap_mem_cfg(struct wl1271 *wl)
{ {
struct wl1271_acx_ap_config_memory *mem_conf; struct wl1271_acx_ap_config_memory *mem_conf;
struct conf_memory_settings *mem;
int ret; int ret;
wl1271_debug(DEBUG_ACX, "wl1271 mem cfg"); wl1271_debug(DEBUG_ACX, "wl1271 mem cfg");
...@@ -964,14 +965,21 @@ int wl1271_acx_ap_mem_cfg(struct wl1271 *wl) ...@@ -964,14 +965,21 @@ int wl1271_acx_ap_mem_cfg(struct wl1271 *wl)
goto out; goto out;
} }
if (wl->chip.id == CHIP_ID_1283_PG20)
/*
* FIXME: The 128x AP FW does not yet support dynamic memory.
* Use the base memory configuration for 128x for now. This
* should be fine tuned in the future.
*/
mem = &wl->conf.mem_wl128x;
else
mem = &wl->conf.mem_wl127x;
/* memory config */ /* memory config */
/* FIXME: for now we always use mem_wl127x for AP, because it mem_conf->num_stations = mem->num_stations;
* doesn't support dynamic memory and we don't have the mem_conf->rx_mem_block_num = mem->rx_block_num;
* optimal values for wl128x without dynamic memory yet */ mem_conf->tx_min_mem_block_num = mem->tx_min_block_num;
mem_conf->num_stations = wl->conf.mem_wl127x.num_stations; mem_conf->num_ssid_profiles = mem->ssid_profiles;
mem_conf->rx_mem_block_num = wl->conf.mem_wl127x.rx_block_num;
mem_conf->tx_min_mem_block_num = wl->conf.mem_wl127x.tx_min_block_num;
mem_conf->num_ssid_profiles = wl->conf.mem_wl127x.ssid_profiles;
mem_conf->total_tx_descriptors = cpu_to_le32(ACX_TX_DESCRIPTORS); mem_conf->total_tx_descriptors = cpu_to_le32(ACX_TX_DESCRIPTORS);
ret = wl1271_cmd_configure(wl, ACX_MEM_CFG, mem_conf, ret = wl1271_cmd_configure(wl, ACX_MEM_CFG, mem_conf,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment