x86, fixmap: prepare fixmap_64.h for unification
[linux-2.6/mini2440.git] / drivers / staging / otus / usbdrv.h
bloba11b3b36a906b6a4206101966a11fd500d926f97
1 /*
2 * Copyright (c) 2007-2008 Atheros Communications Inc.
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 /* */
17 /* Module Name : usbdrv.h */
18 /* */
19 /* Abstract */
20 /* This module contains network interface up/down related definition*/
21 /* */
22 /* NOTES */
23 /* Platform dependent. */
24 /* */
25 /************************************************************************/
27 #ifndef _USBDRV_H
28 #define _USBDRV_H
30 #define WLAN_USB 0
31 #define WLAN_PCI 1
33 #include <linux/module.h>
34 #include <linux/pci.h>
35 #include <linux/netdevice.h>
36 #include <linux/etherdevice.h>
37 #include <linux/skbuff.h>
38 #include <linux/uaccess.h>
39 #include <linux/wireless.h>
40 #include <linux/if_arp.h>
41 #include <linux/io.h>
43 #include "zdcompat.h"
45 #include "oal_dt.h"
46 #include "oal_marc.h"
47 #include "80211core/pub_zfi.h"
48 //#include "pub_zfw.h"
49 #include "80211core/pub_usb.h"
51 #include <linux/usb.h>
52 /* Please include header files for device type in the beginning of this file */
53 #define urb_t struct urb
55 #define usb_complete_t usb_complete_t
56 #define pipe_t u32_t
58 /* USB Endpoint definition */
59 #define USB_WLAN_TX_PIPE 1
60 #define USB_WLAN_RX_PIPE 2
61 #define USB_REG_IN_PIPE 3
62 #define USB_REG_OUT_PIPE 4
64 #if (WLAN_HOSTIF == WLAN_USB)
65 #include <linux/usb.h>
66 #endif
68 #ifdef ZM_HOSTAPD_SUPPORT
69 #include "athr_common.h"
70 #endif
72 /**************************************************************************
73 ** Descriptor Data Structure
74 ***************************************************************************/
75 struct driver_stats {
76 struct net_device_stats net_stats;
79 #define ZM_MAX_RX_BUFFER_SIZE 8192
81 #if ZM_USB_TX_STREAM_MODE == 1
82 #define ZM_MAX_TX_AGGREGATE_NUM 4
83 #define ZM_USB_TX_BUF_SIZE 8096
84 #define ZM_MAX_TX_URB_NUM 4
85 #else
86 #define ZM_USB_TX_BUF_SIZE 2048
87 #define ZM_MAX_TX_URB_NUM 8
88 #endif
89 #define ZM_USB_REG_MAX_BUF_SIZE 64
90 #define ZM_MAX_RX_URB_NUM 16
91 #define ZM_MAX_TX_BUF_NUM 128
93 typedef struct UsbTxQ
95 zbuf_t *buf;
96 u8_t hdr[80];
97 u16_t hdrlen;
98 u8_t snap[8];
99 u16_t snapLen;
100 u8_t tail[16];
101 u16_t tailLen;
102 u16_t offset;
103 } UsbTxQ_t;
106 struct zdap_ioctl {
107 u16_t cmd; /* Command to run */
108 u32_t addr; /* Length of the data buffer */
109 u32_t value; /* Pointer to the data buffer */
110 u8_t data[0x100];
113 #define ZM_OAL_MAX_STA_SUPPORT 16
115 struct usbdrv_private
117 //linux used
118 struct net_device *device;
119 #if (WLAN_HOSTIF == WLAN_PCI)
120 struct pci_dev *pdev;
121 #endif
122 #if (WLAN_HOSTIF == WLAN_USB)
123 struct usb_device *udev;
124 struct usb_interface *interface;
125 #endif
126 struct driver_stats drv_stats;
127 char ifname[IFNAMSIZ];
128 int using_dac;
129 u8_t rev_id; /* adapter PCI revision ID */
130 rwlock_t isolate_lock;
131 spinlock_t cs_lock;
132 int driver_isolated;
133 #if (WLAN_HOSTIF == WLAN_PCI)
134 void *regp;
135 #endif
137 /* timer for heart beat */
138 struct timer_list hbTimer10ms;
140 /* For driver core */
141 void* wd;
143 #if (WLAN_HOSTIF == WLAN_USB)
144 u8_t txUsbBuf[ZM_MAX_TX_URB_NUM][ZM_USB_TX_BUF_SIZE];
145 u8_t regUsbReadBuf[ZM_USB_REG_MAX_BUF_SIZE];
146 u8_t regUsbWriteBuf[ZM_USB_REG_MAX_BUF_SIZE];
147 urb_t *WlanTxDataUrb[ZM_MAX_TX_URB_NUM];
148 urb_t *WlanRxDataUrb[ZM_MAX_RX_URB_NUM];
149 urb_t *RegOutUrb;
150 urb_t *RegInUrb;
151 UsbTxQ_t UsbTxBufQ[ZM_MAX_TX_BUF_NUM];
152 zbuf_t *UsbRxBufQ[ZM_MAX_RX_URB_NUM];
153 u16_t TxBufHead;
154 u16_t TxBufTail;
155 u16_t TxBufCnt;
156 u16_t TxUrbHead;
157 u16_t TxUrbTail;
158 u16_t TxUrbCnt;
159 u16_t RxBufHead;
160 u16_t RxBufTail;
161 u16_t RxBufCnt;
162 #endif
164 #if ZM_USB_STREAM_MODE == 1
165 zbuf_t *reamin_buf;
166 #endif
168 #ifdef ZM_HOSTAPD_SUPPORT
169 struct athr_wlan_param athr_wpa_req;
170 #endif
171 struct sock *netlink_sk;
172 u8_t DeviceOpened; //CWYang(+)
173 u8_t supIe[50];
174 u8_t supLen;
175 struct ieee80211req_wpaie stawpaie[ZM_OAL_MAX_STA_SUPPORT];
176 u8_t forwardMgmt;
178 struct zfCbUsbFuncTbl usbCbFunctions;
180 /* For keventd */
181 u32_t flags;
182 unsigned long kevent_flags;
183 u16_t kevent_ready;
185 struct semaphore ioctl_sem;
186 struct work_struct kevent;
187 wait_queue_head_t wait_queue_event;
188 #ifdef ZM_HALPLUS_LOCK
189 unsigned long hal_irqFlag;
190 #endif
191 u16_t adapterState;
194 /* WDS */
195 #define ZM_WDS_PORT_NUMBER 6
197 struct zsWdsStruct
199 struct net_device* dev;
200 u16_t openFlag;
203 /* VAP */
204 #define ZM_VAP_PORT_NUMBER 7
206 struct zsVapStruct
208 struct net_device* dev;
209 u16_t openFlag;
212 /***************************************/
214 #define ZM_IOCTL_REG_READ 0x01
215 #define ZM_IOCTL_REG_WRITE 0x02
216 #define ZM_IOCTL_MEM_DUMP 0x03
217 #define ZM_IOCTL_REG_DUMP 0x05
218 #define ZM_IOCTL_TXD_DUMP 0x06
219 #define ZM_IOCTL_RXD_DUMP 0x07
220 #define ZM_IOCTL_MEM_READ 0x0B
221 #define ZM_IOCTL_MEM_WRITE 0x0C
222 #define ZM_IOCTL_DMA_TEST 0x10
223 #define ZM_IOCTL_REG_TEST 0x11
224 #define ZM_IOCTL_TEST 0x80
225 #define ZM_IOCTL_TALLY 0x81 //CWYang(+)
226 #define ZM_IOCTL_RTS 0xA0
227 #define ZM_IOCTL_MIX_MODE 0xA1
228 #define ZM_IOCTL_FRAG 0xA2
229 #define ZM_IOCTL_SCAN 0xA3
230 #define ZM_IOCTL_KEY 0xA4
231 #define ZM_IOCTL_RATE 0xA5
232 #define ZM_IOCTL_ENCRYPTION_MODE 0xA6
233 #define ZM_IOCTL_GET_TXCNT 0xA7
234 #define ZM_IOCTL_GET_DEAGG_CNT 0xA8
235 #define ZM_IOCTL_DURATION_MODE 0xA9
236 #define ZM_IOCTL_SET_AES_KEY 0xAA
237 #define ZM_IOCTL_SET_AES_MODE 0xAB
238 #define ZM_IOCTL_SIGNAL_STRENGTH 0xAC //CWYang(+)
239 #define ZM_IOCTL_SIGNAL_QUALITY 0xAD //CWYang(+)
240 #define ZM_IOCTL_SET_PIBSS_MODE 0xAE
242 #define ZDAPIOCTL SIOCDEVPRIVATE
244 enum devState {
245 Opened,
246 Enabled,
247 Disabled,
248 Closed
251 #endif /* _USBDRV_H */