libertas: remove unused 11d code
[safe/jmp/linux-2.6] / drivers / net / wireless / libertas / defs.h
index ae59b37..1cf5d59 100644 (file)
@@ -2,8 +2,8 @@
   * This header file contains global constant/enum definitions,
   * global variable declaration.
   */
-#ifndef _WLAN_DEFS_H_
-#define _WLAN_DEFS_H_
+#ifndef _LBS_DEFS_H_
+#define _LBS_DEFS_H_
 
 #include <linux/spinlock.h>
 
 #define PROC_DEBUG
 #endif
 
-#define DRV_NAME "usb8xxx"
-
-
-#define LBS_DEB_ENTER  (1<<0)
-#define LBS_DEB_LEAVE  (1<<1)
-#define LBS_DEB_MAIN   (1<<2)
-#define LBS_DEB_NET    (1<<3)
-#define LBS_DEB_MESH   (1<<4)
-#define LBS_DEB_WEXT   (1<<5)
-#define LBS_DEB_IOCTL  (1<<6)
-#define LBS_DEB_SCAN   (1<<7)
-#define LBS_DEB_ASSOC  (1<<8)
-#define LBS_DEB_JOIN   (1<<9)
-#define LBS_DEB_11D    (1<<10)
-#define LBS_DEB_DEBUGFS        (1<<11)
-#define LBS_DEB_ETHTOOL        (1<<12)
-#define LBS_DEB_HOST   (1<<13)
-#define LBS_DEB_CMD    (1<<14)
-#define LBS_DEB_RX     (1<<15)
-#define LBS_DEB_TX     (1<<16)
-#define LBS_DEB_FW     (1<<17)
-#define LBS_DEB_USB    (1<<18)
-#define LBS_DEB_CS     (1<<19)
-#define LBS_DEB_THREAD (1<<20)
-#define LBS_DEB_HEX    (1<<21)
-
-extern unsigned int libertas_debug_flags;
+#ifndef DRV_NAME
+#define DRV_NAME "libertas"
+#endif
+
+
+#define LBS_DEB_ENTER  0x00000001
+#define LBS_DEB_LEAVE  0x00000002
+#define LBS_DEB_MAIN   0x00000004
+#define LBS_DEB_NET    0x00000008
+#define LBS_DEB_MESH   0x00000010
+#define LBS_DEB_WEXT   0x00000020
+#define LBS_DEB_IOCTL  0x00000040
+#define LBS_DEB_SCAN   0x00000080
+#define LBS_DEB_ASSOC  0x00000100
+#define LBS_DEB_JOIN   0x00000200
+#define LBS_DEB_11D    0x00000400
+#define LBS_DEB_DEBUGFS        0x00000800
+#define LBS_DEB_ETHTOOL        0x00001000
+#define LBS_DEB_HOST   0x00002000
+#define LBS_DEB_CMD    0x00004000
+#define LBS_DEB_RX     0x00008000
+#define LBS_DEB_TX     0x00010000
+#define LBS_DEB_USB    0x00020000
+#define LBS_DEB_CS     0x00040000
+#define LBS_DEB_FW     0x00080000
+#define LBS_DEB_THREAD 0x00100000
+#define LBS_DEB_HEX    0x00200000
+#define LBS_DEB_SDIO   0x00400000
+#define LBS_DEB_SYSFS  0x00800000
+#define LBS_DEB_SPI    0x01000000
+#define LBS_DEB_CFG80211 0x02000000
+
+extern unsigned int lbs_debug;
 
 #ifdef DEBUG
-#define LBS_DEB_LL(grp, fmt, args...) \
-do { if ((libertas_debug_flags & (grp)) == (grp)) \
-  printk(KERN_DEBUG DRV_NAME "%s: " fmt, \
+#define LBS_DEB_LL(grp, grpnam, fmt, args...) \
+do { if ((lbs_debug & (grp)) == (grp)) \
+  printk(KERN_DEBUG DRV_NAME grpnam "%s: " fmt, \
          in_interrupt() ? " (INT)" : "", ## args); } while (0)
 #else
-#define LBS_DEB_LL(grp, fmt, args...) do {} while (0)
+#define LBS_DEB_LL(grp, grpnam, fmt, args...) do {} while (0)
 #endif
 
 #define lbs_deb_enter(grp) \
-  LBS_DEB_LL(grp | LBS_DEB_ENTER, "%s() %d enter\n", __FUNCTION__, __LINE__);
+  LBS_DEB_LL(grp | LBS_DEB_ENTER, " enter", "%s()\n", __func__);
 #define lbs_deb_enter_args(grp, fmt, args...) \
-  LBS_DEB_LL(grp | LBS_DEB_ENTER, "%s(" fmt "):%d\n", __FUNCTION__, ## args, __LINE__);
+  LBS_DEB_LL(grp | LBS_DEB_ENTER, " enter", "%s(" fmt ")\n", __func__, ## args);
 #define lbs_deb_leave(grp) \
-  LBS_DEB_LL(grp | LBS_DEB_LEAVE, "%s():%d leave\n", __FUNCTION__, __LINE__);
+  LBS_DEB_LL(grp | LBS_DEB_LEAVE, " leave", "%s()\n", __func__);
 #define lbs_deb_leave_args(grp, fmt, args...) \
-  LBS_DEB_LL(grp | LBS_DEB_LEAVE, "%s():%d leave, " fmt "\n", \
-  __FUNCTION__, __LINE__, ##args);
-#define lbs_deb_main(fmt, args...)      LBS_DEB_LL(LBS_DEB_MAIN, fmt, ##args)
-#define lbs_deb_net(fmt, args...)       LBS_DEB_LL(LBS_DEB_NET, fmt, ##args)
-#define lbs_deb_mesh(fmt, args...)      LBS_DEB_LL(LBS_DEB_MESH, fmt, ##args)
-#define lbs_deb_wext(fmt, args...)      LBS_DEB_LL(LBS_DEB_WEXT, fmt, ##args)
-#define lbs_deb_ioctl(fmt, args...)     LBS_DEB_LL(LBS_DEB_IOCTL, fmt, ##args)
-#define lbs_deb_scan(fmt, args...)      LBS_DEB_LL(LBS_DEB_SCAN, fmt, ##args)
-#define lbs_deb_assoc(fmt, args...)     LBS_DEB_LL(LBS_DEB_ASSOC, fmt, ##args)
-#define lbs_deb_join(fmt, args...)      LBS_DEB_LL(LBS_DEB_JOIN, fmt, ##args)
-#define lbs_deb_11d(fmt, args...)       LBS_DEB_LL(LBS_DEB_11D, fmt, ##args)
-#define lbs_deb_debugfs(fmt, args...)   LBS_DEB_LL(LBS_DEB_DEBUGFS, fmt, ##args)
-#define lbs_deb_ethtool(fmt, args...)   LBS_DEB_LL(LBS_DEB_ETHTOOL, fmt, ##args)
-#define lbs_deb_host(fmt, args...)      LBS_DEB_LL(LBS_DEB_HOST, fmt, ##args)
-#define lbs_deb_cmd(fmt, args...)       LBS_DEB_LL(LBS_DEB_CMD, fmt, ##args)
-#define lbs_deb_rx(fmt, args...)        LBS_DEB_LL(LBS_DEB_RX, fmt, ##args)
-#define lbs_deb_tx(fmt, args...)        LBS_DEB_LL(LBS_DEB_TX, fmt, ##args)
-#define lbs_deb_fw(fmt, args...)        LBS_DEB_LL(LBS_DEB_FW, fmt, ##args)
-#define lbs_deb_usb(fmt, args...)       LBS_DEB_LL(LBS_DEB_USB, fmt, ##args)
-#define lbs_deb_usbd(dev, fmt, args...) LBS_DEB_LL(LBS_DEB_USB, "%s:" fmt, (dev)->bus_id, ##args)
-#define lbs_deb_cs(fmt, args...)        LBS_DEB_LL(LBS_DEB_CS, fmt, ##args)
-#define lbs_deb_thread(fmt, args...)    LBS_DEB_LL(LBS_DEB_THREAD, fmt, ##args)
+  LBS_DEB_LL(grp | LBS_DEB_LEAVE, " leave", "%s(), " fmt "\n", \
+  __func__, ##args);
+#define lbs_deb_main(fmt, args...)      LBS_DEB_LL(LBS_DEB_MAIN, " main", fmt, ##args)
+#define lbs_deb_net(fmt, args...)       LBS_DEB_LL(LBS_DEB_NET, " net", fmt, ##args)
+#define lbs_deb_mesh(fmt, args...)      LBS_DEB_LL(LBS_DEB_MESH, " mesh", fmt, ##args)
+#define lbs_deb_wext(fmt, args...)      LBS_DEB_LL(LBS_DEB_WEXT, " wext", fmt, ##args)
+#define lbs_deb_ioctl(fmt, args...)     LBS_DEB_LL(LBS_DEB_IOCTL, " ioctl", fmt, ##args)
+#define lbs_deb_scan(fmt, args...)      LBS_DEB_LL(LBS_DEB_SCAN, " scan", fmt, ##args)
+#define lbs_deb_assoc(fmt, args...)     LBS_DEB_LL(LBS_DEB_ASSOC, " assoc", fmt, ##args)
+#define lbs_deb_join(fmt, args...)      LBS_DEB_LL(LBS_DEB_JOIN, " join", fmt, ##args)
+#define lbs_deb_11d(fmt, args...)       LBS_DEB_LL(LBS_DEB_11D, " 11d", fmt, ##args)
+#define lbs_deb_debugfs(fmt, args...)   LBS_DEB_LL(LBS_DEB_DEBUGFS, " debugfs", fmt, ##args)
+#define lbs_deb_ethtool(fmt, args...)   LBS_DEB_LL(LBS_DEB_ETHTOOL, " ethtool", fmt, ##args)
+#define lbs_deb_host(fmt, args...)      LBS_DEB_LL(LBS_DEB_HOST, " host", fmt, ##args)
+#define lbs_deb_cmd(fmt, args...)       LBS_DEB_LL(LBS_DEB_CMD, " cmd", fmt, ##args)
+#define lbs_deb_rx(fmt, args...)        LBS_DEB_LL(LBS_DEB_RX, " rx", fmt, ##args)
+#define lbs_deb_tx(fmt, args...)        LBS_DEB_LL(LBS_DEB_TX, " tx", fmt, ##args)
+#define lbs_deb_fw(fmt, args...)        LBS_DEB_LL(LBS_DEB_FW, " fw", fmt, ##args)
+#define lbs_deb_usb(fmt, args...)       LBS_DEB_LL(LBS_DEB_USB, " usb", fmt, ##args)
+#define lbs_deb_usbd(dev, fmt, args...) LBS_DEB_LL(LBS_DEB_USB, " usbd", "%s:" fmt, dev_name(dev), ##args)
+#define lbs_deb_cs(fmt, args...)        LBS_DEB_LL(LBS_DEB_CS, " cs", fmt, ##args)
+#define lbs_deb_thread(fmt, args...)    LBS_DEB_LL(LBS_DEB_THREAD, " thread", fmt, ##args)
+#define lbs_deb_sdio(fmt, args...)      LBS_DEB_LL(LBS_DEB_SDIO, " sdio", fmt, ##args)
+#define lbs_deb_sysfs(fmt, args...)     LBS_DEB_LL(LBS_DEB_SYSFS, " sysfs", fmt, ##args)
+#define lbs_deb_spi(fmt, args...)       LBS_DEB_LL(LBS_DEB_SPI, " spi", fmt, ##args)
+#define lbs_deb_cfg80211(fmt, args...)  LBS_DEB_LL(LBS_DEB_CFG80211, " cfg80211", fmt, ##args)
 
 #define lbs_pr_info(format, args...) \
        printk(KERN_INFO DRV_NAME": " format, ## args)
@@ -87,22 +97,28 @@ do { if ((libertas_debug_flags & (grp)) == (grp)) \
        printk(KERN_ALERT DRV_NAME": " format, ## args)
 
 #ifdef DEBUG
-static inline void lbs_dbg_hex(char *prompt, u8 * buf, int len)
+static inline void lbs_deb_hex(unsigned int grp, const char *prompt, u8 *buf, int len)
 {
        int i = 0;
 
-       if (!(libertas_debug_flags & LBS_DEB_HEX))
-               return;
-
-       printk(KERN_DEBUG "%s: ", prompt);
-       for (i = 1; i <= len; i++) {
-               printk("%02x ", (u8) * buf);
-               buf++;
+       if (len &&
+           (lbs_debug & LBS_DEB_HEX) &&
+           (lbs_debug & grp))
+       {
+               for (i = 1; i <= len; i++) {
+                       if ((i & 0xf) == 1) {
+                               if (i != 1)
+                                       printk("\n");
+                               printk(DRV_NAME " %s: ", prompt);
+                       }
+                       printk("%02x ", (u8) * buf);
+                       buf++;
+               }
+               printk("\n");
        }
-       printk("\n");
 }
 #else
-#define lbs_dbg_hex(x,y,z)                             do {} while (0)
+#define lbs_deb_hex(grp,prompt,buf,len)        do {} while (0)
 #endif
 
 
@@ -122,16 +138,34 @@ static inline void lbs_dbg_hex(char *prompt, u8 * buf, int len)
 */
 
 #define MRVDRV_MAX_MULTICAST_LIST_SIZE 32
-#define MRVDRV_NUM_OF_CMD_BUFFER        10
-#define MRVDRV_SIZE_OF_CMD_BUFFER       (2 * 1024)
+#define LBS_NUM_CMD_BUFFERS             10
+#define LBS_CMD_BUFFER_SIZE             (2 * 1024)
 #define MRVDRV_MAX_CHANNEL_SIZE                14
-#define MRVDRV_MAX_BSSID_LIST          64
 #define MRVDRV_ASSOCIATION_TIME_OUT    255
 #define MRVDRV_SNAP_HEADER_LEN          8
 
-#define        WLAN_UPLD_SIZE                  2312
+#define        LBS_UPLD_SIZE                   2312
 #define DEV_NAME_LEN                   32
 
+/* Wake criteria for HOST_SLEEP_CFG command */
+#define EHS_WAKE_ON_BROADCAST_DATA     0x0001
+#define EHS_WAKE_ON_UNICAST_DATA       0x0002
+#define EHS_WAKE_ON_MAC_EVENT          0x0004
+#define EHS_WAKE_ON_MULTICAST_DATA     0x0008
+#define EHS_REMOVE_WAKEUP              0xFFFFFFFF
+/* Wake rules for Host_Sleep_CFG command */
+#define WOL_RULE_NET_TYPE_INFRA_OR_IBSS        0x00
+#define WOL_RULE_NET_TYPE_MESH         0x10
+#define WOL_RULE_ADDR_TYPE_BCAST       0x01
+#define WOL_RULE_ADDR_TYPE_MCAST       0x08
+#define WOL_RULE_ADDR_TYPE_UCAST       0x02
+#define WOL_RULE_OP_AND                        0x01
+#define WOL_RULE_OP_OR                 0x02
+#define WOL_RULE_OP_INVALID            0xFF
+#define WOL_RESULT_VALID_CMD           0
+#define WOL_RESULT_NOSPC_ERR           1
+#define WOL_RESULT_EEXIST_ERR          2
+
 /** Misc constants */
 /* This section defines 802.11 specific contants */
 
@@ -148,13 +182,37 @@ static inline void lbs_dbg_hex(char *prompt, u8 * buf, int len)
 #define        MRVDRV_CHANNELS_PER_SCAN                4
 #define        MRVDRV_MAX_CHANNELS_PER_SCAN            14
 
-#define MRVDRV_DEBUG_RX_PATH           0x00000001
-#define MRVDRV_DEBUG_TX_PATH           0x00000002
-
 #define MRVDRV_MIN_BEACON_INTERVAL             20
 #define MRVDRV_MAX_BEACON_INTERVAL             1000
 #define MRVDRV_BEACON_INTERVAL                 100
 
+#define MARVELL_MESH_IE_LENGTH         9
+
+/* Values used to populate the struct mrvl_mesh_ie.  The only time you need this
+ * is when enabling the mesh using CMD_MESH_CONFIG.
+ */
+#define MARVELL_MESH_IE_TYPE           4
+#define MARVELL_MESH_IE_SUBTYPE                0
+#define MARVELL_MESH_IE_VERSION                0
+#define MARVELL_MESH_PROTO_ID_HWMP     0
+#define MARVELL_MESH_METRIC_ID         0
+#define MARVELL_MESH_CAPABILITY                0
+
+/** INT status Bit Definition*/
+#define MRVDRV_TX_DNLD_RDY             0x0001
+#define MRVDRV_RX_UPLD_RDY             0x0002
+#define MRVDRV_CMD_DNLD_RDY            0x0004
+#define MRVDRV_CMD_UPLD_RDY            0x0008
+#define MRVDRV_CARDEVENT               0x0010
+
+/* Automatic TX control default levels */
+#define POW_ADAPT_DEFAULT_P0 13
+#define POW_ADAPT_DEFAULT_P1 15
+#define POW_ADAPT_DEFAULT_P2 18
+#define TPC_DEFAULT_P0 5
+#define TPC_DEFAULT_P1 10
+#define TPC_DEFAULT_P2 13
+
 /** TxPD status */
 
 /*     Station firmware use TxPD status field to report final Tx transmit
@@ -171,6 +229,22 @@ static inline void lbs_dbg_hex(char *prompt, u8 * buf, int len)
 #define TxPD_CONTROL_WDS_FRAME (1<<17)
 #define TxPD_MESH_FRAME TxPD_CONTROL_WDS_FRAME
 
+/** Mesh interface ID */
+#define MESH_IFACE_ID                                  0x0001
+/** Mesh id should be in bits 14-13-12 */
+#define MESH_IFACE_BIT_OFFSET                          0x000c
+/** Mesh enable bit in FW capability */
+#define MESH_CAPINFO_ENABLE_MASK                       (1<<16)
+
+/** FW definition from Marvell v4 */
+#define MRVL_FW_V4                                     (0x04)
+/** FW definition from Marvell v5 */
+#define MRVL_FW_V5                                     (0x05)
+/** FW definition from Marvell v10 */
+#define MRVL_FW_V10                                    (0x0a)
+/** FW major revision definition */
+#define MRVL_FW_MAJOR_REV(x)                           ((x)>>24)
+
 /** RxPD status */
 
 #define MRVDRV_RXPD_STATUS_OK                0x0001
@@ -209,9 +283,10 @@ static inline void lbs_dbg_hex(char *prompt, u8 * buf, int len)
 
 #define        CMD_F_HOSTCMD           (1 << 0)
 #define FW_CAPINFO_WPA         (1 << 0)
-
-/** WPA key LENGTH*/
-#define MRVL_MAX_KEY_WPA_KEY_LENGTH     32
+#define FW_CAPINFO_PS                  (1 << 1)
+#define FW_CAPINFO_FIRMWARE_UPGRADE    (1 << 13)
+#define FW_CAPINFO_BOOT2_UPGRADE       (1<<14)
+#define FW_CAPINFO_PERSISTENT_CONFIG   (1<<15)
 
 #define KEY_LEN_WPA_AES                        16
 #define KEY_LEN_WPA_TKIP               32
@@ -239,28 +314,15 @@ static inline void lbs_dbg_hex(char *prompt, u8 * buf, int len)
                         ((((int)(AVG) * (N -1)) + ((u16)(SNRNF) * \
                         AVG_SCALE))  / N))
 
-#define B_SUPPORTED_RATES              8
-#define G_SUPPORTED_RATES              14
-
-#define        WLAN_SUPPORTED_RATES            14
+#define MAX_RATES                      14
 
 #define        MAX_LEDS                        8
 
-#define IS_MESH_FRAME(x) (x->cb[6])
-#define SET_MESH_FRAME(x) (x->cb[6]=1)
-#define UNSET_MESH_FRAME(x) (x->cb[6]=0)
-
 /** Global Variable Declaration */
-typedef struct _wlan_private wlan_private;
-typedef struct _wlan_adapter wlan_adapter;
-extern const char libertas_driver_version[];
-extern u16 libertas_region_code_to_index[MRVDRV_MAX_REGION_CODE];
-
-extern u8 libertas_supported_rates[G_SUPPORTED_RATES];
+extern const char lbs_driver_version[];
+extern u16 lbs_region_code_to_index[MRVDRV_MAX_REGION_CODE];
 
-extern u8 libertas_adhoc_rates_g[G_SUPPORTED_RATES];
-
-extern u8 libertas_adhoc_rates_b[4];
+extern u8 lbs_bg_rates[MAX_RATES];
 
 /** ENUM definition*/
 /** SNRNF_TYPE */
@@ -277,13 +339,13 @@ enum SNRNF_DATA {
        MAX_TYPE_AVG
 };
 
-/** WLAN_802_11_POWER_MODE */
-enum WLAN_802_11_POWER_MODE {
-       wlan802_11powermodecam,
-       wlan802_11powermodemax_psp,
-       wlan802_11Powermodefast_psp,
+/** LBS_802_11_POWER_MODE */
+enum LBS_802_11_POWER_MODE {
+       LBS802_11POWERMODECAM,
+       LBS802_11POWERMODEMAX_PSP,
+       LBS802_11POWERMODEFAST_PSP,
        /*not a real mode, defined as an upper bound */
-       wlan802_11powemodemax
+       LBS802_11POWEMODEMAX
 };
 
 /** PS_STATE */
@@ -298,19 +360,20 @@ enum PS_STATE {
 enum DNLD_STATE {
        DNLD_RES_RECEIVED,
        DNLD_DATA_SENT,
-       DNLD_CMD_SENT
+       DNLD_CMD_SENT,
+       DNLD_BOOTCMD_SENT,
 };
 
-/** WLAN_MEDIA_STATE */
-enum WLAN_MEDIA_STATE {
-       libertas_connected,
-       libertas_disconnected
+/** LBS_MEDIA_STATE */
+enum LBS_MEDIA_STATE {
+       LBS_CONNECTED,
+       LBS_DISCONNECTED
 };
 
-/** WLAN_802_11_PRIVACY_FILTER */
-enum WLAN_802_11_PRIVACY_FILTER {
-       wlan802_11privfilteracceptall,
-       wlan802_11privfilter8021xWEP
+/** LBS_802_11_PRIVACY_FILTER */
+enum LBS_802_11_PRIVACY_FILTER {
+       LBS802_11PRIVFILTERACCEPTALL,
+       LBS802_11PRIVFILTER8021XWEP
 };
 
 /** mv_ms_type */
@@ -321,27 +384,6 @@ enum mv_ms_type {
        MVMS_EVENT
 };
 
-/** SNMP_MIB_INDEX_e */
-enum SNMP_MIB_INDEX_e {
-       desired_bsstype_i = 0,
-       op_rateset_i,
-       bcnperiod_i,
-       dtimperiod_i,
-       assocrsp_timeout_i,
-       rtsthresh_i,
-       short_retrylim_i,
-       long_retrylim_i,
-       fragthresh_i,
-       dot11d_i,
-       dot11h_i,
-       manufid_i,
-       prodID_i,
-       manuf_oui_i,
-       manuf_name_i,
-       manuf_prodname_i,
-       manuf_prodver_i,
-};
-
 /** KEY_TYPE_ID */
 enum KEY_TYPE_ID {
        KEY_TYPE_ID_WEP = 0,
@@ -356,15 +398,18 @@ enum KEY_INFO_WPA {
        KEY_INFO_WPA_ENABLED = 0x04
 };
 
-/** SNMP_MIB_VALUE_e */
-enum SNMP_MIB_VALUE_e {
-       SNMP_MIB_VALUE_INFRA = 1,
-       SNMP_MIB_VALUE_ADHOC
+/** mesh_fw_ver */
+enum _mesh_fw_ver {
+       MESH_NONE = 0, /* MESH is not supported */
+       MESH_FW_OLD,   /* MESH is supported in FW V5 */
+       MESH_FW_NEW,   /* MESH is supported in FW V10 and newer */
 };
 
 /* Default values for fwt commands. */
 #define FWT_DEFAULT_METRIC 0
 #define FWT_DEFAULT_DIR 1
+/* Default Rate, 11Mbps */
+#define FWT_DEFAULT_RATE 3
 #define FWT_DEFAULT_SSN 0xffffffff
 #define FWT_DEFAULT_DSN 0
 #define FWT_DEFAULT_HOPCOUNT 0
@@ -373,4 +418,4 @@ enum SNMP_MIB_VALUE_e {
 #define FWT_DEFAULT_SLEEPMODE 0
 #define FWT_DEFAULT_SNR 0
 
-#endif                         /* _WLAN_DEFS_H_ */
+#endif