wl1271: Add structure for firmware configuration values
[linux-2.6.git] / drivers / net / wireless / wl12xx / wl1271.h
index 05eb29c847c6b804b43c677dacc58c4b8b0aa7d3..64a327009f2e23b3d8ad52df5fd86564ae1c6ea5 100644 (file)
@@ -32,6 +32,8 @@
 #include <linux/bitops.h>
 #include <net/mac80211.h>
 
 #include <linux/bitops.h>
 #include <net/mac80211.h>
 
+#include "wl1271_conf.h"
+
 #define DRIVER_NAME "wl1271"
 #define DRIVER_PREFIX DRIVER_NAME ": "
 
 #define DRIVER_NAME "wl1271"
 #define DRIVER_PREFIX DRIVER_NAME ": "
 
@@ -97,7 +99,8 @@ enum {
        } while (0)
 
 #define WL1271_DEFAULT_RX_CONFIG (CFG_UNI_FILTER_EN |  \
        } while (0)
 
 #define WL1271_DEFAULT_RX_CONFIG (CFG_UNI_FILTER_EN |  \
-                                 CFG_BSSID_FILTER_EN)
+                                 CFG_BSSID_FILTER_EN | \
+                                 CFG_MC_FILTER_EN)
 
 #define WL1271_DEFAULT_RX_FILTER (CFG_RX_RCTS_ACK | CFG_RX_PRSP_EN |  \
                                  CFG_RX_MGMT_EN | CFG_RX_DATA_EN |   \
 
 #define WL1271_DEFAULT_RX_FILTER (CFG_RX_RCTS_ACK | CFG_RX_PRSP_EN |  \
                                  CFG_RX_MGMT_EN | CFG_RX_DATA_EN |   \
@@ -123,6 +126,8 @@ enum {
 #define WL1271_DEFAULT_BEACON_INT  100
 #define WL1271_DEFAULT_DTIM_PERIOD 1
 
 #define WL1271_DEFAULT_BEACON_INT  100
 #define WL1271_DEFAULT_DTIM_PERIOD 1
 
+#define ACX_TX_DESCRIPTORS         32
+
 enum wl1271_state {
        WL1271_STATE_OFF,
        WL1271_STATE_ON,
 enum wl1271_state {
        WL1271_STATE_OFF,
        WL1271_STATE_ON,
@@ -145,6 +150,8 @@ struct wl1271_partition {
 struct wl1271_partition_set {
        struct wl1271_partition mem;
        struct wl1271_partition reg;
 struct wl1271_partition_set {
        struct wl1271_partition mem;
        struct wl1271_partition reg;
+       struct wl1271_partition mem2;
+       struct wl1271_partition mem3;
 };
 
 struct wl1271;
 };
 
 struct wl1271;
@@ -299,10 +306,7 @@ struct wl1271 {
        enum wl1271_state state;
        struct mutex mutex;
 
        enum wl1271_state state;
        struct mutex mutex;
 
-       int physical_mem_addr;
-       int physical_reg_addr;
-       int virtual_mem_addr;
-       int virtual_reg_addr;
+       struct wl1271_partition_set part;
 
        struct wl1271_chip chip;
 
 
        struct wl1271_chip chip;
 
@@ -343,10 +347,12 @@ struct wl1271 {
        bool tx_queue_stopped;
 
        struct work_struct tx_work;
        bool tx_queue_stopped;
 
        struct work_struct tx_work;
+
        struct work_struct filter_work;
        struct work_struct filter_work;
+       struct wl1271_filter_params *filter_params;
 
        /* Pending TX frames */
 
        /* Pending TX frames */
-       struct sk_buff *tx_frames[16];
+       struct sk_buff *tx_frames[ACX_TX_DESCRIPTORS];
 
        /* Security sequence number counters */
        u8 tx_security_last_seq;
 
        /* Security sequence number counters */
        u8 tx_security_last_seq;
@@ -374,10 +380,6 @@ struct wl1271 {
        /* Our association ID */
        u16 aid;
 
        /* Our association ID */
        u16 aid;
 
-       /* Beacon parameters */
-       u16 beacon_int;
-       u8 dtim_period;
-
        /* currently configured rate set */
        u32 basic_rate_set;
 
        /* currently configured rate set */
        u32 basic_rate_set;
 
@@ -415,6 +417,14 @@ struct wl1271 {
 
        struct wl1271_fw_status *fw_status;
        struct wl1271_tx_hw_res_if *tx_res_if;
 
        struct wl1271_fw_status *fw_status;
        struct wl1271_tx_hw_res_if *tx_res_if;
+
+       struct ieee80211_vif *vif;
+
+       /* Used for a workaround to send disconnect before rejoining */
+       bool joined;
+
+       /* Current chipset configuration */
+       struct conf_drv_settings conf;
 };
 
 int wl1271_plt_start(struct wl1271 *wl);
 };
 
 int wl1271_plt_start(struct wl1271 *wl);