wl12xx: use the conf struct instead of macros for memory configuration
authorEliad Peller <eliad@wizery.com>
Wed, 2 Feb 2011 07:59:36 +0000 (09:59 +0200)
committerLuciano Coelho <coelho@ti.com>
Wed, 9 Feb 2011 00:51:42 +0000 (22:51 -0200)
make the configuration management more flexible by using the
conf struct, rather than predefined macros.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Reviewed-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/acx.c
drivers/net/wireless/wl12xx/acx.h
drivers/net/wireless/wl12xx/conf.h
drivers/net/wireless/wl12xx/main.c

index f2fbda0..6ea19d7 100644 (file)
@@ -961,10 +961,10 @@ int wl1271_acx_ap_mem_cfg(struct wl1271 *wl)
        }
 
        /* memory config */
-       mem_conf->num_stations = DEFAULT_NUM_STATIONS;
-       mem_conf->rx_mem_block_num = ACX_RX_MEM_BLOCKS;
-       mem_conf->tx_min_mem_block_num = ACX_TX_MIN_MEM_BLOCKS;
-       mem_conf->num_ssid_profiles = ACX_NUM_SSID_PROFILES;
+       mem_conf->num_stations = wl->conf.mem.num_stations;
+       mem_conf->rx_mem_block_num = wl->conf.mem.rx_block_num;
+       mem_conf->tx_min_mem_block_num = wl->conf.mem.tx_min_block_num;
+       mem_conf->num_ssid_profiles = wl->conf.mem.ssid_profiles;
        mem_conf->total_tx_descriptors = cpu_to_le32(ACX_TX_DESCRIPTORS);
 
        ret = wl1271_cmd_configure(wl, ACX_MEM_CFG, mem_conf,
@@ -993,10 +993,10 @@ int wl1271_acx_sta_mem_cfg(struct wl1271 *wl)
        }
 
        /* memory config */
-       mem_conf->num_stations = DEFAULT_NUM_STATIONS;
-       mem_conf->rx_mem_block_num = ACX_RX_MEM_BLOCKS;
-       mem_conf->tx_min_mem_block_num = ACX_TX_MIN_MEM_BLOCKS;
-       mem_conf->num_ssid_profiles = ACX_NUM_SSID_PROFILES;
+       mem_conf->num_stations = wl->conf.mem.num_stations;
+       mem_conf->rx_mem_block_num = wl->conf.mem.rx_block_num;
+       mem_conf->tx_min_mem_block_num = wl->conf.mem.tx_min_block_num;
+       mem_conf->num_ssid_profiles = wl->conf.mem.ssid_profiles;
        mem_conf->total_tx_descriptors = cpu_to_le32(ACX_TX_DESCRIPTORS);
        mem_conf->dyn_mem_enable = wl->conf.mem.dynamic_memory;
        mem_conf->tx_free_req = wl->conf.mem.min_req_tx_blocks;
index 537fab4..4e301de 100644 (file)
@@ -133,7 +133,6 @@ enum {
 
 #define DEFAULT_UCAST_PRIORITY          0
 #define DEFAULT_RX_Q_PRIORITY           0
-#define DEFAULT_NUM_STATIONS            1
 #define DEFAULT_RXQ_PRIORITY            0 /* low 0 .. 15 high  */
 #define DEFAULT_RXQ_TYPE                0x07    /* All frames, Data/Ctrl/Mgmt */
 #define TRACE_BUFFER_MAX_SIZE           256
@@ -797,10 +796,7 @@ struct acx_tx_config_options {
        __le16 tx_compl_threshold;   /* number of packets */
 } __packed;
 
-#define ACX_RX_MEM_BLOCKS     70
-#define ACX_TX_MIN_MEM_BLOCKS 40
 #define ACX_TX_DESCRIPTORS    32
-#define ACX_NUM_SSID_PROFILES 1
 
 struct wl1271_acx_ap_config_memory {
        struct acx_header header;
index d8c1249..856a8a2 100644 (file)
@@ -1152,6 +1152,18 @@ struct conf_ht_setting {
 };
 
 struct conf_memory_settings {
+       /* Number of stations supported in IBSS mode */
+       u8 num_stations;
+
+       /* Number of ssid profiles used in IBSS mode */
+       u8 ssid_profiles;
+
+       /* Number of memory buffers allocated to rx pool */
+       u8 rx_block_num;
+
+       /* Minimum number of blocks allocated to tx pool */
+       u8 tx_min_block_num;
+
        /* Disable/Enable dynamic memory */
        u8 dynamic_memory;
 
index 91d6812..24cdc78 100644 (file)
@@ -299,6 +299,10 @@ static struct conf_drv_settings default_conf = {
                .inactivity_timeout = 10000,
        },
        .mem = {
+               .num_stations                 = 1,
+               .ssid_profiles                = 1,
+               .rx_block_num                 = 70,
+               .tx_min_block_num             = 40,
                .dynamic_memory               = 0,
                .min_req_tx_blocks            = 104,
                .min_req_rx_blocks            = 22,