|
@@ -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,
|