aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx
diff options
context:
space:
mode:
authorIdo Yariv <ido@wizery.com>2011-04-18 16:40:14 +0300
committerLuciano Coelho <coelho@ti.com>2011-05-02 10:27:08 +0300
commitae825e4ba81203e1b3d3159f24327cdc2629dbd8 (patch)
tree15cc63f51963b2a94cb72f52167d355a10290f03 /drivers/net/wireless/wl12xx
parent1fe9e2464c667903d7eec0314db26c462ca9d276 (diff)
downloadkernel_samsung_smdk4412-ae825e4ba81203e1b3d3159f24327cdc2629dbd8.zip
kernel_samsung_smdk4412-ae825e4ba81203e1b3d3159f24327cdc2629dbd8.tar.gz
kernel_samsung_smdk4412-ae825e4ba81203e1b3d3159f24327cdc2629dbd8.tar.bz2
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 8a39d1e..b1b5139 100644
--- a/drivers/net/wireless/wl12xx/acx.c
+++ b/drivers/net/wireless/wl12xx/acx.c
@@ -954,6 +954,7 @@ out:
int wl1271_acx_ap_mem_cfg(struct wl1271 *wl)
{
struct wl1271_acx_ap_config_memory *mem_conf;
+ struct conf_memory_settings *mem;
int ret;
wl1271_debug(DEBUG_ACX, "wl1271 mem cfg");
@@ -964,14 +965,21 @@ int wl1271_acx_ap_mem_cfg(struct wl1271 *wl)
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 */
- /* FIXME: for now we always use mem_wl127x for AP, because it
- * doesn't support dynamic memory and we don't have the
- * optimal values for wl128x without dynamic memory yet */
- mem_conf->num_stations = wl->conf.mem_wl127x.num_stations;
- 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->num_stations = mem->num_stations;
+ mem_conf->rx_mem_block_num = mem->rx_block_num;
+ mem_conf->tx_min_mem_block_num = mem->tx_min_block_num;
+ mem_conf->num_ssid_profiles = mem->ssid_profiles;
mem_conf->total_tx_descriptors = cpu_to_le32(ACX_TX_DESCRIPTORS);
ret = wl1271_cmd_configure(wl, ACX_MEM_CFG, mem_conf,