| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 1 | /** | 
|  | 2 | * This header file contains global constant/enum definitions, | 
|  | 3 | * global variable declaration. | 
|  | 4 | */ | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 5 | #ifndef _LBS_DEFS_H_ | 
|  | 6 | #define _LBS_DEFS_H_ | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 7 |  | 
|  | 8 | #include <linux/spinlock.h> | 
|  | 9 |  | 
| Dan Williams | 3a8b9a4 | 2007-05-10 23:05:55 -0400 | [diff] [blame] | 10 | #ifdef CONFIG_LIBERTAS_DEBUG | 
|  | 11 | #define DEBUG | 
|  | 12 | #define PROC_DEBUG | 
|  | 13 | #endif | 
|  | 14 |  | 
| Holger Schurig | ec3eef2 | 2007-05-25 12:49:10 -0400 | [diff] [blame] | 15 | #ifndef DRV_NAME | 
|  | 16 | #define DRV_NAME "libertas" | 
|  | 17 | #endif | 
| Holger Schurig | 9012b28 | 2007-05-25 11:27:16 -0400 | [diff] [blame] | 18 |  | 
|  | 19 |  | 
| Holger Schurig | a46c641 | 2007-05-25 11:32:07 -0400 | [diff] [blame] | 20 | #define LBS_DEB_ENTER	0x00000001 | 
|  | 21 | #define LBS_DEB_LEAVE	0x00000002 | 
|  | 22 | #define LBS_DEB_MAIN	0x00000004 | 
|  | 23 | #define LBS_DEB_NET	0x00000008 | 
|  | 24 | #define LBS_DEB_MESH	0x00000010 | 
|  | 25 | #define LBS_DEB_WEXT	0x00000020 | 
|  | 26 | #define LBS_DEB_IOCTL	0x00000040 | 
|  | 27 | #define LBS_DEB_SCAN	0x00000080 | 
|  | 28 | #define LBS_DEB_ASSOC	0x00000100 | 
|  | 29 | #define LBS_DEB_JOIN	0x00000200 | 
|  | 30 | #define LBS_DEB_11D	0x00000400 | 
|  | 31 | #define LBS_DEB_DEBUGFS	0x00000800 | 
|  | 32 | #define LBS_DEB_ETHTOOL	0x00001000 | 
|  | 33 | #define LBS_DEB_HOST	0x00002000 | 
|  | 34 | #define LBS_DEB_CMD	0x00004000 | 
|  | 35 | #define LBS_DEB_RX	0x00008000 | 
|  | 36 | #define LBS_DEB_TX	0x00010000 | 
|  | 37 | #define LBS_DEB_USB	0x00020000 | 
|  | 38 | #define LBS_DEB_CS	0x00040000 | 
|  | 39 | #define LBS_DEB_FW	0x00080000 | 
|  | 40 | #define LBS_DEB_THREAD	0x00100000 | 
|  | 41 | #define LBS_DEB_HEX	0x00200000 | 
| Pierre Ossman | 727c26e | 2007-10-17 22:24:24 +0200 | [diff] [blame] | 42 | #define LBS_DEB_SDIO	0x00400000 | 
| Javier Cardona | 15dbaac | 2008-05-17 21:01:24 -0700 | [diff] [blame] | 43 | #define LBS_DEB_SYSFS	0x00800000 | 
| Holger Schurig | 9012b28 | 2007-05-25 11:27:16 -0400 | [diff] [blame] | 44 |  | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 45 | extern unsigned int lbs_debug; | 
| Holger Schurig | 9012b28 | 2007-05-25 11:27:16 -0400 | [diff] [blame] | 46 |  | 
|  | 47 | #ifdef DEBUG | 
| Holger Schurig | ece5619 | 2007-08-02 11:53:06 -0400 | [diff] [blame] | 48 | #define LBS_DEB_LL(grp, grpnam, fmt, args...) \ | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 49 | do { if ((lbs_debug & (grp)) == (grp)) \ | 
| Holger Schurig | ece5619 | 2007-08-02 11:53:06 -0400 | [diff] [blame] | 50 | printk(KERN_DEBUG DRV_NAME grpnam "%s: " fmt, \ | 
| Holger Schurig | 9012b28 | 2007-05-25 11:27:16 -0400 | [diff] [blame] | 51 | in_interrupt() ? " (INT)" : "", ## args); } while (0) | 
|  | 52 | #else | 
| Holger Schurig | ece5619 | 2007-08-02 11:53:06 -0400 | [diff] [blame] | 53 | #define LBS_DEB_LL(grp, grpnam, fmt, args...) do {} while (0) | 
| Holger Schurig | 9012b28 | 2007-05-25 11:27:16 -0400 | [diff] [blame] | 54 | #endif | 
|  | 55 |  | 
|  | 56 | #define lbs_deb_enter(grp) \ | 
| Holger Schurig | e5225b3 | 2008-03-26 10:04:44 +0100 | [diff] [blame] | 57 | LBS_DEB_LL(grp | LBS_DEB_ENTER, " enter", "%s()\n", __func__); | 
| Holger Schurig | 9012b28 | 2007-05-25 11:27:16 -0400 | [diff] [blame] | 58 | #define lbs_deb_enter_args(grp, fmt, args...) \ | 
| Holger Schurig | e5225b3 | 2008-03-26 10:04:44 +0100 | [diff] [blame] | 59 | LBS_DEB_LL(grp | LBS_DEB_ENTER, " enter", "%s(" fmt ")\n", __func__, ## args); | 
| Holger Schurig | 9012b28 | 2007-05-25 11:27:16 -0400 | [diff] [blame] | 60 | #define lbs_deb_leave(grp) \ | 
| Holger Schurig | e5225b3 | 2008-03-26 10:04:44 +0100 | [diff] [blame] | 61 | LBS_DEB_LL(grp | LBS_DEB_LEAVE, " leave", "%s()\n", __func__); | 
| Holger Schurig | 9012b28 | 2007-05-25 11:27:16 -0400 | [diff] [blame] | 62 | #define lbs_deb_leave_args(grp, fmt, args...) \ | 
| Holger Schurig | e5225b3 | 2008-03-26 10:04:44 +0100 | [diff] [blame] | 63 | LBS_DEB_LL(grp | LBS_DEB_LEAVE, " leave", "%s(), " fmt "\n", \ | 
|  | 64 | __func__, ##args); | 
| Holger Schurig | ece5619 | 2007-08-02 11:53:06 -0400 | [diff] [blame] | 65 | #define lbs_deb_main(fmt, args...)      LBS_DEB_LL(LBS_DEB_MAIN, " main", fmt, ##args) | 
|  | 66 | #define lbs_deb_net(fmt, args...)       LBS_DEB_LL(LBS_DEB_NET, " net", fmt, ##args) | 
|  | 67 | #define lbs_deb_mesh(fmt, args...)      LBS_DEB_LL(LBS_DEB_MESH, " mesh", fmt, ##args) | 
|  | 68 | #define lbs_deb_wext(fmt, args...)      LBS_DEB_LL(LBS_DEB_WEXT, " wext", fmt, ##args) | 
|  | 69 | #define lbs_deb_ioctl(fmt, args...)     LBS_DEB_LL(LBS_DEB_IOCTL, " ioctl", fmt, ##args) | 
|  | 70 | #define lbs_deb_scan(fmt, args...)      LBS_DEB_LL(LBS_DEB_SCAN, " scan", fmt, ##args) | 
|  | 71 | #define lbs_deb_assoc(fmt, args...)     LBS_DEB_LL(LBS_DEB_ASSOC, " assoc", fmt, ##args) | 
|  | 72 | #define lbs_deb_join(fmt, args...)      LBS_DEB_LL(LBS_DEB_JOIN, " join", fmt, ##args) | 
|  | 73 | #define lbs_deb_11d(fmt, args...)       LBS_DEB_LL(LBS_DEB_11D, " 11d", fmt, ##args) | 
|  | 74 | #define lbs_deb_debugfs(fmt, args...)   LBS_DEB_LL(LBS_DEB_DEBUGFS, " debugfs", fmt, ##args) | 
|  | 75 | #define lbs_deb_ethtool(fmt, args...)   LBS_DEB_LL(LBS_DEB_ETHTOOL, " ethtool", fmt, ##args) | 
|  | 76 | #define lbs_deb_host(fmt, args...)      LBS_DEB_LL(LBS_DEB_HOST, " host", fmt, ##args) | 
|  | 77 | #define lbs_deb_cmd(fmt, args...)       LBS_DEB_LL(LBS_DEB_CMD, " cmd", fmt, ##args) | 
|  | 78 | #define lbs_deb_rx(fmt, args...)        LBS_DEB_LL(LBS_DEB_RX, " rx", fmt, ##args) | 
|  | 79 | #define lbs_deb_tx(fmt, args...)        LBS_DEB_LL(LBS_DEB_TX, " tx", fmt, ##args) | 
|  | 80 | #define lbs_deb_fw(fmt, args...)        LBS_DEB_LL(LBS_DEB_FW, " fw", fmt, ##args) | 
|  | 81 | #define lbs_deb_usb(fmt, args...)       LBS_DEB_LL(LBS_DEB_USB, " usb", fmt, ##args) | 
| Kay Sievers | fb28ad3 | 2008-11-10 13:55:14 -0800 | [diff] [blame] | 82 | #define lbs_deb_usbd(dev, fmt, args...) LBS_DEB_LL(LBS_DEB_USB, " usbd", "%s:" fmt, dev_name(dev), ##args) | 
| Holger Schurig | ece5619 | 2007-08-02 11:53:06 -0400 | [diff] [blame] | 83 | #define lbs_deb_cs(fmt, args...)        LBS_DEB_LL(LBS_DEB_CS, " cs", fmt, ##args) | 
|  | 84 | #define lbs_deb_thread(fmt, args...)    LBS_DEB_LL(LBS_DEB_THREAD, " thread", fmt, ##args) | 
| Javier Cardona | 15dbaac | 2008-05-17 21:01:24 -0700 | [diff] [blame] | 85 | #define lbs_deb_sdio(fmt, args...)      LBS_DEB_LL(LBS_DEB_SDIO, " sdio", fmt, ##args) | 
|  | 86 | #define lbs_deb_sysfs(fmt, args...)     LBS_DEB_LL(LBS_DEB_SYSFS, " sysfs", fmt, ##args) | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 87 |  | 
|  | 88 | #define lbs_pr_info(format, args...) \ | 
|  | 89 | printk(KERN_INFO DRV_NAME": " format, ## args) | 
|  | 90 | #define lbs_pr_err(format, args...) \ | 
|  | 91 | printk(KERN_ERR DRV_NAME": " format, ## args) | 
|  | 92 | #define lbs_pr_alert(format, args...) \ | 
|  | 93 | printk(KERN_ALERT DRV_NAME": " format, ## args) | 
|  | 94 |  | 
|  | 95 | #ifdef DEBUG | 
| Holger Schurig | ece5619 | 2007-08-02 11:53:06 -0400 | [diff] [blame] | 96 | static inline void lbs_deb_hex(unsigned int grp, const char *prompt, u8 *buf, int len) | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 97 | { | 
|  | 98 | int i = 0; | 
|  | 99 |  | 
| Holger Schurig | ece5619 | 2007-08-02 11:53:06 -0400 | [diff] [blame] | 100 | if (len && | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 101 | (lbs_debug & LBS_DEB_HEX) && | 
|  | 102 | (lbs_debug & grp)) | 
| Holger Schurig | ece5619 | 2007-08-02 11:53:06 -0400 | [diff] [blame] | 103 | { | 
|  | 104 | for (i = 1; i <= len; i++) { | 
|  | 105 | if ((i & 0xf) == 1) { | 
|  | 106 | if (i != 1) | 
|  | 107 | printk("\n"); | 
|  | 108 | printk(DRV_NAME " %s: ", prompt); | 
|  | 109 | } | 
|  | 110 | printk("%02x ", (u8) * buf); | 
|  | 111 | buf++; | 
|  | 112 | } | 
|  | 113 | printk("\n"); | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 114 | } | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 115 | } | 
|  | 116 | #else | 
| Holger Schurig | ece5619 | 2007-08-02 11:53:06 -0400 | [diff] [blame] | 117 | #define lbs_deb_hex(grp,prompt,buf,len)	do {} while (0) | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 118 | #endif | 
|  | 119 |  | 
| Holger Schurig | 9012b28 | 2007-05-25 11:27:16 -0400 | [diff] [blame] | 120 |  | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 121 |  | 
|  | 122 | /** Buffer Constants */ | 
|  | 123 |  | 
|  | 124 | /*	The size of SQ memory PPA, DPA are 8 DWORDs, that keep the physical | 
|  | 125 | *	addresses of TxPD buffers. Station has only 8 TxPD available, Whereas | 
|  | 126 | *	driver has more local TxPDs. Each TxPD on the host memory is associated | 
|  | 127 | *	with a Tx control node. The driver maintains 8 RxPD descriptors for | 
|  | 128 | *	station firmware to store Rx packet information. | 
|  | 129 | * | 
|  | 130 | *	Current version of MAC has a 32x6 multicast address buffer. | 
|  | 131 | * | 
|  | 132 | *	802.11b can have up to  14 channels, the driver keeps the | 
|  | 133 | *	BSSID(MAC address) of each APs or Ad hoc stations it has sensed. | 
|  | 134 | */ | 
|  | 135 |  | 
|  | 136 | #define MRVDRV_MAX_MULTICAST_LIST_SIZE	32 | 
| Dan Williams | ddac452 | 2007-12-11 13:49:39 -0500 | [diff] [blame] | 137 | #define LBS_NUM_CMD_BUFFERS             10 | 
|  | 138 | #define LBS_CMD_BUFFER_SIZE             (2 * 1024) | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 139 | #define MRVDRV_MAX_CHANNEL_SIZE		14 | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 140 | #define MRVDRV_ASSOCIATION_TIME_OUT	255 | 
|  | 141 | #define MRVDRV_SNAP_HEADER_LEN          8 | 
|  | 142 |  | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 143 | #define	LBS_UPLD_SIZE			2312 | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 144 | #define DEV_NAME_LEN			32 | 
|  | 145 |  | 
| David Woodhouse | 6ce4fd2 | 2007-12-12 15:19:29 -0500 | [diff] [blame] | 146 | /* Wake criteria for HOST_SLEEP_CFG command */ | 
|  | 147 | #define EHS_WAKE_ON_BROADCAST_DATA	0x0001 | 
|  | 148 | #define EHS_WAKE_ON_UNICAST_DATA	0x0002 | 
|  | 149 | #define EHS_WAKE_ON_MAC_EVENT		0x0004 | 
|  | 150 | #define EHS_WAKE_ON_MULTICAST_DATA	0x0008 | 
|  | 151 | #define EHS_REMOVE_WAKEUP		0xFFFFFFFF | 
| Anna Neal | 582c1b5 | 2008-10-20 16:46:56 -0700 | [diff] [blame] | 152 | /* Wake rules for Host_Sleep_CFG command */ | 
|  | 153 | #define WOL_RULE_NET_TYPE_INFRA_OR_IBSS	0x00 | 
|  | 154 | #define WOL_RULE_NET_TYPE_MESH		0x10 | 
|  | 155 | #define WOL_RULE_ADDR_TYPE_BCAST	0x01 | 
|  | 156 | #define WOL_RULE_ADDR_TYPE_MCAST	0x08 | 
|  | 157 | #define WOL_RULE_ADDR_TYPE_UCAST	0x02 | 
|  | 158 | #define WOL_RULE_OP_AND			0x01 | 
|  | 159 | #define WOL_RULE_OP_OR			0x02 | 
|  | 160 | #define WOL_RULE_OP_INVALID		0xFF | 
|  | 161 | #define WOL_RESULT_VALID_CMD		0 | 
|  | 162 | #define WOL_RESULT_NOSPC_ERR		1 | 
|  | 163 | #define WOL_RESULT_EEXIST_ERR		2 | 
| David Woodhouse | 6ce4fd2 | 2007-12-12 15:19:29 -0500 | [diff] [blame] | 164 |  | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 165 | /** Misc constants */ | 
|  | 166 | /* This section defines 802.11 specific contants */ | 
|  | 167 |  | 
|  | 168 | #define MRVDRV_MAX_BSS_DESCRIPTS		16 | 
|  | 169 | #define MRVDRV_MAX_REGION_CODE			6 | 
|  | 170 |  | 
|  | 171 | #define MRVDRV_IGNORE_MULTIPLE_DTIM		0xfffe | 
|  | 172 | #define MRVDRV_MIN_MULTIPLE_DTIM		1 | 
|  | 173 | #define MRVDRV_MAX_MULTIPLE_DTIM		5 | 
|  | 174 | #define MRVDRV_DEFAULT_MULTIPLE_DTIM		1 | 
|  | 175 |  | 
|  | 176 | #define MRVDRV_DEFAULT_LISTEN_INTERVAL		10 | 
|  | 177 |  | 
|  | 178 | #define	MRVDRV_CHANNELS_PER_SCAN		4 | 
|  | 179 | #define	MRVDRV_MAX_CHANNELS_PER_SCAN		14 | 
|  | 180 |  | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 181 | #define MRVDRV_MIN_BEACON_INTERVAL		20 | 
|  | 182 | #define MRVDRV_MAX_BEACON_INTERVAL		1000 | 
|  | 183 | #define MRVDRV_BEACON_INTERVAL			100 | 
|  | 184 |  | 
| Luis Carlos Cobo | 1e838bf | 2007-08-02 10:51:27 -0400 | [diff] [blame] | 185 | #define MARVELL_MESH_IE_LENGTH		9 | 
|  | 186 |  | 
| Javier Cardona | edaea5c | 2008-05-17 00:55:10 -0700 | [diff] [blame] | 187 | /* Values used to populate the struct mrvl_mesh_ie.  The only time you need this | 
|  | 188 | * is when enabling the mesh using CMD_MESH_CONFIG. | 
|  | 189 | */ | 
|  | 190 | #define MARVELL_MESH_IE_TYPE		4 | 
|  | 191 | #define MARVELL_MESH_IE_SUBTYPE		0 | 
|  | 192 | #define MARVELL_MESH_IE_VERSION		0 | 
|  | 193 | #define MARVELL_MESH_PROTO_ID_HWMP	0 | 
|  | 194 | #define MARVELL_MESH_METRIC_ID		0 | 
|  | 195 | #define MARVELL_MESH_CAPABILITY		0 | 
|  | 196 |  | 
| Holger Schurig | 208fdd2 | 2007-05-25 12:17:06 -0400 | [diff] [blame] | 197 | /** INT status Bit Definition*/ | 
| Holger Schurig | c95c7f9 | 2007-08-02 11:49:45 -0400 | [diff] [blame] | 198 | #define MRVDRV_TX_DNLD_RDY		0x0001 | 
|  | 199 | #define MRVDRV_RX_UPLD_RDY		0x0002 | 
|  | 200 | #define MRVDRV_CMD_DNLD_RDY		0x0004 | 
|  | 201 | #define MRVDRV_CMD_UPLD_RDY		0x0008 | 
|  | 202 | #define MRVDRV_CARDEVENT		0x0010 | 
| Holger Schurig | 208fdd2 | 2007-05-25 12:17:06 -0400 | [diff] [blame] | 203 |  | 
| Anna Neal | 0112c9e | 2008-09-11 11:17:25 -0700 | [diff] [blame] | 204 | /* Automatic TX control default levels */ | 
|  | 205 | #define POW_ADAPT_DEFAULT_P0 13 | 
|  | 206 | #define POW_ADAPT_DEFAULT_P1 15 | 
|  | 207 | #define POW_ADAPT_DEFAULT_P2 18 | 
|  | 208 | #define TPC_DEFAULT_P0 5 | 
|  | 209 | #define TPC_DEFAULT_P1 10 | 
|  | 210 | #define TPC_DEFAULT_P2 13 | 
|  | 211 |  | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 212 | /** TxPD status */ | 
|  | 213 |  | 
|  | 214 | /*	Station firmware use TxPD status field to report final Tx transmit | 
|  | 215 | *	result, Bit masks are used to present combined situations. | 
|  | 216 | */ | 
|  | 217 |  | 
|  | 218 | #define MRVDRV_TxPD_POWER_MGMT_NULL_PACKET 0x01 | 
|  | 219 | #define MRVDRV_TxPD_POWER_MGMT_LAST_PACKET 0x08 | 
|  | 220 |  | 
|  | 221 | /** Tx mesh flag */ | 
|  | 222 | /* Currently we are using normal WDS flag as mesh flag. | 
|  | 223 | * TODO: change to proper mesh flag when MAC understands it. | 
|  | 224 | */ | 
|  | 225 | #define TxPD_CONTROL_WDS_FRAME (1<<17) | 
|  | 226 | #define TxPD_MESH_FRAME TxPD_CONTROL_WDS_FRAME | 
|  | 227 |  | 
|  | 228 | /** RxPD status */ | 
|  | 229 |  | 
|  | 230 | #define MRVDRV_RXPD_STATUS_OK                0x0001 | 
|  | 231 |  | 
|  | 232 | /** RxPD status - Received packet types */ | 
|  | 233 | /** Rx mesh flag */ | 
|  | 234 | /* Currently we are using normal WDS flag as mesh flag. | 
|  | 235 | * TODO: change to proper mesh flag when MAC understands it. | 
|  | 236 | */ | 
|  | 237 | #define RxPD_CONTROL_WDS_FRAME (0x40) | 
|  | 238 | #define RxPD_MESH_FRAME RxPD_CONTROL_WDS_FRAME | 
|  | 239 |  | 
|  | 240 | /** RSSI-related defines */ | 
|  | 241 | /*	RSSI constants are used to implement 802.11 RSSI threshold | 
|  | 242 | *	indication. if the Rx packet signal got too weak for 5 consecutive | 
|  | 243 | *	times, miniport driver (driver) will report this event to wrapper | 
|  | 244 | */ | 
|  | 245 |  | 
|  | 246 | #define MRVDRV_NF_DEFAULT_SCAN_VALUE		(-96) | 
|  | 247 |  | 
|  | 248 | /** RTS/FRAG related defines */ | 
|  | 249 | #define MRVDRV_RTS_MIN_VALUE		0 | 
|  | 250 | #define MRVDRV_RTS_MAX_VALUE		2347 | 
|  | 251 | #define MRVDRV_FRAG_MIN_VALUE		256 | 
|  | 252 | #define MRVDRV_FRAG_MAX_VALUE		2346 | 
|  | 253 |  | 
|  | 254 | /* This is for firmware specific length */ | 
|  | 255 | #define EXTRA_LEN	36 | 
|  | 256 |  | 
|  | 257 | #define MRVDRV_ETH_TX_PACKET_BUFFER_SIZE \ | 
|  | 258 | (ETH_FRAME_LEN + sizeof(struct txpd) + EXTRA_LEN) | 
|  | 259 |  | 
|  | 260 | #define MRVDRV_ETH_RX_PACKET_BUFFER_SIZE \ | 
|  | 261 | (ETH_FRAME_LEN + sizeof(struct rxpd) \ | 
|  | 262 | + MRVDRV_SNAP_HEADER_LEN + EXTRA_LEN) | 
|  | 263 |  | 
|  | 264 | #define	CMD_F_HOSTCMD		(1 << 0) | 
|  | 265 | #define FW_CAPINFO_WPA  	(1 << 0) | 
| Brian Cavagnolo | 1556c0f | 2008-07-21 11:02:46 -0700 | [diff] [blame] | 266 | #define FW_CAPINFO_FIRMWARE_UPGRADE	(1 << 13) | 
|  | 267 | #define FW_CAPINFO_BOOT2_UPGRADE	(1<<14) | 
|  | 268 | #define FW_CAPINFO_PERSISTENT_CONFIG	(1<<15) | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 269 |  | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 270 | #define KEY_LEN_WPA_AES			16 | 
|  | 271 | #define KEY_LEN_WPA_TKIP		32 | 
|  | 272 | #define KEY_LEN_WEP_104			13 | 
|  | 273 | #define KEY_LEN_WEP_40			5 | 
|  | 274 |  | 
|  | 275 | #define RF_ANTENNA_1		0x1 | 
|  | 276 | #define RF_ANTENNA_2		0x2 | 
|  | 277 | #define RF_ANTENNA_AUTO		0xFFFF | 
|  | 278 |  | 
|  | 279 | #define	BAND_B			(0x01) | 
|  | 280 | #define	BAND_G			(0x02) | 
|  | 281 | #define ALL_802_11_BANDS	(BAND_B | BAND_G) | 
|  | 282 |  | 
|  | 283 | /** MACRO DEFINITIONS */ | 
|  | 284 | #define CAL_NF(NF)			((s32)(-(s32)(NF))) | 
|  | 285 | #define CAL_RSSI(SNR, NF) 		((s32)((s32)(SNR) + CAL_NF(NF))) | 
|  | 286 | #define SCAN_RSSI(RSSI)			(0x100 - ((u8)(RSSI))) | 
|  | 287 |  | 
|  | 288 | #define DEFAULT_BCN_AVG_FACTOR		8 | 
|  | 289 | #define DEFAULT_DATA_AVG_FACTOR		8 | 
|  | 290 | #define AVG_SCALE			100 | 
|  | 291 | #define CAL_AVG_SNR_NF(AVG, SNRNF, N)         \ | 
|  | 292 | (((AVG) == 0) ? ((u16)(SNRNF) * AVG_SCALE) : \ | 
|  | 293 | ((((int)(AVG) * (N -1)) + ((u16)(SNRNF) * \ | 
|  | 294 | AVG_SCALE))  / N)) | 
|  | 295 |  | 
| Dan Williams | 8c51276 | 2007-08-02 11:40:45 -0400 | [diff] [blame] | 296 | #define MAX_RATES			14 | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 297 |  | 
|  | 298 | #define	MAX_LEDS			8 | 
|  | 299 |  | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 300 | /** Global Variable Declaration */ | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 301 | extern const char lbs_driver_version[]; | 
|  | 302 | extern u16 lbs_region_code_to_index[MRVDRV_MAX_REGION_CODE]; | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 303 |  | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 304 | extern u8 lbs_bg_rates[MAX_RATES]; | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 305 |  | 
|  | 306 | /** ENUM definition*/ | 
|  | 307 | /** SNRNF_TYPE */ | 
|  | 308 | enum SNRNF_TYPE { | 
|  | 309 | TYPE_BEACON = 0, | 
|  | 310 | TYPE_RXPD, | 
|  | 311 | MAX_TYPE_B | 
|  | 312 | }; | 
|  | 313 |  | 
|  | 314 | /** SNRNF_DATA*/ | 
|  | 315 | enum SNRNF_DATA { | 
|  | 316 | TYPE_NOAVG = 0, | 
|  | 317 | TYPE_AVG, | 
|  | 318 | MAX_TYPE_AVG | 
|  | 319 | }; | 
|  | 320 |  | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 321 | /** LBS_802_11_POWER_MODE */ | 
|  | 322 | enum LBS_802_11_POWER_MODE { | 
|  | 323 | LBS802_11POWERMODECAM, | 
|  | 324 | LBS802_11POWERMODEMAX_PSP, | 
|  | 325 | LBS802_11POWERMODEFAST_PSP, | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 326 | /*not a real mode, defined as an upper bound */ | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 327 | LBS802_11POWEMODEMAX | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 328 | }; | 
|  | 329 |  | 
|  | 330 | /** PS_STATE */ | 
|  | 331 | enum PS_STATE { | 
|  | 332 | PS_STATE_FULL_POWER, | 
|  | 333 | PS_STATE_AWAKE, | 
|  | 334 | PS_STATE_PRE_SLEEP, | 
|  | 335 | PS_STATE_SLEEP | 
|  | 336 | }; | 
|  | 337 |  | 
|  | 338 | /** DNLD_STATE */ | 
|  | 339 | enum DNLD_STATE { | 
|  | 340 | DNLD_RES_RECEIVED, | 
|  | 341 | DNLD_DATA_SENT, | 
| Brian Cavagnolo | 1556c0f | 2008-07-21 11:02:46 -0700 | [diff] [blame] | 342 | DNLD_CMD_SENT, | 
|  | 343 | DNLD_BOOTCMD_SENT, | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 344 | }; | 
|  | 345 |  | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 346 | /** LBS_MEDIA_STATE */ | 
|  | 347 | enum LBS_MEDIA_STATE { | 
|  | 348 | LBS_CONNECTED, | 
|  | 349 | LBS_DISCONNECTED | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 350 | }; | 
|  | 351 |  | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 352 | /** LBS_802_11_PRIVACY_FILTER */ | 
|  | 353 | enum LBS_802_11_PRIVACY_FILTER { | 
|  | 354 | LBS802_11PRIVFILTERACCEPTALL, | 
|  | 355 | LBS802_11PRIVFILTER8021XWEP | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 356 | }; | 
|  | 357 |  | 
|  | 358 | /** mv_ms_type */ | 
|  | 359 | enum mv_ms_type { | 
|  | 360 | MVMS_DAT = 0, | 
|  | 361 | MVMS_CMD = 1, | 
|  | 362 | MVMS_TXDONE = 2, | 
|  | 363 | MVMS_EVENT | 
|  | 364 | }; | 
|  | 365 |  | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 366 | /** KEY_TYPE_ID */ | 
|  | 367 | enum KEY_TYPE_ID { | 
|  | 368 | KEY_TYPE_ID_WEP = 0, | 
|  | 369 | KEY_TYPE_ID_TKIP, | 
|  | 370 | KEY_TYPE_ID_AES | 
|  | 371 | }; | 
|  | 372 |  | 
|  | 373 | /** KEY_INFO_WPA (applies to both TKIP and AES/CCMP) */ | 
|  | 374 | enum KEY_INFO_WPA { | 
|  | 375 | KEY_INFO_WPA_MCAST = 0x01, | 
|  | 376 | KEY_INFO_WPA_UNICAST = 0x02, | 
|  | 377 | KEY_INFO_WPA_ENABLED = 0x04 | 
|  | 378 | }; | 
|  | 379 |  | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 380 | /* Default values for fwt commands. */ | 
|  | 381 | #define FWT_DEFAULT_METRIC 0 | 
|  | 382 | #define FWT_DEFAULT_DIR 1 | 
| Luis Carlos Cobo | 90e8eaf | 2007-05-25 13:53:26 -0400 | [diff] [blame] | 383 | /* Default Rate, 11Mbps */ | 
|  | 384 | #define FWT_DEFAULT_RATE 3 | 
| Marcelo Tosatti | 876c9d3 | 2007-02-10 12:25:27 -0200 | [diff] [blame] | 385 | #define FWT_DEFAULT_SSN 0xffffffff | 
|  | 386 | #define FWT_DEFAULT_DSN 0 | 
|  | 387 | #define FWT_DEFAULT_HOPCOUNT 0 | 
|  | 388 | #define FWT_DEFAULT_TTL 0 | 
|  | 389 | #define FWT_DEFAULT_EXPIRATION 0 | 
|  | 390 | #define FWT_DEFAULT_SLEEPMODE 0 | 
|  | 391 | #define FWT_DEFAULT_SNR 0 | 
|  | 392 |  | 
| Holger Schurig | 1007832 | 2007-11-15 18:05:47 -0500 | [diff] [blame] | 393 | #endif |