aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/vt6656
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2010-05-21 15:48:55 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-05-21 15:48:55 -0400
commitc8d1a126924fcbc1d61ceb830226e0c7afdcc841 (patch)
treed3f3c850481c33b7f433175e83a189f958b1b868 /drivers/staging/vt6656
parentd7dbf4ffee1c7a17e2e5b5f01efe76fbd1671db6 (diff)
parent107c161b7ddeeb7da43509cc6b29211885ccd9af (diff)
Merge staging-next tree into Linus's latest version
Conflicts: drivers/staging/arlan/arlan-main.c drivers/staging/comedi/drivers/cb_das16_cs.c drivers/staging/cx25821/cx25821-alsa.c drivers/staging/dt3155/dt3155_drv.c drivers/staging/hv/hv.c drivers/staging/netwave/netwave_cs.c drivers/staging/wavelan/wavelan.c drivers/staging/wavelan/wavelan_cs.c drivers/staging/wlags49_h2/wl_cs.c This required a bit of hand merging due to the conflicts that happened in the later .34-rc releases, as well as some staging driver changing coming in through other trees (v4l and pcmcia). Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/vt6656')
-rw-r--r--drivers/staging/vt6656/80211hdr.h83
-rw-r--r--drivers/staging/vt6656/80211mgr.c88
-rw-r--r--drivers/staging/vt6656/80211mgr.h136
-rw-r--r--drivers/staging/vt6656/aes_ccmp.c564
-rw-r--r--drivers/staging/vt6656/aes_ccmp.h2
-rw-r--r--drivers/staging/vt6656/baseband.c114
-rw-r--r--drivers/staging/vt6656/baseband.h59
-rw-r--r--drivers/staging/vt6656/bssdb.c402
-rw-r--r--drivers/staging/vt6656/bssdb.h252
-rw-r--r--drivers/staging/vt6656/card.c68
-rw-r--r--drivers/staging/vt6656/card.h62
-rw-r--r--drivers/staging/vt6656/channel.c12
-rw-r--r--drivers/staging/vt6656/channel.h10
-rw-r--r--drivers/staging/vt6656/control.c87
-rw-r--r--drivers/staging/vt6656/control.h31
-rw-r--r--drivers/staging/vt6656/datarate.c71
-rw-r--r--drivers/staging/vt6656/datarate.h39
-rw-r--r--drivers/staging/vt6656/desc.h12
-rw-r--r--drivers/staging/vt6656/device.h218
-rw-r--r--drivers/staging/vt6656/dpc.c305
-rw-r--r--drivers/staging/vt6656/dpc.h27
-rw-r--r--drivers/staging/vt6656/firmware.c6
-rw-r--r--drivers/staging/vt6656/firmware.h9
-rw-r--r--drivers/staging/vt6656/hostap.c27
-rw-r--r--drivers/staging/vt6656/hostap.h9
-rw-r--r--drivers/staging/vt6656/int.c251
-rw-r--r--drivers/staging/vt6656/int.h12
-rw-r--r--drivers/staging/vt6656/iocmd.h353
-rw-r--r--drivers/staging/vt6656/ioctl.c47
-rw-r--r--drivers/staging/vt6656/ioctl.h15
-rw-r--r--drivers/staging/vt6656/iowpa.h4
-rw-r--r--drivers/staging/vt6656/iwctl.c52
-rw-r--r--drivers/staging/vt6656/iwctl.h5
-rw-r--r--drivers/staging/vt6656/key.c87
-rw-r--r--drivers/staging/vt6656/key.h62
-rw-r--r--drivers/staging/vt6656/mac.c14
-rw-r--r--drivers/staging/vt6656/mac.h9
-rw-r--r--drivers/staging/vt6656/main_usb.c223
-rw-r--r--drivers/staging/vt6656/mib.c115
-rw-r--r--drivers/staging/vt6656/mib.h192
-rw-r--r--drivers/staging/vt6656/michael.c181
-rw-r--r--drivers/staging/vt6656/michael.h12
-rw-r--r--drivers/staging/vt6656/power.c58
-rw-r--r--drivers/staging/vt6656/power.h45
-rw-r--r--drivers/staging/vt6656/rc4.c84
-rw-r--r--drivers/staging/vt6656/rc4.h13
-rw-r--r--drivers/staging/vt6656/rf.c32
-rw-r--r--drivers/staging/vt6656/rf.h33
-rw-r--r--drivers/staging/vt6656/rndis.h3
-rw-r--r--drivers/staging/vt6656/rxtx.c868
-rw-r--r--drivers/staging/vt6656/rxtx.h46
-rw-r--r--drivers/staging/vt6656/srom.h2
-rw-r--r--drivers/staging/vt6656/tcrc.c23
-rw-r--r--drivers/staging/vt6656/tcrc.h11
-rw-r--r--drivers/staging/vt6656/tether.c45
-rw-r--r--drivers/staging/vt6656/tether.h33
-rw-r--r--drivers/staging/vt6656/tkip.c2
-rw-r--r--drivers/staging/vt6656/tkip.h7
-rw-r--r--drivers/staging/vt6656/tmacro.h4
-rw-r--r--drivers/staging/vt6656/ttype.h57
-rw-r--r--drivers/staging/vt6656/upc.h8
-rw-r--r--drivers/staging/vt6656/usbpipe.c138
-rw-r--r--drivers/staging/vt6656/usbpipe.h51
-rw-r--r--drivers/staging/vt6656/wcmd.c172
-rw-r--r--drivers/staging/vt6656/wcmd.h36
-rw-r--r--drivers/staging/vt6656/wctl.c23
-rw-r--r--drivers/staging/vt6656/wctl.h13
-rw-r--r--drivers/staging/vt6656/wmgr.c960
-rw-r--r--drivers/staging/vt6656/wmgr.h180
-rw-r--r--drivers/staging/vt6656/wpa.c14
-rw-r--r--drivers/staging/vt6656/wpa.h16
-rw-r--r--drivers/staging/vt6656/wpa2.c50
-rw-r--r--drivers/staging/vt6656/wpa2.h20
-rw-r--r--drivers/staging/vt6656/wpactl.c25
-rw-r--r--drivers/staging/vt6656/wpactl.h9
75 files changed, 3529 insertions, 3879 deletions
diff --git a/drivers/staging/vt6656/80211hdr.h b/drivers/staging/vt6656/80211hdr.h
index e5cee6fd053..15c6ef1a635 100644
--- a/drivers/staging/vt6656/80211hdr.h
+++ b/drivers/staging/vt6656/80211hdr.h
@@ -16,16 +16,13 @@
16 * with this program; if not, write to the Free Software Foundation, Inc., 16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 * 18 *
19 *
20 * File: 80211hdr.h 19 * File: 80211hdr.h
21 * 20 *
22 * Purpose: 802.11 MAC headers related pre-defines and macros. 21 * Purpose: 802.11 MAC headers related pre-defines and macros.
23 * 22 *
24 *
25 * Author: Lyndon Chen 23 * Author: Lyndon Chen
26 * 24 *
27 * Date: Apr 8, 2002 25 * Date: Apr 8, 2002
28 *
29 */ 26 */
30 27
31#ifndef __80211HDR_H__ 28#ifndef __80211HDR_H__
@@ -34,7 +31,8 @@
34#include "ttype.h" 31#include "ttype.h"
35 32
36/*--------------------- Export Definitions -------------------------*/ 33/*--------------------- Export Definitions -------------------------*/
37// bit type 34
35/* bit type */
38#define BIT0 0x00000001 36#define BIT0 0x00000001
39#define BIT1 0x00000002 37#define BIT1 0x00000002
40#define BIT2 0x00000004 38#define BIT2 0x00000004
@@ -68,7 +66,7 @@
68#define BIT30 0x40000000 66#define BIT30 0x40000000
69#define BIT31 0x80000000 67#define BIT31 0x80000000
70 68
71// 802.11 frame related, defined as 802.11 spec 69/* 802.11 frame related, defined as 802.11 spec */
72#define WLAN_ADDR_LEN 6 70#define WLAN_ADDR_LEN 6
73#define WLAN_CRC_LEN 4 71#define WLAN_CRC_LEN 4
74#define WLAN_CRC32_LEN 4 72#define WLAN_CRC32_LEN 4
@@ -80,13 +78,14 @@
80#define WLAN_HDR_ADDR4_LEN 30 78#define WLAN_HDR_ADDR4_LEN 30
81#define WLAN_IEHDR_LEN 2 79#define WLAN_IEHDR_LEN 2
82#define WLAN_SSID_MAXLEN 32 80#define WLAN_SSID_MAXLEN 32
83//#define WLAN_RATES_MAXLEN 255 81/* #define WLAN_RATES_MAXLEN 255 */
84#define WLAN_RATES_MAXLEN 16 82#define WLAN_RATES_MAXLEN 16
85#define WLAN_RATES_MAXLEN_11B 4 83#define WLAN_RATES_MAXLEN_11B 4
86#define WLAN_RSN_MAXLEN 32 84#define WLAN_RSN_MAXLEN 32
87#define WLAN_DATA_MAXLEN 2312 85#define WLAN_DATA_MAXLEN 2312
88#define WLAN_A3FR_MAXLEN (WLAN_HDR_ADDR3_LEN + WLAN_DATA_MAXLEN + WLAN_CRC_LEN) 86#define WLAN_A3FR_MAXLEN (WLAN_HDR_ADDR3_LEN \
89 87 + WLAN_DATA_MAXLEN \
88 + WLAN_CRC_LEN)
90 89
91#define WLAN_BEACON_FR_MAXLEN WLAN_A3FR_MAXLEN 90#define WLAN_BEACON_FR_MAXLEN WLAN_A3FR_MAXLEN
92#define WLAN_ATIM_FR_MAXLEN (WLAN_HDR_ADDR3_LEN + 0) 91#define WLAN_ATIM_FR_MAXLEN (WLAN_HDR_ADDR3_LEN + 0)
@@ -101,12 +100,11 @@
101#define WLAN_AUTHEN_FR_MAXLEN WLAN_A3FR_MAXLEN 100#define WLAN_AUTHEN_FR_MAXLEN WLAN_A3FR_MAXLEN
102#define WLAN_DEAUTHEN_FR_MAXLEN (WLAN_HDR_ADDR3_LEN + 2) 101#define WLAN_DEAUTHEN_FR_MAXLEN (WLAN_HDR_ADDR3_LEN + 2)
103 102
104
105#define WLAN_WEP_NKEYS 4 103#define WLAN_WEP_NKEYS 4
106#define WLAN_WEP40_KEYLEN 5 104#define WLAN_WEP40_KEYLEN 5
107#define WLAN_WEP104_KEYLEN 13 105#define WLAN_WEP104_KEYLEN 13
108#define WLAN_WEP232_KEYLEN 29 106#define WLAN_WEP232_KEYLEN 29
109//#define WLAN_WEPMAX_KEYLEN 29 107/* #define WLAN_WEPMAX_KEYLEN 29 */
110#define WLAN_WEPMAX_KEYLEN 32 108#define WLAN_WEPMAX_KEYLEN 32
111#define WLAN_CHALLENGE_IE_MAXLEN 255 109#define WLAN_CHALLENGE_IE_MAXLEN 255
112#define WLAN_CHALLENGE_IE_LEN 130 110#define WLAN_CHALLENGE_IE_LEN 130
@@ -115,7 +113,7 @@
115#define WLAN_WEP_ICV_LEN 4 113#define WLAN_WEP_ICV_LEN 4
116#define WLAN_FRAGS_MAX 16 114#define WLAN_FRAGS_MAX 16
117 115
118// Frame Type 116/* Frame Type */
119#define WLAN_TYPE_MGR 0x00 117#define WLAN_TYPE_MGR 0x00
120#define WLAN_TYPE_CTL 0x01 118#define WLAN_TYPE_CTL 0x01
121#define WLAN_TYPE_DATA 0x02 119#define WLAN_TYPE_DATA 0x02
@@ -124,8 +122,7 @@
124#define WLAN_FTYPE_CTL 0x01 122#define WLAN_FTYPE_CTL 0x01
125#define WLAN_FTYPE_DATA 0x02 123#define WLAN_FTYPE_DATA 0x02
126 124
127 125/* Frame Subtypes */
128// Frame Subtypes
129#define WLAN_FSTYPE_ASSOCREQ 0x00 126#define WLAN_FSTYPE_ASSOCREQ 0x00
130#define WLAN_FSTYPE_ASSOCRESP 0x01 127#define WLAN_FSTYPE_ASSOCRESP 0x01
131#define WLAN_FSTYPE_REASSOCREQ 0x02 128#define WLAN_FSTYPE_REASSOCREQ 0x02
@@ -139,7 +136,7 @@
139#define WLAN_FSTYPE_DEAUTHEN 0x0c 136#define WLAN_FSTYPE_DEAUTHEN 0x0c
140#define WLAN_FSTYPE_ACTION 0x0d 137#define WLAN_FSTYPE_ACTION 0x0d
141 138
142// Control 139/* Control */
143#define WLAN_FSTYPE_PSPOLL 0x0a 140#define WLAN_FSTYPE_PSPOLL 0x0a
144#define WLAN_FSTYPE_RTS 0x0b 141#define WLAN_FSTYPE_RTS 0x0b
145#define WLAN_FSTYPE_CTS 0x0c 142#define WLAN_FSTYPE_CTS 0x0c
@@ -147,7 +144,7 @@
147#define WLAN_FSTYPE_CFEND 0x0e 144#define WLAN_FSTYPE_CFEND 0x0e
148#define WLAN_FSTYPE_CFENDCFACK 0x0f 145#define WLAN_FSTYPE_CFENDCFACK 0x0f
149 146
150// Data 147/* Data */
151#define WLAN_FSTYPE_DATAONLY 0x00 148#define WLAN_FSTYPE_DATAONLY 0x00
152#define WLAN_FSTYPE_DATA_CFACK 0x01 149#define WLAN_FSTYPE_DATA_CFACK 0x01
153#define WLAN_FSTYPE_DATA_CFPOLL 0x02 150#define WLAN_FSTYPE_DATA_CFPOLL 0x02
@@ -157,13 +154,13 @@
157#define WLAN_FSTYPE_CFPOLL 0x06 154#define WLAN_FSTYPE_CFPOLL 0x06
158#define WLAN_FSTYPE_CFACK_CFPOLL 0x07 155#define WLAN_FSTYPE_CFACK_CFPOLL 0x07
159 156
160
161#ifdef __BIG_ENDIAN 157#ifdef __BIG_ENDIAN
162 158
163// GET & SET Frame Control bit 159/* GET & SET Frame Control bit */
164#define WLAN_GET_FC_PRVER(n) ((((WORD)(n) >> 8) & (BIT0 | BIT1)) 160#define WLAN_GET_FC_PRVER(n) ((((WORD)(n) >> 8) & (BIT0 | BIT1))
165#define WLAN_GET_FC_FTYPE(n) ((((WORD)(n) >> 8) & (BIT2 | BIT3)) >> 2) 161#define WLAN_GET_FC_FTYPE(n) ((((WORD)(n) >> 8) & (BIT2 | BIT3)) >> 2)
166#define WLAN_GET_FC_FSTYPE(n) ((((WORD)(n) >> 8) & (BIT4|BIT5|BIT6|BIT7)) >> 4) 162#define WLAN_GET_FC_FSTYPE(n) ((((WORD)(n) >> 8) \
163 & (BIT4|BIT5|BIT6|BIT7)) >> 4)
167#define WLAN_GET_FC_TODS(n) ((((WORD)(n) << 8) & (BIT8)) >> 8) 164#define WLAN_GET_FC_TODS(n) ((((WORD)(n) << 8) & (BIT8)) >> 8)
168#define WLAN_GET_FC_FROMDS(n) ((((WORD)(n) << 8) & (BIT9)) >> 9) 165#define WLAN_GET_FC_FROMDS(n) ((((WORD)(n) << 8) & (BIT9)) >> 9)
169#define WLAN_GET_FC_MOREFRAG(n) ((((WORD)(n) << 8) & (BIT10)) >> 10) 166#define WLAN_GET_FC_MOREFRAG(n) ((((WORD)(n) << 8) & (BIT10)) >> 10)
@@ -173,12 +170,12 @@
173#define WLAN_GET_FC_ISWEP(n) ((((WORD)(n) << 8) & (BIT14)) >> 14) 170#define WLAN_GET_FC_ISWEP(n) ((((WORD)(n) << 8) & (BIT14)) >> 14)
174#define WLAN_GET_FC_ORDER(n) ((((WORD)(n) << 8) & (BIT15)) >> 15) 171#define WLAN_GET_FC_ORDER(n) ((((WORD)(n) << 8) & (BIT15)) >> 15)
175 172
176// Sequence Field bit 173/* Sequence Field bit */
177#define WLAN_GET_SEQ_FRGNUM(n) (((WORD)(n) >> 8) & (BIT0|BIT1|BIT2|BIT3)) 174#define WLAN_GET_SEQ_FRGNUM(n) (((WORD)(n) >> 8) & (BIT0|BIT1|BIT2|BIT3))
178#define WLAN_GET_SEQ_SEQNUM(n) ((((WORD)(n) >> 8) & (~(BIT0|BIT1|BIT2|BIT3))) >> 4) 175#define WLAN_GET_SEQ_SEQNUM(n) ((((WORD)(n) >> 8) \
179 176 & (~(BIT0|BIT1|BIT2|BIT3))) >> 4)
180 177
181// Capability Field bit 178/* Capability Field bit */
182#define WLAN_GET_CAP_INFO_ESS(n) (((n) >> 8) & BIT0) 179#define WLAN_GET_CAP_INFO_ESS(n) (((n) >> 8) & BIT0)
183#define WLAN_GET_CAP_INFO_IBSS(n) ((((n) >> 8) & BIT1) >> 1) 180#define WLAN_GET_CAP_INFO_IBSS(n) ((((n) >> 8) & BIT1) >> 1)
184#define WLAN_GET_CAP_INFO_CFPOLLABLE(n) ((((n) >> 8) & BIT2) >> 2) 181#define WLAN_GET_CAP_INFO_CFPOLLABLE(n) ((((n) >> 8) & BIT2) >> 2)
@@ -192,10 +189,9 @@
192#define WLAN_GET_CAP_INFO_DSSSOFDM(n) ((((n)) & BIT13) >> 13) 189#define WLAN_GET_CAP_INFO_DSSSOFDM(n) ((((n)) & BIT13) >> 13)
193#define WLAN_GET_CAP_INFO_GRPACK(n) ((((n)) & BIT14) >> 14) 190#define WLAN_GET_CAP_INFO_GRPACK(n) ((((n)) & BIT14) >> 14)
194 191
195
196#else 192#else
197 193
198// GET & SET Frame Control bit 194/* GET & SET Frame Control bit */
199#define WLAN_GET_FC_PRVER(n) (((WORD)(n)) & (BIT0 | BIT1)) 195#define WLAN_GET_FC_PRVER(n) (((WORD)(n)) & (BIT0 | BIT1))
200#define WLAN_GET_FC_FTYPE(n) ((((WORD)(n)) & (BIT2 | BIT3)) >> 2) 196#define WLAN_GET_FC_FTYPE(n) ((((WORD)(n)) & (BIT2 | BIT3)) >> 2)
201#define WLAN_GET_FC_FSTYPE(n) ((((WORD)(n)) & (BIT4|BIT5|BIT6|BIT7)) >> 4) 197#define WLAN_GET_FC_FSTYPE(n) ((((WORD)(n)) & (BIT4|BIT5|BIT6|BIT7)) >> 4)
@@ -208,13 +204,11 @@
208#define WLAN_GET_FC_ISWEP(n) ((((WORD)(n)) & (BIT14)) >> 14) 204#define WLAN_GET_FC_ISWEP(n) ((((WORD)(n)) & (BIT14)) >> 14)
209#define WLAN_GET_FC_ORDER(n) ((((WORD)(n)) & (BIT15)) >> 15) 205#define WLAN_GET_FC_ORDER(n) ((((WORD)(n)) & (BIT15)) >> 15)
210 206
211 207/* Sequence Field bit */
212// Sequence Field bit
213#define WLAN_GET_SEQ_FRGNUM(n) (((WORD)(n)) & (BIT0|BIT1|BIT2|BIT3)) 208#define WLAN_GET_SEQ_FRGNUM(n) (((WORD)(n)) & (BIT0|BIT1|BIT2|BIT3))
214#define WLAN_GET_SEQ_SEQNUM(n) ((((WORD)(n)) & (~(BIT0|BIT1|BIT2|BIT3))) >> 4) 209#define WLAN_GET_SEQ_SEQNUM(n) ((((WORD)(n)) & (~(BIT0|BIT1|BIT2|BIT3))) >> 4)
215 210
216 211/* Capability Field bit */
217// Capability Field bit
218#define WLAN_GET_CAP_INFO_ESS(n) ((n) & BIT0) 212#define WLAN_GET_CAP_INFO_ESS(n) ((n) & BIT0)
219#define WLAN_GET_CAP_INFO_IBSS(n) (((n) & BIT1) >> 1) 213#define WLAN_GET_CAP_INFO_IBSS(n) (((n) & BIT1) >> 1)
220#define WLAN_GET_CAP_INFO_CFPOLLABLE(n) (((n) & BIT2) >> 2) 214#define WLAN_GET_CAP_INFO_CFPOLLABLE(n) (((n) & BIT2) >> 2)
@@ -228,9 +222,7 @@
228#define WLAN_GET_CAP_INFO_DSSSOFDM(n) (((n) & BIT13) >> 13) 222#define WLAN_GET_CAP_INFO_DSSSOFDM(n) (((n) & BIT13) >> 13)
229#define WLAN_GET_CAP_INFO_GRPACK(n) (((n) & BIT14) >> 14) 223#define WLAN_GET_CAP_INFO_GRPACK(n) (((n) & BIT14) >> 14)
230 224
231 225#endif /* #ifdef __BIG_ENDIAN */
232#endif //#ifdef __BIG_ENDIAN
233
234 226
235#define WLAN_SET_CAP_INFO_ESS(n) (n) 227#define WLAN_SET_CAP_INFO_ESS(n) (n)
236#define WLAN_SET_CAP_INFO_IBSS(n) ((n) << 1) 228#define WLAN_SET_CAP_INFO_IBSS(n) ((n) << 1)
@@ -245,7 +237,6 @@
245#define WLAN_SET_CAP_INFO_DSSSOFDM(n) ((n) << 13) 237#define WLAN_SET_CAP_INFO_DSSSOFDM(n) ((n) << 13)
246#define WLAN_SET_CAP_INFO_GRPACK(n) ((n) << 14) 238#define WLAN_SET_CAP_INFO_GRPACK(n) ((n) << 14)
247 239
248
249#define WLAN_SET_FC_PRVER(n) ((WORD)(n)) 240#define WLAN_SET_FC_PRVER(n) ((WORD)(n))
250#define WLAN_SET_FC_FTYPE(n) (((WORD)(n)) << 2) 241#define WLAN_SET_FC_FTYPE(n) (((WORD)(n)) << 2)
251#define WLAN_SET_FC_FSTYPE(n) (((WORD)(n)) << 4) 242#define WLAN_SET_FC_FSTYPE(n) (((WORD)(n)) << 4)
@@ -261,7 +252,7 @@
261#define WLAN_SET_SEQ_FRGNUM(n) ((WORD)(n)) 252#define WLAN_SET_SEQ_FRGNUM(n) ((WORD)(n))
262#define WLAN_SET_SEQ_SEQNUM(n) (((WORD)(n)) << 4) 253#define WLAN_SET_SEQ_SEQNUM(n) (((WORD)(n)) << 4)
263 254
264// ERP Field bit 255/* ERP Field bit */
265 256
266#define WLAN_GET_ERP_NONERP_PRESENT(n) ((n) & BIT0) 257#define WLAN_GET_ERP_NONERP_PRESENT(n) ((n) & BIT0)
267#define WLAN_GET_ERP_USE_PROTECTION(n) (((n) & BIT1) >> 1) 258#define WLAN_GET_ERP_USE_PROTECTION(n) (((n) & BIT1) >> 1)
@@ -271,21 +262,19 @@
271#define WLAN_SET_ERP_USE_PROTECTION(n) ((n) << 1) 262#define WLAN_SET_ERP_USE_PROTECTION(n) ((n) << 1)
272#define WLAN_SET_ERP_BARKER_MODE(n) ((n) << 2) 263#define WLAN_SET_ERP_BARKER_MODE(n) ((n) << 2)
273 264
274 265/* Support & Basic Rates field */
275
276// Support & Basic Rates field
277#define WLAN_MGMT_IS_BASICRATE(b) ((b) & BIT7) 266#define WLAN_MGMT_IS_BASICRATE(b) ((b) & BIT7)
278#define WLAN_MGMT_GET_RATE(b) ((b) & ~BIT7) 267#define WLAN_MGMT_GET_RATE(b) ((b) & ~BIT7)
279 268
280// TIM field 269/* TIM field */
281#define WLAN_MGMT_IS_MULTICAST_TIM(b) ((b) & BIT0) 270#define WLAN_MGMT_IS_MULTICAST_TIM(b) ((b) & BIT0)
282#define WLAN_MGMT_GET_TIM_OFFSET(b) (((b) & ~BIT0) >> 1) 271#define WLAN_MGMT_GET_TIM_OFFSET(b) (((b) & ~BIT0) >> 1)
283 272
284// 3-Addr & 4-Addr 273/* 3-Addr & 4-Addr */
285#define WLAN_HDR_A3_DATA_PTR(p) (((PBYTE)(p)) + WLAN_HDR_ADDR3_LEN) 274#define WLAN_HDR_A3_DATA_PTR(p) (((PBYTE)(p)) + WLAN_HDR_ADDR3_LEN)
286#define WLAN_HDR_A4_DATA_PTR(p) (((PBYTE)(p)) + WLAN_HDR_ADDR4_LEN) 275#define WLAN_HDR_A4_DATA_PTR(p) (((PBYTE)(p)) + WLAN_HDR_ADDR4_LEN)
287 276
288// IEEE ADDR 277/* IEEE ADDR */
289#define IEEE_ADDR_UNIVERSAL 0x02 278#define IEEE_ADDR_UNIVERSAL 0x02
290#define IEEE_ADDR_GROUP 0x01 279#define IEEE_ADDR_GROUP 0x01
291 280
@@ -293,7 +282,7 @@ typedef struct {
293 BYTE abyAddr[6]; 282 BYTE abyAddr[6];
294} IEEE_ADDR, *PIEEE_ADDR; 283} IEEE_ADDR, *PIEEE_ADDR;
295 284
296// 802.11 Header Format 285/* 802.11 Header Format */
297 286
298typedef struct tagWLAN_80211HDR_A2 { 287typedef struct tagWLAN_80211HDR_A2 {
299 288
@@ -302,7 +291,7 @@ typedef struct tagWLAN_80211HDR_A2 {
302 BYTE abyAddr1[WLAN_ADDR_LEN]; 291 BYTE abyAddr1[WLAN_ADDR_LEN];
303 BYTE abyAddr2[WLAN_ADDR_LEN]; 292 BYTE abyAddr2[WLAN_ADDR_LEN];
304 293
305}__attribute__ ((__packed__)) 294} __attribute__ ((__packed__))
306WLAN_80211HDR_A2, *PWLAN_80211HDR_A2; 295WLAN_80211HDR_A2, *PWLAN_80211HDR_A2;
307 296
308typedef struct tagWLAN_80211HDR_A3 { 297typedef struct tagWLAN_80211HDR_A3 {
@@ -314,7 +303,7 @@ typedef struct tagWLAN_80211HDR_A3 {
314 BYTE abyAddr3[WLAN_ADDR_LEN]; 303 BYTE abyAddr3[WLAN_ADDR_LEN];
315 WORD wSeqCtl; 304 WORD wSeqCtl;
316 305
317}__attribute__ ((__packed__)) 306} __attribute__ ((__packed__))
318WLAN_80211HDR_A3, *PWLAN_80211HDR_A3; 307WLAN_80211HDR_A3, *PWLAN_80211HDR_A3;
319 308
320typedef struct tagWLAN_80211HDR_A4 { 309typedef struct tagWLAN_80211HDR_A4 {
@@ -327,10 +316,9 @@ typedef struct tagWLAN_80211HDR_A4 {
327 WORD wSeqCtl; 316 WORD wSeqCtl;
328 BYTE abyAddr4[WLAN_ADDR_LEN]; 317 BYTE abyAddr4[WLAN_ADDR_LEN];
329 318
330}__attribute__ ((__packed__)) 319} __attribute__ ((__packed__))
331WLAN_80211HDR_A4, *PWLAN_80211HDR_A4; 320WLAN_80211HDR_A4, *PWLAN_80211HDR_A4;
332 321
333
334typedef union tagUWLAN_80211HDR { 322typedef union tagUWLAN_80211HDR {
335 323
336 WLAN_80211HDR_A2 sA2; 324 WLAN_80211HDR_A2 sA2;
@@ -339,15 +327,10 @@ typedef union tagUWLAN_80211HDR {
339 327
340} UWLAN_80211HDR, *PUWLAN_80211HDR; 328} UWLAN_80211HDR, *PUWLAN_80211HDR;
341 329
342
343/*--------------------- Export Classes ----------------------------*/ 330/*--------------------- Export Classes ----------------------------*/
344 331
345/*--------------------- Export Variables --------------------------*/ 332/*--------------------- Export Variables --------------------------*/
346 333
347/*--------------------- Export Functions --------------------------*/ 334/*--------------------- Export Functions --------------------------*/
348 335
349 336#endif /* __80211HDR_H__ */
350
351#endif // __80211HDR_H__
352
353
diff --git a/drivers/staging/vt6656/80211mgr.c b/drivers/staging/vt6656/80211mgr.c
index 8fa1a8e5a21..f24dc55e68f 100644
--- a/drivers/staging/vt6656/80211mgr.c
+++ b/drivers/staging/vt6656/80211mgr.c
@@ -89,9 +89,9 @@ static int msglevel =MSG_LEVEL_INFO;
89 * 89 *
90-*/ 90-*/
91 91
92VOID 92void
93vMgrEncodeBeacon( 93vMgrEncodeBeacon(
94 IN PWLAN_FR_BEACON pFrame 94 PWLAN_FR_BEACON pFrame
95 ) 95 )
96{ 96{
97 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 97 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -121,9 +121,9 @@ vMgrEncodeBeacon(
121-*/ 121-*/
122 122
123 123
124VOID 124void
125vMgrDecodeBeacon( 125vMgrDecodeBeacon(
126 IN PWLAN_FR_BEACON pFrame 126 PWLAN_FR_BEACON pFrame
127 ) 127 )
128{ 128{
129 PWLAN_IE pItem; 129 PWLAN_IE pItem;
@@ -242,9 +242,9 @@ vMgrDecodeBeacon(
242-*/ 242-*/
243 243
244 244
245VOID 245void
246vMgrEncodeIBSSATIM( 246vMgrEncodeIBSSATIM(
247 IN PWLAN_FR_IBSSATIM pFrame 247 PWLAN_FR_IBSSATIM pFrame
248 ) 248 )
249{ 249{
250 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 250 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -265,9 +265,9 @@ vMgrEncodeIBSSATIM(
265 * 265 *
266-*/ 266-*/
267 267
268VOID 268void
269vMgrDecodeIBSSATIM( 269vMgrDecodeIBSSATIM(
270 IN PWLAN_FR_IBSSATIM pFrame 270 PWLAN_FR_IBSSATIM pFrame
271 ) 271 )
272{ 272{
273 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 273 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -287,9 +287,9 @@ vMgrDecodeIBSSATIM(
287 * 287 *
288-*/ 288-*/
289 289
290VOID 290void
291vMgrEncodeDisassociation( 291vMgrEncodeDisassociation(
292 IN PWLAN_FR_DISASSOC pFrame 292 PWLAN_FR_DISASSOC pFrame
293 ) 293 )
294{ 294{
295 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 295 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -315,9 +315,9 @@ vMgrEncodeDisassociation(
315 * 315 *
316-*/ 316-*/
317 317
318VOID 318void
319vMgrDecodeDisassociation( 319vMgrDecodeDisassociation(
320 IN PWLAN_FR_DISASSOC pFrame 320 PWLAN_FR_DISASSOC pFrame
321 ) 321 )
322{ 322{
323 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 323 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -341,9 +341,9 @@ vMgrDecodeDisassociation(
341-*/ 341-*/
342 342
343 343
344VOID 344void
345vMgrEncodeAssocRequest( 345vMgrEncodeAssocRequest(
346 IN PWLAN_FR_ASSOCREQ pFrame 346 PWLAN_FR_ASSOCREQ pFrame
347 ) 347 )
348{ 348{
349 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 349 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -368,9 +368,9 @@ vMgrEncodeAssocRequest(
368 * 368 *
369-*/ 369-*/
370 370
371VOID 371void
372vMgrDecodeAssocRequest( 372vMgrDecodeAssocRequest(
373 IN PWLAN_FR_ASSOCREQ pFrame 373 PWLAN_FR_ASSOCREQ pFrame
374 ) 374 )
375{ 375{
376 PWLAN_IE pItem; 376 PWLAN_IE pItem;
@@ -434,9 +434,9 @@ vMgrDecodeAssocRequest(
434 * 434 *
435-*/ 435-*/
436 436
437VOID 437void
438vMgrEncodeAssocResponse( 438vMgrEncodeAssocResponse(
439 IN PWLAN_FR_ASSOCRESP pFrame 439 PWLAN_FR_ASSOCRESP pFrame
440 ) 440 )
441{ 441{
442 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 442 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -466,9 +466,9 @@ vMgrEncodeAssocResponse(
466 * 466 *
467-*/ 467-*/
468 468
469VOID 469void
470vMgrDecodeAssocResponse( 470vMgrDecodeAssocResponse(
471 IN PWLAN_FR_ASSOCRESP pFrame 471 PWLAN_FR_ASSOCRESP pFrame
472 ) 472 )
473{ 473{
474 PWLAN_IE pItem; 474 PWLAN_IE pItem;
@@ -512,9 +512,9 @@ vMgrDecodeAssocResponse(
512 * 512 *
513-*/ 513-*/
514 514
515VOID 515void
516vMgrEncodeReassocRequest( 516vMgrEncodeReassocRequest(
517 IN PWLAN_FR_REASSOCREQ pFrame 517 PWLAN_FR_REASSOCREQ pFrame
518 ) 518 )
519{ 519{
520 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 520 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -544,9 +544,9 @@ vMgrEncodeReassocRequest(
544-*/ 544-*/
545 545
546 546
547VOID 547void
548vMgrDecodeReassocRequest( 548vMgrDecodeReassocRequest(
549 IN PWLAN_FR_REASSOCREQ pFrame 549 PWLAN_FR_REASSOCREQ pFrame
550 ) 550 )
551{ 551{
552 PWLAN_IE pItem; 552 PWLAN_IE pItem;
@@ -616,9 +616,9 @@ vMgrDecodeReassocRequest(
616-*/ 616-*/
617 617
618 618
619VOID 619void
620vMgrEncodeProbeRequest( 620vMgrEncodeProbeRequest(
621 IN PWLAN_FR_PROBEREQ pFrame 621 PWLAN_FR_PROBEREQ pFrame
622 ) 622 )
623{ 623{
624 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 624 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -637,9 +637,9 @@ vMgrEncodeProbeRequest(
637 * 637 *
638-*/ 638-*/
639 639
640VOID 640void
641vMgrDecodeProbeRequest( 641vMgrDecodeProbeRequest(
642 IN PWLAN_FR_PROBEREQ pFrame 642 PWLAN_FR_PROBEREQ pFrame
643 ) 643 )
644{ 644{
645 PWLAN_IE pItem; 645 PWLAN_IE pItem;
@@ -690,9 +690,9 @@ vMgrDecodeProbeRequest(
690-*/ 690-*/
691 691
692 692
693VOID 693void
694vMgrEncodeProbeResponse( 694vMgrEncodeProbeResponse(
695 IN PWLAN_FR_PROBERESP pFrame 695 PWLAN_FR_PROBERESP pFrame
696 ) 696 )
697{ 697{
698 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 698 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -724,9 +724,9 @@ vMgrEncodeProbeResponse(
724 * 724 *
725-*/ 725-*/
726 726
727VOID 727void
728vMgrDecodeProbeResponse( 728vMgrDecodeProbeResponse(
729 IN PWLAN_FR_PROBERESP pFrame 729 PWLAN_FR_PROBERESP pFrame
730 ) 730 )
731{ 731{
732 PWLAN_IE pItem; 732 PWLAN_IE pItem;
@@ -838,9 +838,9 @@ vMgrDecodeProbeResponse(
838 * 838 *
839-*/ 839-*/
840 840
841VOID 841void
842vMgrEncodeAuthen( 842vMgrEncodeAuthen(
843 IN PWLAN_FR_AUTHEN pFrame 843 PWLAN_FR_AUTHEN pFrame
844 ) 844 )
845{ 845{
846 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 846 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -869,9 +869,9 @@ vMgrEncodeAuthen(
869 * 869 *
870-*/ 870-*/
871 871
872VOID 872void
873vMgrDecodeAuthen( 873vMgrDecodeAuthen(
874 IN PWLAN_FR_AUTHEN pFrame 874 PWLAN_FR_AUTHEN pFrame
875 ) 875 )
876{ 876{
877 PWLAN_IE pItem; 877 PWLAN_IE pItem;
@@ -909,9 +909,9 @@ vMgrDecodeAuthen(
909 * 909 *
910-*/ 910-*/
911 911
912VOID 912void
913vMgrEncodeDeauthen( 913vMgrEncodeDeauthen(
914 IN PWLAN_FR_DEAUTHEN pFrame 914 PWLAN_FR_DEAUTHEN pFrame
915 ) 915 )
916{ 916{
917 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 917 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -936,9 +936,9 @@ vMgrEncodeDeauthen(
936 * 936 *
937-*/ 937-*/
938 938
939VOID 939void
940vMgrDecodeDeauthen( 940vMgrDecodeDeauthen(
941 IN PWLAN_FR_DEAUTHEN pFrame 941 PWLAN_FR_DEAUTHEN pFrame
942 ) 942 )
943{ 943{
944 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 944 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -962,9 +962,9 @@ vMgrDecodeDeauthen(
962 * 962 *
963-*/ 963-*/
964 964
965VOID 965void
966vMgrEncodeReassocResponse( 966vMgrEncodeReassocResponse(
967 IN PWLAN_FR_REASSOCRESP pFrame 967 PWLAN_FR_REASSOCRESP pFrame
968 ) 968 )
969{ 969{
970 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf; 970 pFrame->pHdr = (PUWLAN_80211HDR)pFrame->pBuf;
@@ -995,9 +995,9 @@ vMgrEncodeReassocResponse(
995-*/ 995-*/
996 996
997 997
998VOID 998void
999vMgrDecodeReassocResponse( 999vMgrDecodeReassocResponse(
1000 IN PWLAN_FR_REASSOCRESP pFrame 1000 PWLAN_FR_REASSOCRESP pFrame
1001 ) 1001 )
1002{ 1002{
1003 PWLAN_IE pItem; 1003 PWLAN_IE pItem;
diff --git a/drivers/staging/vt6656/80211mgr.h b/drivers/staging/vt6656/80211mgr.h
index a4ea8249216..c140a957d9d 100644
--- a/drivers/staging/vt6656/80211mgr.h
+++ b/drivers/staging/vt6656/80211mgr.h
@@ -524,8 +524,8 @@ typedef struct _WLAN_IE_IBSS_DFS {
524// prototype structure, all mgmt frame types will start with these members 524// prototype structure, all mgmt frame types will start with these members
525typedef struct tagWLAN_FR_MGMT { 525typedef struct tagWLAN_FR_MGMT {
526 526
527 UINT uType; 527 unsigned int uType;
528 UINT len; 528 unsigned int len;
529 PBYTE pBuf; 529 PBYTE pBuf;
530 PUWLAN_80211HDR pHdr; 530 PUWLAN_80211HDR pHdr;
531 531
@@ -534,8 +534,8 @@ typedef struct tagWLAN_FR_MGMT {
534// Beacon frame 534// Beacon frame
535typedef struct tagWLAN_FR_BEACON { 535typedef struct tagWLAN_FR_BEACON {
536 536
537 UINT uType; 537 unsigned int uType;
538 UINT len; 538 unsigned int len;
539 PBYTE pBuf; 539 PBYTE pBuf;
540 PUWLAN_80211HDR pHdr; 540 PUWLAN_80211HDR pHdr;
541 // fixed fields 541 // fixed fields
@@ -566,8 +566,8 @@ typedef struct tagWLAN_FR_BEACON {
566// IBSS ATIM frame 566// IBSS ATIM frame
567typedef struct tagWLAN_FR_IBSSATIM { 567typedef struct tagWLAN_FR_IBSSATIM {
568 568
569 UINT uType; 569 unsigned int uType;
570 UINT len; 570 unsigned int len;
571 PBYTE pBuf; 571 PBYTE pBuf;
572 PUWLAN_80211HDR pHdr; 572 PUWLAN_80211HDR pHdr;
573 573
@@ -580,8 +580,8 @@ typedef struct tagWLAN_FR_IBSSATIM {
580// Disassociation 580// Disassociation
581typedef struct tagWLAN_FR_DISASSOC { 581typedef struct tagWLAN_FR_DISASSOC {
582 582
583 UINT uType; 583 unsigned int uType;
584 UINT len; 584 unsigned int len;
585 PBYTE pBuf; 585 PBYTE pBuf;
586 PUWLAN_80211HDR pHdr; 586 PUWLAN_80211HDR pHdr;
587 /*-- fixed fields -----------*/ 587 /*-- fixed fields -----------*/
@@ -593,8 +593,8 @@ typedef struct tagWLAN_FR_DISASSOC {
593// Association Request 593// Association Request
594typedef struct tagWLAN_FR_ASSOCREQ { 594typedef struct tagWLAN_FR_ASSOCREQ {
595 595
596 UINT uType; 596 unsigned int uType;
597 UINT len; 597 unsigned int len;
598 PBYTE pBuf; 598 PBYTE pBuf;
599 PUWLAN_80211HDR pHdr; 599 PUWLAN_80211HDR pHdr;
600 /*-- fixed fields -----------*/ 600 /*-- fixed fields -----------*/
@@ -617,8 +617,8 @@ typedef struct tagWLAN_FR_ASSOCREQ {
617// Association Response 617// Association Response
618typedef struct tagWLAN_FR_ASSOCRESP { 618typedef struct tagWLAN_FR_ASSOCRESP {
619 619
620 UINT uType; 620 unsigned int uType;
621 UINT len; 621 unsigned int len;
622 PBYTE pBuf; 622 PBYTE pBuf;
623 PUWLAN_80211HDR pHdr; 623 PUWLAN_80211HDR pHdr;
624 /*-- fixed fields -----------*/ 624 /*-- fixed fields -----------*/
@@ -634,8 +634,8 @@ typedef struct tagWLAN_FR_ASSOCRESP {
634// Reassociation Request 634// Reassociation Request
635typedef struct tagWLAN_FR_REASSOCREQ { 635typedef struct tagWLAN_FR_REASSOCREQ {
636 636
637 UINT uType; 637 unsigned int uType;
638 UINT len; 638 unsigned int len;
639 PBYTE pBuf; 639 PBYTE pBuf;
640 PUWLAN_80211HDR pHdr; 640 PUWLAN_80211HDR pHdr;
641 641
@@ -659,8 +659,8 @@ typedef struct tagWLAN_FR_REASSOCREQ {
659// Reassociation Response 659// Reassociation Response
660typedef struct tagWLAN_FR_REASSOCRESP { 660typedef struct tagWLAN_FR_REASSOCRESP {
661 661
662 UINT uType; 662 unsigned int uType;
663 UINT len; 663 unsigned int len;
664 PBYTE pBuf; 664 PBYTE pBuf;
665 PUWLAN_80211HDR pHdr; 665 PUWLAN_80211HDR pHdr;
666 /*-- fixed fields -----------*/ 666 /*-- fixed fields -----------*/
@@ -676,8 +676,8 @@ typedef struct tagWLAN_FR_REASSOCRESP {
676// Probe Request 676// Probe Request
677typedef struct tagWLAN_FR_PROBEREQ { 677typedef struct tagWLAN_FR_PROBEREQ {
678 678
679 UINT uType; 679 unsigned int uType;
680 UINT len; 680 unsigned int len;
681 PBYTE pBuf; 681 PBYTE pBuf;
682 PUWLAN_80211HDR pHdr; 682 PUWLAN_80211HDR pHdr;
683 /*-- fixed fields -----------*/ 683 /*-- fixed fields -----------*/
@@ -691,8 +691,8 @@ typedef struct tagWLAN_FR_PROBEREQ {
691// Probe Response 691// Probe Response
692typedef struct tagWLAN_FR_PROBERESP { 692typedef struct tagWLAN_FR_PROBERESP {
693 693
694 UINT uType; 694 unsigned int uType;
695 UINT len; 695 unsigned int len;
696 PBYTE pBuf; 696 PBYTE pBuf;
697 PUWLAN_80211HDR pHdr; 697 PUWLAN_80211HDR pHdr;
698 /*-- fixed fields -----------*/ 698 /*-- fixed fields -----------*/
@@ -720,8 +720,8 @@ typedef struct tagWLAN_FR_PROBERESP {
720// Authentication 720// Authentication
721typedef struct tagWLAN_FR_AUTHEN { 721typedef struct tagWLAN_FR_AUTHEN {
722 722
723 UINT uType; 723 unsigned int uType;
724 UINT len; 724 unsigned int len;
725 PBYTE pBuf; 725 PBYTE pBuf;
726 PUWLAN_80211HDR pHdr; 726 PUWLAN_80211HDR pHdr;
727 /*-- fixed fields -----------*/ 727 /*-- fixed fields -----------*/
@@ -736,8 +736,8 @@ typedef struct tagWLAN_FR_AUTHEN {
736// Deauthenication 736// Deauthenication
737typedef struct tagWLAN_FR_DEAUTHEN { 737typedef struct tagWLAN_FR_DEAUTHEN {
738 738
739 UINT uType; 739 unsigned int uType;
740 UINT len; 740 unsigned int len;
741 PBYTE pBuf; 741 PBYTE pBuf;
742 PUWLAN_80211HDR pHdr; 742 PUWLAN_80211HDR pHdr;
743 /*-- fixed fields -----------*/ 743 /*-- fixed fields -----------*/
@@ -748,114 +748,114 @@ typedef struct tagWLAN_FR_DEAUTHEN {
748} WLAN_FR_DEAUTHEN, *PWLAN_FR_DEAUTHEN; 748} WLAN_FR_DEAUTHEN, *PWLAN_FR_DEAUTHEN;
749 749
750/*--------------------- Export Functions --------------------------*/ 750/*--------------------- Export Functions --------------------------*/
751VOID 751void
752vMgrEncodeBeacon( 752vMgrEncodeBeacon(
753 IN PWLAN_FR_BEACON pFrame 753 PWLAN_FR_BEACON pFrame
754 ); 754 );
755 755
756VOID 756void
757vMgrDecodeBeacon( 757vMgrDecodeBeacon(
758 IN PWLAN_FR_BEACON pFrame 758 PWLAN_FR_BEACON pFrame
759 ); 759 );
760 760
761VOID 761void
762vMgrEncodeIBSSATIM( 762vMgrEncodeIBSSATIM(
763 IN PWLAN_FR_IBSSATIM pFrame 763 PWLAN_FR_IBSSATIM pFrame
764 ); 764 );
765 765
766VOID 766void
767vMgrDecodeIBSSATIM( 767vMgrDecodeIBSSATIM(
768 IN PWLAN_FR_IBSSATIM pFrame 768 PWLAN_FR_IBSSATIM pFrame
769 ); 769 );
770 770
771VOID 771void
772vMgrEncodeDisassociation( 772vMgrEncodeDisassociation(
773 IN PWLAN_FR_DISASSOC pFrame 773 PWLAN_FR_DISASSOC pFrame
774 ); 774 );
775 775
776VOID 776void
777vMgrDecodeDisassociation( 777vMgrDecodeDisassociation(
778 IN PWLAN_FR_DISASSOC pFrame 778 PWLAN_FR_DISASSOC pFrame
779 ); 779 );
780 780
781VOID 781void
782vMgrEncodeAssocRequest( 782vMgrEncodeAssocRequest(
783 IN PWLAN_FR_ASSOCREQ pFrame 783 PWLAN_FR_ASSOCREQ pFrame
784 ); 784 );
785 785
786VOID 786void
787vMgrDecodeAssocRequest( 787vMgrDecodeAssocRequest(
788 IN PWLAN_FR_ASSOCREQ pFrame 788 PWLAN_FR_ASSOCREQ pFrame
789 ); 789 );
790 790
791VOID 791void
792vMgrEncodeAssocResponse( 792vMgrEncodeAssocResponse(
793 IN PWLAN_FR_ASSOCRESP pFrame 793 PWLAN_FR_ASSOCRESP pFrame
794 ); 794 );
795 795
796VOID 796void
797vMgrDecodeAssocResponse( 797vMgrDecodeAssocResponse(
798 IN PWLAN_FR_ASSOCRESP pFrame 798 PWLAN_FR_ASSOCRESP pFrame
799 ); 799 );
800 800
801VOID 801void
802vMgrEncodeReassocRequest( 802vMgrEncodeReassocRequest(
803 IN PWLAN_FR_REASSOCREQ pFrame 803 PWLAN_FR_REASSOCREQ pFrame
804 ); 804 );
805 805
806VOID 806void
807vMgrDecodeReassocRequest( 807vMgrDecodeReassocRequest(
808 IN PWLAN_FR_REASSOCREQ pFrame 808 PWLAN_FR_REASSOCREQ pFrame
809 ); 809 );
810 810
811VOID 811void
812vMgrEncodeProbeRequest( 812vMgrEncodeProbeRequest(
813 IN PWLAN_FR_PROBEREQ pFrame 813 PWLAN_FR_PROBEREQ pFrame
814 ); 814 );
815 815
816VOID 816void
817vMgrDecodeProbeRequest( 817vMgrDecodeProbeRequest(
818 IN PWLAN_FR_PROBEREQ pFrame 818 PWLAN_FR_PROBEREQ pFrame
819 ); 819 );
820 820
821VOID 821void
822vMgrEncodeProbeResponse( 822vMgrEncodeProbeResponse(
823 IN PWLAN_FR_PROBERESP pFrame 823 PWLAN_FR_PROBERESP pFrame
824 ); 824 );
825 825
826VOID 826void
827vMgrDecodeProbeResponse( 827vMgrDecodeProbeResponse(
828 IN PWLAN_FR_PROBERESP pFrame 828 PWLAN_FR_PROBERESP pFrame
829 ); 829 );
830 830
831VOID 831void
832vMgrEncodeAuthen( 832vMgrEncodeAuthen(
833 IN PWLAN_FR_AUTHEN pFrame 833 PWLAN_FR_AUTHEN pFrame
834 ); 834 );
835 835
836VOID 836void
837vMgrDecodeAuthen( 837vMgrDecodeAuthen(
838 IN PWLAN_FR_AUTHEN pFrame 838 PWLAN_FR_AUTHEN pFrame
839 ); 839 );
840 840
841VOID 841void
842vMgrEncodeDeauthen( 842vMgrEncodeDeauthen(
843 IN PWLAN_FR_DEAUTHEN pFrame 843 PWLAN_FR_DEAUTHEN pFrame
844 ); 844 );
845 845
846VOID 846void
847vMgrDecodeDeauthen( 847vMgrDecodeDeauthen(
848 IN PWLAN_FR_DEAUTHEN pFrame 848 PWLAN_FR_DEAUTHEN pFrame
849 ); 849 );
850 850
851VOID 851void
852vMgrEncodeReassocResponse( 852vMgrEncodeReassocResponse(
853 IN PWLAN_FR_REASSOCRESP pFrame 853 PWLAN_FR_REASSOCRESP pFrame
854 ); 854 );
855 855
856VOID 856void
857vMgrDecodeReassocResponse( 857vMgrDecodeReassocResponse(
858 IN PWLAN_FR_REASSOCRESP pFrame 858 PWLAN_FR_REASSOCRESP pFrame
859 ); 859 );
860 860
861#endif// __80211MGR_H__ 861#endif// __80211MGR_H__
diff --git a/drivers/staging/vt6656/aes_ccmp.c b/drivers/staging/vt6656/aes_ccmp.c
index 401a7d267c9..b3d367b9bdc 100644
--- a/drivers/staging/vt6656/aes_ccmp.c
+++ b/drivers/staging/vt6656/aes_ccmp.c
@@ -16,7 +16,6 @@
16 * with this program; if not, write to the Free Software Foundation, Inc., 16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 * 18 *
19 *
20 * File: aes_ccmp.c 19 * File: aes_ccmp.c
21 * 20 *
22 * Purpose: AES_CCMP decryption 21 * Purpose: AES_CCMP decryption
@@ -28,9 +27,7 @@
28 * Functions: 27 * Functions:
29 * AESbGenCCMP - Parsing RX-packet 28 * AESbGenCCMP - Parsing RX-packet
30 * 29 *
31 *
32 * Revision History: 30 * Revision History:
33 *
34 */ 31 */
35 32
36#include "device.h" 33#include "device.h"
@@ -46,62 +43,61 @@
46 * SBOX Table 43 * SBOX Table
47 */ 44 */
48 45
49BYTE sbox_table[256] = 46BYTE sbox_table[256] = {
50{ 47 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
510x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 48 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
520xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 49 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
530xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 50 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
540x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 51 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
550x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 52 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
560x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 53 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
570xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 54 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
580x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 55 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
590xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 56 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
600x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 57 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
610xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 58 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
620xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 59 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
630xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 60 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
640x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 61 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
650xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 62 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
660x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16
67}; 63};
68 64
69BYTE dot2_table[256] = { 65BYTE dot2_table[256] = {
700x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, 66 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e,
710x20, 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3e, 67 0x20, 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3e,
720x40, 0x42, 0x44, 0x46, 0x48, 0x4a, 0x4c, 0x4e, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x5e, 68 0x40, 0x42, 0x44, 0x46, 0x48, 0x4a, 0x4c, 0x4e, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x5e,
730x60, 0x62, 0x64, 0x66, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x74, 0x76, 0x78, 0x7a, 0x7c, 0x7e, 69 0x60, 0x62, 0x64, 0x66, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x74, 0x76, 0x78, 0x7a, 0x7c, 0x7e,
740x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c, 0x8e, 0x90, 0x92, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e, 70 0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c, 0x8e, 0x90, 0x92, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e,
750xa0, 0xa2, 0xa4, 0xa6, 0xa8, 0xaa, 0xac, 0xae, 0xb0, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, 71 0xa0, 0xa2, 0xa4, 0xa6, 0xa8, 0xaa, 0xac, 0xae, 0xb0, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe,
760xc0, 0xc2, 0xc4, 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde, 72 0xc0, 0xc2, 0xc4, 0xc6, 0xc8, 0xca, 0xcc, 0xce, 0xd0, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde,
770xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, 0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0xfe, 73 0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, 0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0xfe,
780x1b, 0x19, 0x1f, 0x1d, 0x13, 0x11, 0x17, 0x15, 0x0b, 0x09, 0x0f, 0x0d, 0x03, 0x01, 0x07, 0x05, 74 0x1b, 0x19, 0x1f, 0x1d, 0x13, 0x11, 0x17, 0x15, 0x0b, 0x09, 0x0f, 0x0d, 0x03, 0x01, 0x07, 0x05,
790x3b, 0x39, 0x3f, 0x3d, 0x33, 0x31, 0x37, 0x35, 0x2b, 0x29, 0x2f, 0x2d, 0x23, 0x21, 0x27, 0x25, 75 0x3b, 0x39, 0x3f, 0x3d, 0x33, 0x31, 0x37, 0x35, 0x2b, 0x29, 0x2f, 0x2d, 0x23, 0x21, 0x27, 0x25,
800x5b, 0x59, 0x5f, 0x5d, 0x53, 0x51, 0x57, 0x55, 0x4b, 0x49, 0x4f, 0x4d, 0x43, 0x41, 0x47, 0x45, 76 0x5b, 0x59, 0x5f, 0x5d, 0x53, 0x51, 0x57, 0x55, 0x4b, 0x49, 0x4f, 0x4d, 0x43, 0x41, 0x47, 0x45,
810x7b, 0x79, 0x7f, 0x7d, 0x73, 0x71, 0x77, 0x75, 0x6b, 0x69, 0x6f, 0x6d, 0x63, 0x61, 0x67, 0x65, 77 0x7b, 0x79, 0x7f, 0x7d, 0x73, 0x71, 0x77, 0x75, 0x6b, 0x69, 0x6f, 0x6d, 0x63, 0x61, 0x67, 0x65,
820x9b, 0x99, 0x9f, 0x9d, 0x93, 0x91, 0x97, 0x95, 0x8b, 0x89, 0x8f, 0x8d, 0x83, 0x81, 0x87, 0x85, 78 0x9b, 0x99, 0x9f, 0x9d, 0x93, 0x91, 0x97, 0x95, 0x8b, 0x89, 0x8f, 0x8d, 0x83, 0x81, 0x87, 0x85,
830xbb, 0xb9, 0xbf, 0xbd, 0xb3, 0xb1, 0xb7, 0xb5, 0xab, 0xa9, 0xaf, 0xad, 0xa3, 0xa1, 0xa7, 0xa5, 79 0xbb, 0xb9, 0xbf, 0xbd, 0xb3, 0xb1, 0xb7, 0xb5, 0xab, 0xa9, 0xaf, 0xad, 0xa3, 0xa1, 0xa7, 0xa5,
840xdb, 0xd9, 0xdf, 0xdd, 0xd3, 0xd1, 0xd7, 0xd5, 0xcb, 0xc9, 0xcf, 0xcd, 0xc3, 0xc1, 0xc7, 0xc5, 80 0xdb, 0xd9, 0xdf, 0xdd, 0xd3, 0xd1, 0xd7, 0xd5, 0xcb, 0xc9, 0xcf, 0xcd, 0xc3, 0xc1, 0xc7, 0xc5,
850xfb, 0xf9, 0xff, 0xfd, 0xf3, 0xf1, 0xf7, 0xf5, 0xeb, 0xe9, 0xef, 0xed, 0xe3, 0xe1, 0xe7, 0xe5 81 0xfb, 0xf9, 0xff, 0xfd, 0xf3, 0xf1, 0xf7, 0xf5, 0xeb, 0xe9, 0xef, 0xed, 0xe3, 0xe1, 0xe7, 0xe5
86}; 82};
87 83
88BYTE dot3_table[256] = { 84BYTE dot3_table[256] = {
890x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11, 85 0x00, 0x03, 0x06, 0x05, 0x0c, 0x0f, 0x0a, 0x09, 0x18, 0x1b, 0x1e, 0x1d, 0x14, 0x17, 0x12, 0x11,
900x30, 0x33, 0x36, 0x35, 0x3c, 0x3f, 0x3a, 0x39, 0x28, 0x2b, 0x2e, 0x2d, 0x24, 0x27, 0x22, 0x21, 86 0x30, 0x33, 0x36, 0x35, 0x3c, 0x3f, 0x3a, 0x39, 0x28, 0x2b, 0x2e, 0x2d, 0x24, 0x27, 0x22, 0x21,
910x60, 0x63, 0x66, 0x65, 0x6c, 0x6f, 0x6a, 0x69, 0x78, 0x7b, 0x7e, 0x7d, 0x74, 0x77, 0x72, 0x71, 87 0x60, 0x63, 0x66, 0x65, 0x6c, 0x6f, 0x6a, 0x69, 0x78, 0x7b, 0x7e, 0x7d, 0x74, 0x77, 0x72, 0x71,
920x50, 0x53, 0x56, 0x55, 0x5c, 0x5f, 0x5a, 0x59, 0x48, 0x4b, 0x4e, 0x4d, 0x44, 0x47, 0x42, 0x41, 88 0x50, 0x53, 0x56, 0x55, 0x5c, 0x5f, 0x5a, 0x59, 0x48, 0x4b, 0x4e, 0x4d, 0x44, 0x47, 0x42, 0x41,
930xc0, 0xc3, 0xc6, 0xc5, 0xcc, 0xcf, 0xca, 0xc9, 0xd8, 0xdb, 0xde, 0xdd, 0xd4, 0xd7, 0xd2, 0xd1, 89 0xc0, 0xc3, 0xc6, 0xc5, 0xcc, 0xcf, 0xca, 0xc9, 0xd8, 0xdb, 0xde, 0xdd, 0xd4, 0xd7, 0xd2, 0xd1,
940xf0, 0xf3, 0xf6, 0xf5, 0xfc, 0xff, 0xfa, 0xf9, 0xe8, 0xeb, 0xee, 0xed, 0xe4, 0xe7, 0xe2, 0xe1, 90 0xf0, 0xf3, 0xf6, 0xf5, 0xfc, 0xff, 0xfa, 0xf9, 0xe8, 0xeb, 0xee, 0xed, 0xe4, 0xe7, 0xe2, 0xe1,
950xa0, 0xa3, 0xa6, 0xa5, 0xac, 0xaf, 0xaa, 0xa9, 0xb8, 0xbb, 0xbe, 0xbd, 0xb4, 0xb7, 0xb2, 0xb1, 91 0xa0, 0xa3, 0xa6, 0xa5, 0xac, 0xaf, 0xaa, 0xa9, 0xb8, 0xbb, 0xbe, 0xbd, 0xb4, 0xb7, 0xb2, 0xb1,
960x90, 0x93, 0x96, 0x95, 0x9c, 0x9f, 0x9a, 0x99, 0x88, 0x8b, 0x8e, 0x8d, 0x84, 0x87, 0x82, 0x81, 92 0x90, 0x93, 0x96, 0x95, 0x9c, 0x9f, 0x9a, 0x99, 0x88, 0x8b, 0x8e, 0x8d, 0x84, 0x87, 0x82, 0x81,
970x9b, 0x98, 0x9d, 0x9e, 0x97, 0x94, 0x91, 0x92, 0x83, 0x80, 0x85, 0x86, 0x8f, 0x8c, 0x89, 0x8a, 93 0x9b, 0x98, 0x9d, 0x9e, 0x97, 0x94, 0x91, 0x92, 0x83, 0x80, 0x85, 0x86, 0x8f, 0x8c, 0x89, 0x8a,
980xab, 0xa8, 0xad, 0xae, 0xa7, 0xa4, 0xa1, 0xa2, 0xb3, 0xb0, 0xb5, 0xb6, 0xbf, 0xbc, 0xb9, 0xba, 94 0xab, 0xa8, 0xad, 0xae, 0xa7, 0xa4, 0xa1, 0xa2, 0xb3, 0xb0, 0xb5, 0xb6, 0xbf, 0xbc, 0xb9, 0xba,
990xfb, 0xf8, 0xfd, 0xfe, 0xf7, 0xf4, 0xf1, 0xf2, 0xe3, 0xe0, 0xe5, 0xe6, 0xef, 0xec, 0xe9, 0xea, 95 0xfb, 0xf8, 0xfd, 0xfe, 0xf7, 0xf4, 0xf1, 0xf2, 0xe3, 0xe0, 0xe5, 0xe6, 0xef, 0xec, 0xe9, 0xea,
1000xcb, 0xc8, 0xcd, 0xce, 0xc7, 0xc4, 0xc1, 0xc2, 0xd3, 0xd0, 0xd5, 0xd6, 0xdf, 0xdc, 0xd9, 0xda, 96 0xcb, 0xc8, 0xcd, 0xce, 0xc7, 0xc4, 0xc1, 0xc2, 0xd3, 0xd0, 0xd5, 0xd6, 0xdf, 0xdc, 0xd9, 0xda,
1010x5b, 0x58, 0x5d, 0x5e, 0x57, 0x54, 0x51, 0x52, 0x43, 0x40, 0x45, 0x46, 0x4f, 0x4c, 0x49, 0x4a, 97 0x5b, 0x58, 0x5d, 0x5e, 0x57, 0x54, 0x51, 0x52, 0x43, 0x40, 0x45, 0x46, 0x4f, 0x4c, 0x49, 0x4a,
1020x6b, 0x68, 0x6d, 0x6e, 0x67, 0x64, 0x61, 0x62, 0x73, 0x70, 0x75, 0x76, 0x7f, 0x7c, 0x79, 0x7a, 98 0x6b, 0x68, 0x6d, 0x6e, 0x67, 0x64, 0x61, 0x62, 0x73, 0x70, 0x75, 0x76, 0x7f, 0x7c, 0x79, 0x7a,
1030x3b, 0x38, 0x3d, 0x3e, 0x37, 0x34, 0x31, 0x32, 0x23, 0x20, 0x25, 0x26, 0x2f, 0x2c, 0x29, 0x2a, 99 0x3b, 0x38, 0x3d, 0x3e, 0x37, 0x34, 0x31, 0x32, 0x23, 0x20, 0x25, 0x26, 0x2f, 0x2c, 0x29, 0x2a,
1040x0b, 0x08, 0x0d, 0x0e, 0x07, 0x04, 0x01, 0x02, 0x13, 0x10, 0x15, 0x16, 0x1f, 0x1c, 0x19, 0x1a 100 0x0b, 0x08, 0x0d, 0x0e, 0x07, 0x04, 0x01, 0x02, 0x13, 0x10, 0x15, 0x16, 0x1f, 0x1c, 0x19, 0x1a
105}; 101};
106 102
107/*--------------------- Static Functions --------------------------*/ 103/*--------------------- Static Functions --------------------------*/
@@ -112,120 +108,111 @@ BYTE dot3_table[256] = {
112 108
113void xor_128(BYTE *a, BYTE *b, BYTE *out) 109void xor_128(BYTE *a, BYTE *b, BYTE *out)
114{ 110{
115PDWORD dwPtrA = (PDWORD) a; 111 PDWORD dwPtrA = (PDWORD) a;
116PDWORD dwPtrB = (PDWORD) b; 112 PDWORD dwPtrB = (PDWORD) b;
117PDWORD dwPtrOut =(PDWORD) out; 113 PDWORD dwPtrOut = (PDWORD) out;
118 114
119 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++); 115 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++);
120 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++); 116 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++);
121 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++); 117 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++);
122 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++); 118 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++);
123} 119}
124 120
125 121
126void xor_32(BYTE *a, BYTE *b, BYTE *out) 122void xor_32(BYTE *a, BYTE *b, BYTE *out)
127{ 123{
128PDWORD dwPtrA = (PDWORD) a; 124 PDWORD dwPtrA = (PDWORD) a;
129PDWORD dwPtrB = (PDWORD) b; 125 PDWORD dwPtrB = (PDWORD) b;
130PDWORD dwPtrOut =(PDWORD) out; 126 PDWORD dwPtrOut = (PDWORD) out;
131 127
132 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++); 128 (*dwPtrOut++) = (*dwPtrA++) ^ (*dwPtrB++);
133} 129}
134 130
135void AddRoundKey(BYTE *key, int round) 131void AddRoundKey(BYTE *key, int round)
136{ 132{
137BYTE sbox_key[4]; 133 BYTE sbox_key[4];
138BYTE rcon_table[10] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36}; 134 BYTE rcon_table[10] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36};
139 135
140 sbox_key[0] = sbox_table[key[13]]; 136 sbox_key[0] = sbox_table[key[13]];
141 sbox_key[1] = sbox_table[key[14]]; 137 sbox_key[1] = sbox_table[key[14]];
142 sbox_key[2] = sbox_table[key[15]]; 138 sbox_key[2] = sbox_table[key[15]];
143 sbox_key[3] = sbox_table[key[12]]; 139 sbox_key[3] = sbox_table[key[12]];
144 140
145 key[0] = key[0] ^ rcon_table[round]; 141 key[0] = key[0] ^ rcon_table[round];
146 xor_32(&key[0], sbox_key, &key[0]); 142 xor_32(&key[0], sbox_key, &key[0]);
147 143
148 xor_32(&key[4], &key[0], &key[4]); 144 xor_32(&key[4], &key[0], &key[4]);
149 xor_32(&key[8], &key[4], &key[8]); 145 xor_32(&key[8], &key[4], &key[8]);
150 xor_32(&key[12], &key[8], &key[12]); 146 xor_32(&key[12], &key[8], &key[12]);
151} 147}
152 148
153void SubBytes(BYTE *in, BYTE *out) 149void SubBytes(BYTE *in, BYTE *out)
154{ 150{
155int i; 151 int i;
156 152
157 for (i=0; i< 16; i++) 153 for (i = 0; i < 16; i++)
158 { 154 out[i] = sbox_table[in[i]];
159 out[i] = sbox_table[in[i]];
160 }
161} 155}
162 156
163void ShiftRows(BYTE *in, BYTE *out) 157void ShiftRows(BYTE *in, BYTE *out)
164{ 158{
165 out[0] = in[0]; 159 out[0] = in[0];
166 out[1] = in[5]; 160 out[1] = in[5];
167 out[2] = in[10]; 161 out[2] = in[10];
168 out[3] = in[15]; 162 out[3] = in[15];
169 out[4] = in[4]; 163 out[4] = in[4];
170 out[5] = in[9]; 164 out[5] = in[9];
171 out[6] = in[14]; 165 out[6] = in[14];
172 out[7] = in[3]; 166 out[7] = in[3];
173 out[8] = in[8]; 167 out[8] = in[8];
174 out[9] = in[13]; 168 out[9] = in[13];
175 out[10] = in[2]; 169 out[10] = in[2];
176 out[11] = in[7]; 170 out[11] = in[7];
177 out[12] = in[12]; 171 out[12] = in[12];
178 out[13] = in[1]; 172 out[13] = in[1];
179 out[14] = in[6]; 173 out[14] = in[6];
180 out[15] = in[11]; 174 out[15] = in[11];
181} 175}
182 176
183void MixColumns(BYTE *in, BYTE *out) 177void MixColumns(BYTE *in, BYTE *out)
184{ 178{
185 179
186 out[0] = dot2_table[in[0]] ^ dot3_table[in[1]] ^ in[2] ^ in[3]; 180 out[0] = dot2_table[in[0]] ^ dot3_table[in[1]] ^ in[2] ^ in[3];
187 out[1] = in[0] ^ dot2_table[in[1]] ^ dot3_table[in[2]] ^ in[3]; 181 out[1] = in[0] ^ dot2_table[in[1]] ^ dot3_table[in[2]] ^ in[3];
188 out[2] = in[0] ^ in[1] ^ dot2_table[in[2]] ^ dot3_table[in[3]]; 182 out[2] = in[0] ^ in[1] ^ dot2_table[in[2]] ^ dot3_table[in[3]];
189 out[3] = dot3_table[in[0]] ^ in[1] ^ in[2] ^ dot2_table[in[3]]; 183 out[3] = dot3_table[in[0]] ^ in[1] ^ in[2] ^ dot2_table[in[3]];
190} 184}
191 185
192
193void AESv128(BYTE *key, BYTE *data, BYTE *ciphertext) 186void AESv128(BYTE *key, BYTE *data, BYTE *ciphertext)
194{ 187{
195int i; 188 int i;
196int round; 189 int round;
197BYTE TmpdataA[16]; 190 BYTE TmpdataA[16];
198BYTE TmpdataB[16]; 191 BYTE TmpdataB[16];
199BYTE abyRoundKey[16]; 192 BYTE abyRoundKey[16];
200 193
201 for(i=0; i<16; i++) 194 for (i = 0; i < 16; i++)
202 abyRoundKey[i] = key[i]; 195 abyRoundKey[i] = key[i];
203 196
204 for (round = 0; round < 11; round++) 197 for (round = 0; round < 11; round++) {
205 { 198 if (round == 0) {
206 if (round == 0) 199 xor_128(abyRoundKey, data, ciphertext);
207 { 200 AddRoundKey(abyRoundKey, round);
208 xor_128(abyRoundKey, data, ciphertext); 201 } else if (round == 10) {
209 AddRoundKey(abyRoundKey, round); 202 SubBytes(ciphertext, TmpdataA);
210 } 203 ShiftRows(TmpdataA, TmpdataB);
211 else if (round == 10) 204 xor_128(TmpdataB, abyRoundKey, ciphertext);
212 { 205 } else { /* round 1 ~ 9 */
213 SubBytes(ciphertext, TmpdataA); 206 SubBytes(ciphertext, TmpdataA);
214 ShiftRows(TmpdataA, TmpdataB); 207 ShiftRows(TmpdataA, TmpdataB);
215 xor_128(TmpdataB, abyRoundKey, ciphertext); 208 MixColumns(&TmpdataB[0], &TmpdataA[0]);
216 } 209 MixColumns(&TmpdataB[4], &TmpdataA[4]);
217 else // round 1 ~ 9 210 MixColumns(&TmpdataB[8], &TmpdataA[8]);
218 { 211 MixColumns(&TmpdataB[12], &TmpdataA[12]);
219 SubBytes(ciphertext, TmpdataA); 212 xor_128(TmpdataA, abyRoundKey, ciphertext);
220 ShiftRows(TmpdataA, TmpdataB); 213 AddRoundKey(abyRoundKey, round);
221 MixColumns(&TmpdataB[0], &TmpdataA[0]); 214 }
222 MixColumns(&TmpdataB[4], &TmpdataA[4]); 215 }
223 MixColumns(&TmpdataB[8], &TmpdataA[8]);
224 MixColumns(&TmpdataB[12], &TmpdataA[12]);
225 xor_128(TmpdataA, abyRoundKey, ciphertext);
226 AddRoundKey(abyRoundKey, round);
227 }
228 }
229 216
230} 217}
231 218
@@ -243,160 +230,157 @@ BYTE abyRoundKey[16];
243 * Return Value: MIC compare result 230 * Return Value: MIC compare result
244 * 231 *
245 */ 232 */
233
246BOOL AESbGenCCMP(PBYTE pbyRxKey, PBYTE pbyFrame, WORD wFrameSize) 234BOOL AESbGenCCMP(PBYTE pbyRxKey, PBYTE pbyFrame, WORD wFrameSize)
247{ 235{
248BYTE abyNonce[13]; 236 BYTE abyNonce[13];
249BYTE MIC_IV[16]; 237 BYTE MIC_IV[16];
250BYTE MIC_HDR1[16]; 238 BYTE MIC_HDR1[16];
251BYTE MIC_HDR2[16]; 239 BYTE MIC_HDR2[16];
252BYTE abyMIC[16]; 240 BYTE abyMIC[16];
253BYTE abyCTRPLD[16]; 241 BYTE abyCTRPLD[16];
254BYTE abyTmp[16]; 242 BYTE abyTmp[16];
255BYTE abyPlainText[16]; 243 BYTE abyPlainText[16];
256BYTE abyLastCipher[16]; 244 BYTE abyLastCipher[16];
257 245
258PS802_11Header pMACHeader = (PS802_11Header) pbyFrame; 246 PS802_11Header pMACHeader = (PS802_11Header) pbyFrame;
259PBYTE pbyIV; 247 PBYTE pbyIV;
260PBYTE pbyPayload; 248 PBYTE pbyPayload;
261WORD wHLen = 22; 249 WORD wHLen = 22;
262WORD wPayloadSize = wFrameSize - 8 - 8 - 4 - WLAN_HDR_ADDR3_LEN;//8 is IV, 8 is MIC, 4 is CRC 250 /* 8 is IV, 8 is MIC, 4 is CRC */
263BOOL bA4 = FALSE; 251 WORD wPayloadSize = wFrameSize - 8 - 8 - 4 - WLAN_HDR_ADDR3_LEN;
264BYTE byTmp; 252 BOOL bA4 = FALSE;
265WORD wCnt; 253 BYTE byTmp;
266int ii,jj,kk; 254 WORD wCnt;
267 255 int ii, jj, kk;
268 256
269 pbyIV = pbyFrame + WLAN_HDR_ADDR3_LEN; 257 pbyIV = pbyFrame + WLAN_HDR_ADDR3_LEN;
270 if ( WLAN_GET_FC_TODS(*(PWORD)pbyFrame) && 258 if (WLAN_GET_FC_TODS(*(PWORD) pbyFrame) &&
271 WLAN_GET_FC_FROMDS(*(PWORD)pbyFrame) ) { 259 WLAN_GET_FC_FROMDS(*(PWORD) pbyFrame)) {
272 bA4 = TRUE; 260 bA4 = TRUE;
273 pbyIV += 6; // 6 is 802.11 address4 261 pbyIV += 6; /* 6 is 802.11 address4 */
274 wHLen += 6; 262 wHLen += 6;
275 wPayloadSize -= 6; 263 wPayloadSize -= 6;
276 } 264 }
277 pbyPayload = pbyIV + 8; //IV-length 265 pbyPayload = pbyIV + 8; /* IV-length */
278 266
279 abyNonce[0] = 0x00; //now is 0, if Qos here will be priority 267 abyNonce[0] = 0x00; /* now is 0, if Qos here will be priority */
280 memcpy(&(abyNonce[1]), pMACHeader->abyAddr2, U_ETHER_ADDR_LEN); 268 memcpy(&(abyNonce[1]), pMACHeader->abyAddr2, ETH_ALEN);
281 abyNonce[7] = pbyIV[7]; 269 abyNonce[7] = pbyIV[7];
282 abyNonce[8] = pbyIV[6]; 270 abyNonce[8] = pbyIV[6];
283 abyNonce[9] = pbyIV[5]; 271 abyNonce[9] = pbyIV[5];
284 abyNonce[10] = pbyIV[4]; 272 abyNonce[10] = pbyIV[4];
285 abyNonce[11] = pbyIV[1]; 273 abyNonce[11] = pbyIV[1];
286 abyNonce[12] = pbyIV[0]; 274 abyNonce[12] = pbyIV[0];
287 275
288 //MIC_IV 276 /* MIC_IV */
289 MIC_IV[0] = 0x59; 277 MIC_IV[0] = 0x59;
290 memcpy(&(MIC_IV[1]), &(abyNonce[0]), 13); 278 memcpy(&(MIC_IV[1]), &(abyNonce[0]), 13);
291 MIC_IV[14] = (BYTE)(wPayloadSize >> 8); 279 MIC_IV[14] = (BYTE)(wPayloadSize >> 8);
292 MIC_IV[15] = (BYTE)(wPayloadSize & 0xff); 280 MIC_IV[15] = (BYTE)(wPayloadSize & 0xff);
293 281
294 //MIC_HDR1 282 /* MIC_HDR1 */
295 MIC_HDR1[0] = (BYTE)(wHLen >> 8); 283 MIC_HDR1[0] = (BYTE)(wHLen >> 8);
296 MIC_HDR1[1] = (BYTE)(wHLen & 0xff); 284 MIC_HDR1[1] = (BYTE)(wHLen & 0xff);
297 byTmp = (BYTE)(pMACHeader->wFrameCtl & 0xff); 285 byTmp = (BYTE)(pMACHeader->wFrameCtl & 0xff);
298 MIC_HDR1[2] = byTmp & 0x8f; 286 MIC_HDR1[2] = byTmp & 0x8f;
299 byTmp = (BYTE)(pMACHeader->wFrameCtl >> 8); 287 byTmp = (BYTE)(pMACHeader->wFrameCtl >> 8);
300 byTmp &= 0x87; 288 byTmp &= 0x87;
301 MIC_HDR1[3] = byTmp | 0x40; 289 MIC_HDR1[3] = byTmp | 0x40;
302 memcpy(&(MIC_HDR1[4]), pMACHeader->abyAddr1, U_ETHER_ADDR_LEN); 290 memcpy(&(MIC_HDR1[4]), pMACHeader->abyAddr1, ETH_ALEN);
303 memcpy(&(MIC_HDR1[10]), pMACHeader->abyAddr2, U_ETHER_ADDR_LEN); 291 memcpy(&(MIC_HDR1[10]), pMACHeader->abyAddr2, ETH_ALEN);
304 292
305 //MIC_HDR2 293 /* MIC_HDR2 */
306 memcpy(&(MIC_HDR2[0]), pMACHeader->abyAddr3, U_ETHER_ADDR_LEN); 294 memcpy(&(MIC_HDR2[0]), pMACHeader->abyAddr3, ETH_ALEN);
307 byTmp = (BYTE)(pMACHeader->wSeqCtl & 0xff); 295 byTmp = (BYTE)(pMACHeader->wSeqCtl & 0xff);
308 MIC_HDR2[6] = byTmp & 0x0f; 296 MIC_HDR2[6] = byTmp & 0x0f;
309 MIC_HDR2[7] = 0; 297 MIC_HDR2[7] = 0;
310 if ( bA4 ) { 298
311 memcpy(&(MIC_HDR2[8]), pMACHeader->abyAddr4, U_ETHER_ADDR_LEN); 299 if (bA4) {
312 } else { 300 memcpy(&(MIC_HDR2[8]), pMACHeader->abyAddr4, ETH_ALEN);
313 MIC_HDR2[8] = 0x00; 301 } else {
314 MIC_HDR2[9] = 0x00; 302 MIC_HDR2[8] = 0x00;
315 MIC_HDR2[10] = 0x00; 303 MIC_HDR2[9] = 0x00;
316 MIC_HDR2[11] = 0x00; 304 MIC_HDR2[10] = 0x00;
317 MIC_HDR2[12] = 0x00; 305 MIC_HDR2[11] = 0x00;
318 MIC_HDR2[13] = 0x00; 306 MIC_HDR2[12] = 0x00;
319 } 307 MIC_HDR2[13] = 0x00;
320 MIC_HDR2[14] = 0x00; 308 }
321 MIC_HDR2[15] = 0x00; 309 MIC_HDR2[14] = 0x00;
322 310 MIC_HDR2[15] = 0x00;
323 //CCMP 311
324 AESv128(pbyRxKey,MIC_IV,abyMIC); 312 /* CCMP */
325 for ( kk=0; kk<16; kk++ ) { 313 AESv128(pbyRxKey, MIC_IV, abyMIC);
326 abyTmp[kk] = MIC_HDR1[kk] ^ abyMIC[kk]; 314 for (kk = 0; kk < 16; kk++)
327 } 315 abyTmp[kk] = MIC_HDR1[kk] ^ abyMIC[kk];
328 AESv128(pbyRxKey,abyTmp,abyMIC); 316
329 for ( kk=0; kk<16; kk++ ) { 317 AESv128(pbyRxKey, abyTmp, abyMIC);
330 abyTmp[kk] = MIC_HDR2[kk] ^ abyMIC[kk]; 318 for (kk = 0; kk < 16; kk++)
331 } 319 abyTmp[kk] = MIC_HDR2[kk] ^ abyMIC[kk];
332 AESv128(pbyRxKey,abyTmp,abyMIC); 320
333 321 AESv128(pbyRxKey, abyTmp, abyMIC);
334 wCnt = 1; 322
335 abyCTRPLD[0] = 0x01; 323 wCnt = 1;
336 memcpy(&(abyCTRPLD[1]), &(abyNonce[0]), 13); 324 abyCTRPLD[0] = 0x01;
337 325 memcpy(&(abyCTRPLD[1]), &(abyNonce[0]), 13);
338 for(jj=wPayloadSize; jj>16; jj=jj-16) { 326
339 327 for (jj = wPayloadSize; jj > 16; jj = jj-16) {
340 abyCTRPLD[14] = (BYTE) (wCnt >> 8); 328
341 abyCTRPLD[15] = (BYTE) (wCnt & 0xff); 329 abyCTRPLD[14] = (BYTE) (wCnt >> 8);
342 330 abyCTRPLD[15] = (BYTE) (wCnt & 0xff);
343 AESv128(pbyRxKey,abyCTRPLD,abyTmp); 331
344 332 AESv128(pbyRxKey, abyCTRPLD, abyTmp);
345 for ( kk=0; kk<16; kk++ ) { 333
346 abyPlainText[kk] = abyTmp[kk] ^ pbyPayload[kk]; 334 for (kk = 0; kk < 16; kk++)
347 } 335 abyPlainText[kk] = abyTmp[kk] ^ pbyPayload[kk];
348 for ( kk=0; kk<16; kk++ ) { 336
349 abyTmp[kk] = abyMIC[kk] ^ abyPlainText[kk]; 337 for (kk = 0; kk < 16; kk++)
350 } 338 abyTmp[kk] = abyMIC[kk] ^ abyPlainText[kk];
351 AESv128(pbyRxKey,abyTmp,abyMIC); 339
352 340 AESv128(pbyRxKey, abyTmp, abyMIC);
353 memcpy(pbyPayload, abyPlainText, 16); 341
354 wCnt++; 342 memcpy(pbyPayload, abyPlainText, 16);
355 pbyPayload += 16; 343 wCnt++;
356 } //for wPayloadSize 344 pbyPayload += 16;
357 345 } /* for wPayloadSize */
358 //last payload 346
359 memcpy(&(abyLastCipher[0]), pbyPayload, jj); 347 /* last payload */
360 for ( ii=jj; ii<16; ii++ ) { 348 memcpy(&(abyLastCipher[0]), pbyPayload, jj);
361 abyLastCipher[ii] = 0x00; 349 for (ii = jj; ii < 16; ii++)
362 } 350 abyLastCipher[ii] = 0x00;
363 351
364 abyCTRPLD[14] = (BYTE) (wCnt >> 8); 352 abyCTRPLD[14] = (BYTE) (wCnt >> 8);
365 abyCTRPLD[15] = (BYTE) (wCnt & 0xff); 353 abyCTRPLD[15] = (BYTE) (wCnt & 0xff);
366 354
367 AESv128(pbyRxKey,abyCTRPLD,abyTmp); 355 AESv128(pbyRxKey, abyCTRPLD, abyTmp);
368 for ( kk=0; kk<16; kk++ ) { 356 for (kk = 0; kk < 16; kk++)
369 abyPlainText[kk] = abyTmp[kk] ^ abyLastCipher[kk]; 357 abyPlainText[kk] = abyTmp[kk] ^ abyLastCipher[kk];
370 } 358
371 memcpy(pbyPayload, abyPlainText, jj); 359 memcpy(pbyPayload, abyPlainText, jj);
372 pbyPayload += jj; 360 pbyPayload += jj;
373 361
374 //for MIC calculation 362 /* for MIC calculation */
375 for ( ii=jj; ii<16; ii++ ) { 363 for (ii = jj; ii < 16; ii++)
376 abyPlainText[ii] = 0x00; 364 abyPlainText[ii] = 0x00;
377 } 365 for (kk = 0; kk < 16; kk++)
378 for ( kk=0; kk<16; kk++ ) { 366 abyTmp[kk] = abyMIC[kk] ^ abyPlainText[kk];
379 abyTmp[kk] = abyMIC[kk] ^ abyPlainText[kk]; 367
380 } 368 AESv128(pbyRxKey, abyTmp, abyMIC);
381 AESv128(pbyRxKey,abyTmp,abyMIC); 369
382 370 /* => above is the calculated MIC */
383 //=>above is the calculate MIC 371
384 //-------------------------------------------- 372 wCnt = 0;
385 373 abyCTRPLD[14] = (BYTE) (wCnt >> 8);
386 wCnt = 0; 374 abyCTRPLD[15] = (BYTE) (wCnt & 0xff);
387 abyCTRPLD[14] = (BYTE) (wCnt >> 8); 375 AESv128(pbyRxKey, abyCTRPLD, abyTmp);
388 abyCTRPLD[15] = (BYTE) (wCnt & 0xff); 376
389 AESv128(pbyRxKey,abyCTRPLD,abyTmp); 377 for (kk = 0; kk < 8; kk++)
390 for ( kk=0; kk<8; kk++ ) { 378 abyTmp[kk] = abyTmp[kk] ^ pbyPayload[kk];
391 abyTmp[kk] = abyTmp[kk] ^ pbyPayload[kk]; 379
392 } 380 /* => above is the packet dec-MIC */
393 //=>above is the dec-MIC from packet 381
394 //-------------------------------------------- 382 if (!memcmp(abyMIC, abyTmp, 8))
395 383 return TRUE;
396 if ( !memcmp(abyMIC,abyTmp,8) ) { 384 else
397 return TRUE; 385 return FALSE;
398 } else {
399 return FALSE;
400 }
401
402} 386}
diff --git a/drivers/staging/vt6656/aes_ccmp.h b/drivers/staging/vt6656/aes_ccmp.h
index f2ba1d5aa1e..353bd210a50 100644
--- a/drivers/staging/vt6656/aes_ccmp.h
+++ b/drivers/staging/vt6656/aes_ccmp.h
@@ -43,4 +43,4 @@
43/*--------------------- Export Functions --------------------------*/ 43/*--------------------- Export Functions --------------------------*/
44BOOL AESbGenCCMP(PBYTE pbyRxKey, PBYTE pbyFrame, WORD wFrameSize); 44BOOL AESbGenCCMP(PBYTE pbyRxKey, PBYTE pbyFrame, WORD wFrameSize);
45 45
46#endif //__AES_H__ 46#endif /* __AES_CCMP_H__ */
diff --git a/drivers/staging/vt6656/baseband.c b/drivers/staging/vt6656/baseband.c
index 7dc01dbfc6f..d3de94f36c6 100644
--- a/drivers/staging/vt6656/baseband.c
+++ b/drivers/staging/vt6656/baseband.c
@@ -662,11 +662,11 @@ const WORD awcFrameTime[MAX_RATE] =
662 662
663/* 663/*
664static 664static
665ULONG 665unsigned long
666s_ulGetLowSQ3(PSDevice pDevice); 666s_ulGetLowSQ3(PSDevice pDevice);
667 667
668static 668static
669ULONG 669unsigned long
670s_ulGetRatio(PSDevice pDevice); 670s_ulGetRatio(PSDevice pDevice);
671 671
672static 672static
@@ -689,19 +689,19 @@ s_vClearSQ3Value(PSDevice pDevice);
689 * Return Value: FrameTime 689 * Return Value: FrameTime
690 * 690 *
691 */ 691 */
692UINT 692unsigned int
693BBuGetFrameTime ( 693BBuGetFrameTime (
694 IN BYTE byPreambleType, 694 BYTE byPreambleType,
695 IN BYTE byPktType, 695 BYTE byPktType,
696 IN UINT cbFrameLength, 696 unsigned int cbFrameLength,
697 IN WORD wRate 697 WORD wRate
698 ) 698 )
699{ 699{
700 UINT uFrameTime; 700 unsigned int uFrameTime;
701 UINT uPreamble; 701 unsigned int uPreamble;
702 UINT uTmp; 702 unsigned int uTmp;
703 UINT uRateIdx = (UINT)wRate; 703 unsigned int uRateIdx = (unsigned int)wRate;
704 UINT uRate = 0; 704 unsigned int uRate = 0;
705 705
706 706
707 if (uRateIdx > RATE_54M) { 707 if (uRateIdx > RATE_54M) {
@@ -709,7 +709,7 @@ BBuGetFrameTime (
709 return 0; 709 return 0;
710 } 710 }
711 711
712 uRate = (UINT)awcFrameTime[uRateIdx]; 712 uRate = (unsigned int)awcFrameTime[uRateIdx];
713 713
714 if (uRateIdx <= 3) { //CCK mode 714 if (uRateIdx <= 3) { //CCK mode
715 715
@@ -756,20 +756,20 @@ BBuGetFrameTime (
756 * Return Value: none 756 * Return Value: none
757 * 757 *
758 */ 758 */
759VOID 759void
760BBvCaculateParameter ( 760BBvCaculateParameter (
761 IN PSDevice pDevice, 761 PSDevice pDevice,
762 IN UINT cbFrameLength, 762 unsigned int cbFrameLength,
763 IN WORD wRate, 763 WORD wRate,
764 IN BYTE byPacketType, 764 BYTE byPacketType,
765 OUT PWORD pwPhyLen, 765 PWORD pwPhyLen,
766 OUT PBYTE pbyPhySrv, 766 PBYTE pbyPhySrv,
767 OUT PBYTE pbyPhySgn 767 PBYTE pbyPhySgn
768 ) 768 )
769{ 769{
770 UINT cbBitCount; 770 unsigned int cbBitCount;
771 UINT cbUsCount = 0; 771 unsigned int cbUsCount = 0;
772 UINT cbTmp; 772 unsigned int cbTmp;
773 BOOL bExtBit; 773 BOOL bExtBit;
774 BYTE byPreambleType = pDevice->byPreambleType; 774 BYTE byPreambleType = pDevice->byPreambleType;
775 BOOL bCCK = pDevice->bCCK; 775 BOOL bCCK = pDevice->bCCK;
@@ -929,7 +929,7 @@ BBvCaculateParameter (
929 * Return Value: none 929 * Return Value: none
930 * 930 *
931 */ 931 */
932VOID 932void
933BBvSetAntennaMode (PSDevice pDevice, BYTE byAntennaMode) 933BBvSetAntennaMode (PSDevice pDevice, BYTE byAntennaMode)
934{ 934{
935 //{{ RobertYu: 20041124, ABG Mode, VC1/VC2 define, make the ANT_A, ANT_B inverted 935 //{{ RobertYu: 20041124, ABG Mode, VC1/VC2 define, make the ANT_A, ANT_B inverted
@@ -1274,7 +1274,7 @@ void BBvLoopbackOff (PSDevice pDevice)
1274 * Return Value: none 1274 * Return Value: none
1275 * 1275 *
1276 */ 1276 */
1277VOID 1277void
1278BBvSetShortSlotTime (PSDevice pDevice) 1278BBvSetShortSlotTime (PSDevice pDevice)
1279{ 1279{
1280 BYTE byBBVGA=0; 1280 BYTE byBBVGA=0;
@@ -1295,7 +1295,7 @@ BBvSetShortSlotTime (PSDevice pDevice)
1295} 1295}
1296 1296
1297 1297
1298VOID BBvSetVGAGainOffset(PSDevice pDevice, BYTE byData) 1298void BBvSetVGAGainOffset(PSDevice pDevice, BYTE byData)
1299{ 1299{
1300 1300
1301 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xE7, byData); 1301 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xE7, byData);
@@ -1324,7 +1324,7 @@ VOID BBvSetVGAGainOffset(PSDevice pDevice, BYTE byData)
1324 * Return Value: none 1324 * Return Value: none
1325 * 1325 *
1326 */ 1326 */
1327VOID 1327void
1328BBvSoftwareReset (PSDevice pDevice) 1328BBvSoftwareReset (PSDevice pDevice)
1329{ 1329{
1330 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0x50, 0x40); 1330 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0x50, 0x40);
@@ -1345,14 +1345,14 @@ BBvSoftwareReset (PSDevice pDevice)
1345 * Return Value: none 1345 * Return Value: none
1346 * 1346 *
1347 */ 1347 */
1348VOID 1348void
1349BBvSetDeepSleep (PSDevice pDevice) 1349BBvSetDeepSleep (PSDevice pDevice)
1350{ 1350{
1351 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0x0c, 0x17);//CR12 1351 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0x0c, 0x17);//CR12
1352 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0x0D, 0xB9);//CR13 1352 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0x0D, 0xB9);//CR13
1353} 1353}
1354 1354
1355VOID 1355void
1356BBvExitDeepSleep (PSDevice pDevice) 1356BBvExitDeepSleep (PSDevice pDevice)
1357{ 1357{
1358 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0x0C, 0x00);//CR12 1358 ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0x0C, 0x00);//CR12
@@ -1360,13 +1360,11 @@ BBvExitDeepSleep (PSDevice pDevice)
1360} 1360}
1361 1361
1362 1362
1363static 1363static unsigned long s_ulGetLowSQ3(PSDevice pDevice)
1364ULONG
1365s_ulGetLowSQ3(PSDevice pDevice)
1366{ 1364{
1367int ii; 1365 int ii;
1368ULONG ulSQ3 = 0; 1366 unsigned long ulSQ3 = 0;
1369ULONG ulMaxPacket; 1367 unsigned long ulMaxPacket;
1370 1368
1371 ulMaxPacket = pDevice->aulPktNum[RATE_54M]; 1369 ulMaxPacket = pDevice->aulPktNum[RATE_54M];
1372 if ( pDevice->aulPktNum[RATE_54M] != 0 ) { 1370 if ( pDevice->aulPktNum[RATE_54M] != 0 ) {
@@ -1382,16 +1380,12 @@ ULONG ulMaxPacket;
1382 return ulSQ3; 1380 return ulSQ3;
1383} 1381}
1384 1382
1385 1383static unsigned long s_ulGetRatio(PSDevice pDevice)
1386
1387static
1388ULONG
1389s_ulGetRatio (PSDevice pDevice)
1390{ 1384{
1391int ii,jj; 1385 int ii, jj;
1392ULONG ulRatio = 0; 1386 unsigned long ulRatio = 0;
1393ULONG ulMaxPacket; 1387 unsigned long ulMaxPacket;
1394ULONG ulPacketNum; 1388 unsigned long ulPacketNum;
1395 1389
1396 //This is a thousand-ratio 1390 //This is a thousand-ratio
1397 ulMaxPacket = pDevice->aulPktNum[RATE_54M]; 1391 ulMaxPacket = pDevice->aulPktNum[RATE_54M];
@@ -1445,7 +1439,7 @@ s_vClearSQ3Value (PSDevice pDevice)
1445 * 1439 *
1446 */ 1440 */
1447 1441
1448VOID 1442void
1449BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3) 1443BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
1450{ 1444{
1451 1445
@@ -1513,7 +1507,9 @@ BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
1513 if ( pDevice->byTMax == 0 ) 1507 if ( pDevice->byTMax == 0 )
1514 return; 1508 return;
1515 1509
1516 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL); 1510 bScheduleCommand((void *) pDevice,
1511 WLAN_CMD_CHANGE_ANTENNA,
1512 NULL);
1517 1513
1518 pDevice->byAntennaState = 1; 1514 pDevice->byAntennaState = 1;
1519 1515
@@ -1543,7 +1539,9 @@ BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
1543 ((pDevice->ulSQ3_State1 != 0) && (pDevice->ulSQ3_State0 != 0) && (pDevice->ulSQ3_State0 < pDevice->ulSQ3_State1)) 1539 ((pDevice->ulSQ3_State1 != 0) && (pDevice->ulSQ3_State0 != 0) && (pDevice->ulSQ3_State0 < pDevice->ulSQ3_State1))
1544 ) { 1540 ) {
1545 1541
1546 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL); 1542 bScheduleCommand((void *) pDevice,
1543 WLAN_CMD_CHANGE_ANTENNA,
1544 NULL);
1547 1545
1548 pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ); 1546 pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ);
1549 pDevice->TimerSQ3Tmax2.expires = RUN_AT(pDevice->byTMax2 * HZ); 1547 pDevice->TimerSQ3Tmax2.expires = RUN_AT(pDevice->byTMax2 * HZ);
@@ -1576,17 +1574,14 @@ BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3)
1576 * 1574 *
1577-*/ 1575-*/
1578 1576
1579VOID 1577void TimerSQ3CallBack(void *hDeviceContext)
1580TimerSQ3CallBack (
1581 IN HANDLE hDeviceContext
1582 )
1583{ 1578{
1584 PSDevice pDevice = (PSDevice)hDeviceContext; 1579 PSDevice pDevice = (PSDevice)hDeviceContext;
1585 1580
1586 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3CallBack..."); 1581 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"TimerSQ3CallBack...");
1587 spin_lock_irq(&pDevice->lock); 1582 spin_lock_irq(&pDevice->lock);
1588 1583
1589 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL); 1584 bScheduleCommand((void *) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
1590 pDevice->byAntennaState = 0; 1585 pDevice->byAntennaState = 0;
1591 s_vClearSQ3Value(pDevice); 1586 s_vClearSQ3Value(pDevice);
1592 pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ); 1587 pDevice->TimerSQ3Tmax3.expires = RUN_AT(pDevice->byTMax3 * HZ);
@@ -1618,10 +1613,7 @@ TimerSQ3CallBack (
1618 * 1613 *
1619-*/ 1614-*/
1620 1615
1621VOID 1616void TimerSQ3Tmax3CallBack(void *hDeviceContext)
1622TimerSQ3Tmax3CallBack (
1623 IN HANDLE hDeviceContext
1624 )
1625{ 1617{
1626 PSDevice pDevice = (PSDevice)hDeviceContext; 1618 PSDevice pDevice = (PSDevice)hDeviceContext;
1627 1619
@@ -1639,7 +1631,7 @@ TimerSQ3Tmax3CallBack (
1639 return; 1631 return;
1640 } 1632 }
1641 1633
1642 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL); 1634 bScheduleCommand((void *) pDevice, WLAN_CMD_CHANGE_ANTENNA, NULL);
1643 pDevice->byAntennaState = 1; 1635 pDevice->byAntennaState = 1;
1644 del_timer(&pDevice->TimerSQ3Tmax3); 1636 del_timer(&pDevice->TimerSQ3Tmax3);
1645 del_timer(&pDevice->TimerSQ3Tmax2); 1637 del_timer(&pDevice->TimerSQ3Tmax2);
@@ -1650,10 +1642,10 @@ TimerSQ3Tmax3CallBack (
1650 return; 1642 return;
1651} 1643}
1652 1644
1653VOID 1645void
1654BBvUpdatePreEDThreshold( 1646BBvUpdatePreEDThreshold(
1655 IN PSDevice pDevice, 1647 PSDevice pDevice,
1656 IN BOOL bScanning) 1648 BOOL bScanning)
1657{ 1649{
1658 1650
1659 1651
diff --git a/drivers/staging/vt6656/baseband.h b/drivers/staging/vt6656/baseband.h
index e991a7e68d4..bc4633d5fea 100644
--- a/drivers/staging/vt6656/baseband.h
+++ b/drivers/staging/vt6656/baseband.h
@@ -96,51 +96,44 @@
96 96
97/*--------------------- Export Functions --------------------------*/ 97/*--------------------- Export Functions --------------------------*/
98 98
99UINT 99unsigned int
100BBuGetFrameTime( 100BBuGetFrameTime(
101 IN BYTE byPreambleType, 101 BYTE byPreambleType,
102 IN BYTE byFreqType, 102 BYTE byFreqType,
103 IN UINT cbFrameLength, 103 unsigned int cbFrameLength,
104 IN WORD wRate 104 WORD wRate
105 ); 105 );
106 106
107VOID 107void
108BBvCaculateParameter ( 108BBvCaculateParameter (
109 IN PSDevice pDevice, 109 PSDevice pDevice,
110 IN UINT cbFrameLength, 110 unsigned int cbFrameLength,
111 IN WORD wRate, 111 WORD wRate,
112 IN BYTE byPacketType, 112 BYTE byPacketType,
113 OUT PWORD pwPhyLen, 113 PWORD pwPhyLen,
114 OUT PBYTE pbyPhySrv, 114 PBYTE pbyPhySrv,
115 OUT PBYTE pbyPhySgn 115 PBYTE pbyPhySgn
116 ); 116 );
117 117
118// timer for antenna diversity 118// timer for antenna diversity
119 119
120VOID 120void TimerSQ3CallBack(void *hDeviceContext);
121TimerSQ3CallBack ( 121void TimerSQ3Tmax3CallBack(void *hDeviceContext);
122 IN HANDLE hDeviceContext
123 );
124
125VOID
126TimerSQ3Tmax3CallBack (
127 IN HANDLE hDeviceContext
128 );
129 122
130VOID BBvAntennaDiversity (PSDevice pDevice, BYTE byRxRate, BYTE bySQ3); 123void BBvAntennaDiversity(PSDevice pDevice, BYTE byRxRate, BYTE bySQ3);
131void BBvLoopbackOn (PSDevice pDevice); 124void BBvLoopbackOn(PSDevice pDevice);
132void BBvLoopbackOff (PSDevice pDevice); 125void BBvLoopbackOff(PSDevice pDevice);
133void BBvSoftwareReset (PSDevice pDevice); 126void BBvSoftwareReset(PSDevice pDevice);
134 127
135void BBvSetShortSlotTime(PSDevice pDevice); 128void BBvSetShortSlotTime(PSDevice pDevice);
136VOID BBvSetVGAGainOffset(PSDevice pDevice, BYTE byData); 129void BBvSetVGAGainOffset(PSDevice pDevice, BYTE byData);
137void BBvSetAntennaMode(PSDevice pDevice, BYTE byAntennaMode); 130void BBvSetAntennaMode(PSDevice pDevice, BYTE byAntennaMode);
138BOOL BBbVT3184Init (PSDevice pDevice); 131BOOL BBbVT3184Init (PSDevice pDevice);
139VOID BBvSetDeepSleep (PSDevice pDevice); 132void BBvSetDeepSleep(PSDevice pDevice);
140VOID BBvExitDeepSleep (PSDevice pDevice); 133void BBvExitDeepSleep(PSDevice pDevice);
141VOID BBvUpdatePreEDThreshold( 134void BBvUpdatePreEDThreshold(
142 IN PSDevice pDevice, 135 PSDevice pDevice,
143 IN BOOL bScanning 136 BOOL bScanning
144 ); 137 );
145 138
146#endif // __BASEBAND_H__ 139#endif /* __BASEBAND_H__ */
diff --git a/drivers/staging/vt6656/bssdb.c b/drivers/staging/vt6656/bssdb.c
index 6b1678bfd61..36ed61b595c 100644
--- a/drivers/staging/vt6656/bssdb.c
+++ b/drivers/staging/vt6656/bssdb.c
@@ -91,19 +91,13 @@ const WORD awHWRetry1[5][5] = {
91 91
92/*--------------------- Static Functions --------------------------*/ 92/*--------------------- Static Functions --------------------------*/
93 93
94VOID s_vCheckSensitivity( 94void s_vCheckSensitivity(void *hDeviceContext);
95 IN HANDLE hDeviceContext 95void s_vCheckPreEDThreshold(void *hDeviceContext);
96 );
97
98VOID s_vCheckPreEDThreshold(
99 IN HANDLE hDeviceContext
100 );
101 96
102#ifdef Calcu_LinkQual 97#ifdef Calcu_LinkQual
103VOID s_uCalculateLinkQual( 98void s_uCalculateLinkQual(void *hDeviceContext);
104 IN HANDLE hDeviceContext
105 );
106#endif 99#endif
100
107/*--------------------- Export Variables --------------------------*/ 101/*--------------------- Export Variables --------------------------*/
108 102
109 103
@@ -123,13 +117,10 @@ VOID s_uCalculateLinkQual(
123 * 117 *
124-*/ 118-*/
125 119
126PKnownBSS 120PKnownBSS BSSpSearchBSSList(void *hDeviceContext,
127BSSpSearchBSSList( 121 PBYTE pbyDesireBSSID,
128 IN HANDLE hDeviceContext, 122 PBYTE pbyDesireSSID,
129 IN PBYTE pbyDesireBSSID, 123 CARD_PHY_TYPE ePhyType)
130 IN PBYTE pbyDesireSSID,
131 IN CARD_PHY_TYPE ePhyType
132 )
133{ 124{
134 PSDevice pDevice = (PSDevice)hDeviceContext; 125 PSDevice pDevice = (PSDevice)hDeviceContext;
135 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 126 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -138,8 +129,8 @@ BSSpSearchBSSList(
138 PKnownBSS pCurrBSS = NULL; 129 PKnownBSS pCurrBSS = NULL;
139 PKnownBSS pSelect = NULL; 130 PKnownBSS pSelect = NULL;
140 BYTE ZeroBSSID[WLAN_BSSID_LEN]={0x00,0x00,0x00,0x00,0x00,0x00}; 131 BYTE ZeroBSSID[WLAN_BSSID_LEN]={0x00,0x00,0x00,0x00,0x00,0x00};
141 UINT ii = 0; 132 unsigned int ii = 0;
142 UINT jj = 0; //DavidWang 133 unsigned int jj = 0;
143 if (pbyDesireBSSID != NULL) { 134 if (pbyDesireBSSID != NULL) {
144 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BSSpSearchBSSList BSSID[%02X %02X %02X-%02X %02X %02X]\n", 135 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BSSpSearchBSSList BSSID[%02X %02X %02X-%02X %02X %02X]\n",
145 *pbyDesireBSSID,*(pbyDesireBSSID+1),*(pbyDesireBSSID+2), 136 *pbyDesireBSSID,*(pbyDesireBSSID+1),*(pbyDesireBSSID+2),
@@ -296,15 +287,11 @@ pDevice->bSameBSSMaxNum = jj;
296-*/ 287-*/
297 288
298 289
299VOID 290void BSSvClearBSSList(void *hDeviceContext, BOOL bKeepCurrBSSID)
300BSSvClearBSSList(
301 IN HANDLE hDeviceContext,
302 IN BOOL bKeepCurrBSSID
303 )
304{ 291{
305 PSDevice pDevice = (PSDevice)hDeviceContext; 292 PSDevice pDevice = (PSDevice)hDeviceContext;
306 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 293 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
307 UINT ii; 294 unsigned int ii;
308 295
309 for (ii = 0; ii < MAX_BSS_NUM; ii++) { 296 for (ii = 0; ii < MAX_BSS_NUM; ii++) {
310 if (bKeepCurrBSSID) { 297 if (bKeepCurrBSSID) {
@@ -342,17 +329,14 @@ BSSvClearBSSList(
342 * TRUE if found. 329 * TRUE if found.
343 * 330 *
344-*/ 331-*/
345PKnownBSS 332PKnownBSS BSSpAddrIsInBSSList(void *hDeviceContext,
346BSSpAddrIsInBSSList( 333 PBYTE abyBSSID,
347 IN HANDLE hDeviceContext, 334 PWLAN_IE_SSID pSSID)
348 IN PBYTE abyBSSID,
349 IN PWLAN_IE_SSID pSSID
350 )
351{ 335{
352 PSDevice pDevice = (PSDevice)hDeviceContext; 336 PSDevice pDevice = (PSDevice)hDeviceContext;
353 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 337 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
354 PKnownBSS pBSSList = NULL; 338 PKnownBSS pBSSList = NULL;
355 UINT ii; 339 unsigned int ii;
356 340
357 for (ii = 0; ii < MAX_BSS_NUM; ii++) { 341 for (ii = 0; ii < MAX_BSS_NUM; ii++) {
358 pBSSList = &(pMgmt->sBSSList[ii]); 342 pBSSList = &(pMgmt->sBSSList[ii]);
@@ -383,33 +367,30 @@ BSSpAddrIsInBSSList(
383 * 367 *
384-*/ 368-*/
385 369
386BOOL 370BOOL BSSbInsertToBSSList(void *hDeviceContext,
387BSSbInsertToBSSList ( 371 PBYTE abyBSSIDAddr,
388 IN HANDLE hDeviceContext, 372 QWORD qwTimestamp,
389 IN PBYTE abyBSSIDAddr, 373 WORD wBeaconInterval,
390 IN QWORD qwTimestamp, 374 WORD wCapInfo,
391 IN WORD wBeaconInterval, 375 BYTE byCurrChannel,
392 IN WORD wCapInfo, 376 PWLAN_IE_SSID pSSID,
393 IN BYTE byCurrChannel, 377 PWLAN_IE_SUPP_RATES pSuppRates,
394 IN PWLAN_IE_SSID pSSID, 378 PWLAN_IE_SUPP_RATES pExtSuppRates,
395 IN PWLAN_IE_SUPP_RATES pSuppRates, 379 PERPObject psERP,
396 IN PWLAN_IE_SUPP_RATES pExtSuppRates, 380 PWLAN_IE_RSN pRSN,
397 IN PERPObject psERP, 381 PWLAN_IE_RSN_EXT pRSNWPA,
398 IN PWLAN_IE_RSN pRSN, 382 PWLAN_IE_COUNTRY pIE_Country,
399 IN PWLAN_IE_RSN_EXT pRSNWPA, 383 PWLAN_IE_QUIET pIE_Quiet,
400 IN PWLAN_IE_COUNTRY pIE_Country, 384 unsigned int uIELength,
401 IN PWLAN_IE_QUIET pIE_Quiet, 385 PBYTE pbyIEs,
402 IN UINT uIELength, 386 void *pRxPacketContext)
403 IN PBYTE pbyIEs,
404 IN HANDLE pRxPacketContext
405 )
406{ 387{
407 388
408 PSDevice pDevice = (PSDevice)hDeviceContext; 389 PSDevice pDevice = (PSDevice)hDeviceContext;
409 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 390 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
410 PSRxMgmtPacket pRxPacket = (PSRxMgmtPacket)pRxPacketContext; 391 PSRxMgmtPacket pRxPacket = (PSRxMgmtPacket)pRxPacketContext;
411 PKnownBSS pBSSList = NULL; 392 PKnownBSS pBSSList = NULL;
412 UINT ii; 393 unsigned int ii;
413 BOOL bParsingQuiet = FALSE; 394 BOOL bParsingQuiet = FALSE;
414 395
415 396
@@ -484,24 +465,27 @@ BSSbInsertToBSSList (
484 WPA_ClearRSN(pBSSList); 465 WPA_ClearRSN(pBSSList);
485 466
486 if (pRSNWPA != NULL) { 467 if (pRSNWPA != NULL) {
487 UINT uLen = pRSNWPA->len + 2; 468 unsigned int uLen = pRSNWPA->len + 2;
488 469
489 if (uLen <= (uIELength - (UINT)(ULONG_PTR)((PBYTE)pRSNWPA - pbyIEs))) { 470 if (uLen <= (uIELength -
490 pBSSList->wWPALen = uLen; 471 (unsigned int) (ULONG_PTR) ((PBYTE) pRSNWPA - pbyIEs))) {
491 memcpy(pBSSList->byWPAIE, pRSNWPA, uLen); 472 pBSSList->wWPALen = uLen;
492 WPA_ParseRSN(pBSSList, pRSNWPA); 473 memcpy(pBSSList->byWPAIE, pRSNWPA, uLen);
493 } 474 WPA_ParseRSN(pBSSList, pRSNWPA);
475 }
494 } 476 }
495 477
496 WPA2_ClearRSN(pBSSList); 478 WPA2_ClearRSN(pBSSList);
497 479
498 if (pRSN != NULL) { 480 if (pRSN != NULL) {
499 UINT uLen = pRSN->len + 2; 481 unsigned int uLen = pRSN->len + 2;
500 if (uLen <= (uIELength - (UINT)(ULONG_PTR)((PBYTE)pRSN - pbyIEs))) { 482
501 pBSSList->wRSNLen = uLen; 483 if (uLen <= (uIELength -
502 memcpy(pBSSList->byRSNIE, pRSN, uLen); 484 (unsigned int) (ULONG_PTR) ((PBYTE) pRSN - pbyIEs))) {
503 WPA2vParseRSN(pBSSList, pRSN); 485 pBSSList->wRSNLen = uLen;
504 } 486 memcpy(pBSSList->byRSNIE, pRSN, uLen);
487 WPA2vParseRSN(pBSSList, pRSN);
488 }
505 } 489 }
506 490
507 if ((pMgmt->eAuthenMode == WMAC_AUTH_WPA2) || (pBSSList->bWPA2Valid == TRUE)) { 491 if ((pMgmt->eAuthenMode == WMAC_AUTH_WPA2) || (pBSSList->bWPA2Valid == TRUE)) {
@@ -518,7 +502,9 @@ BSSbInsertToBSSList (
518 if ((bIs802_1x == TRUE) && (pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->len) && 502 if ((bIs802_1x == TRUE) && (pSSID->len == ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->len) &&
519 ( !memcmp(pSSID->abySSID, ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID, pSSID->len))) { 503 ( !memcmp(pSSID->abySSID, ((PWLAN_IE_SSID)pMgmt->abyDesireSSID)->abySSID, pSSID->len))) {
520 504
521 bAdd_PMKID_Candidate((HANDLE)pDevice, pBSSList->abyBSSID, &pBSSList->sRSNCapObj); 505 bAdd_PMKID_Candidate((void *) pDevice,
506 pBSSList->abyBSSID,
507 &pBSSList->sRSNCapObj);
522 508
523 if ((pDevice->bLinkPass == TRUE) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) { 509 if ((pDevice->bLinkPass == TRUE) && (pMgmt->eCurrState == WMAC_STATE_ASSOC)) {
524 if ((KeybGetTransmitKey(&(pDevice->sKey), pDevice->abyBSSID, PAIRWISE_KEY, &pTransmitKey) == TRUE) || 510 if ((KeybGetTransmitKey(&(pDevice->sKey), pDevice->abyBSSID, PAIRWISE_KEY, &pTransmitKey) == TRUE) ||
@@ -602,33 +588,30 @@ BSSbInsertToBSSList (
602-*/ 588-*/
603// TODO: input structure modify 589// TODO: input structure modify
604 590
605BOOL 591BOOL BSSbUpdateToBSSList(void *hDeviceContext,
606BSSbUpdateToBSSList ( 592 QWORD qwTimestamp,
607 IN HANDLE hDeviceContext, 593 WORD wBeaconInterval,
608 IN QWORD qwTimestamp, 594 WORD wCapInfo,
609 IN WORD wBeaconInterval, 595 BYTE byCurrChannel,
610 IN WORD wCapInfo, 596 BOOL bChannelHit,
611 IN BYTE byCurrChannel, 597 PWLAN_IE_SSID pSSID,
612 IN BOOL bChannelHit, 598 PWLAN_IE_SUPP_RATES pSuppRates,
613 IN PWLAN_IE_SSID pSSID, 599 PWLAN_IE_SUPP_RATES pExtSuppRates,
614 IN PWLAN_IE_SUPP_RATES pSuppRates, 600 PERPObject psERP,
615 IN PWLAN_IE_SUPP_RATES pExtSuppRates, 601 PWLAN_IE_RSN pRSN,
616 IN PERPObject psERP, 602 PWLAN_IE_RSN_EXT pRSNWPA,
617 IN PWLAN_IE_RSN pRSN, 603 PWLAN_IE_COUNTRY pIE_Country,
618 IN PWLAN_IE_RSN_EXT pRSNWPA, 604 PWLAN_IE_QUIET pIE_Quiet,
619 IN PWLAN_IE_COUNTRY pIE_Country, 605 PKnownBSS pBSSList,
620 IN PWLAN_IE_QUIET pIE_Quiet, 606 unsigned int uIELength,
621 IN PKnownBSS pBSSList, 607 PBYTE pbyIEs,
622 IN UINT uIELength, 608 void *pRxPacketContext)
623 IN PBYTE pbyIEs,
624 IN HANDLE pRxPacketContext
625 )
626{ 609{
627 int ii, jj; 610 int ii, jj;
628 PSDevice pDevice = (PSDevice)hDeviceContext; 611 PSDevice pDevice = (PSDevice)hDeviceContext;
629 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 612 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
630 PSRxMgmtPacket pRxPacket = (PSRxMgmtPacket)pRxPacketContext; 613 PSRxMgmtPacket pRxPacket = (PSRxMgmtPacket)pRxPacketContext;
631 LONG ldBm, ldBmSum; 614 signed long ldBm, ldBmSum;
632 BOOL bParsingQuiet = FALSE; 615 BOOL bParsingQuiet = FALSE;
633 // BYTE abyTmpSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; 616 // BYTE abyTmpSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
634 617
@@ -687,24 +670,26 @@ BSSbUpdateToBSSList (
687 670
688 WPA_ClearRSN(pBSSList); //mike update 671 WPA_ClearRSN(pBSSList); //mike update
689 672
690 if (pRSNWPA != NULL) { 673 if (pRSNWPA != NULL) {
691 UINT uLen = pRSNWPA->len + 2; 674 unsigned int uLen = pRSNWPA->len + 2;
692 if (uLen <= (uIELength - (UINT)(ULONG_PTR)((PBYTE)pRSNWPA - pbyIEs))) { 675 if (uLen <= (uIELength -
693 pBSSList->wWPALen = uLen; 676 (unsigned int) (ULONG_PTR) ((PBYTE) pRSNWPA - pbyIEs))) {
694 memcpy(pBSSList->byWPAIE, pRSNWPA, uLen); 677 pBSSList->wWPALen = uLen;
695 WPA_ParseRSN(pBSSList, pRSNWPA); 678 memcpy(pBSSList->byWPAIE, pRSNWPA, uLen);
696 } 679 WPA_ParseRSN(pBSSList, pRSNWPA);
697 } 680 }
681 }
698 682
699 WPA2_ClearRSN(pBSSList); //mike update 683 WPA2_ClearRSN(pBSSList); //mike update
700 684
701 if (pRSN != NULL) { 685 if (pRSN != NULL) {
702 UINT uLen = pRSN->len + 2; 686 unsigned int uLen = pRSN->len + 2;
703 if (uLen <= (uIELength - (UINT)(ULONG_PTR)((PBYTE)pRSN - pbyIEs))) { 687 if (uLen <= (uIELength -
704 pBSSList->wRSNLen = uLen; 688 (unsigned int) (ULONG_PTR) ((PBYTE) pRSN - pbyIEs))) {
705 memcpy(pBSSList->byRSNIE, pRSN, uLen); 689 pBSSList->wRSNLen = uLen;
706 WPA2vParseRSN(pBSSList, pRSN); 690 memcpy(pBSSList->byRSNIE, pRSN, uLen);
707 } 691 WPA2vParseRSN(pBSSList, pRSN);
692 }
708 } 693 }
709 694
710 if (pRxPacket->uRSSI != 0) { 695 if (pRxPacket->uRSSI != 0) {
@@ -768,16 +753,13 @@ BSSbUpdateToBSSList (
768 * 753 *
769-*/ 754-*/
770 755
771BOOL 756BOOL BSSbIsSTAInNodeDB(void *hDeviceContext,
772BSSbIsSTAInNodeDB( 757 PBYTE abyDstAddr,
773 IN HANDLE hDeviceContext, 758 PUINT puNodeIndex)
774 IN PBYTE abyDstAddr,
775 OUT PUINT puNodeIndex
776 )
777{ 759{
778 PSDevice pDevice = (PSDevice)hDeviceContext; 760 PSDevice pDevice = (PSDevice)hDeviceContext;
779 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 761 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
780 UINT ii; 762 unsigned int ii;
781 763
782 // Index = 0 reserved for AP Node 764 // Index = 0 reserved for AP Node
783 for (ii = 1; ii < (MAX_NODE_NUM + 1); ii++) { 765 for (ii = 1; ii < (MAX_NODE_NUM + 1); ii++) {
@@ -804,18 +786,14 @@ BSSbIsSTAInNodeDB(
804 * None 786 * None
805 * 787 *
806-*/ 788-*/
807VOID 789void BSSvCreateOneNode(void *hDeviceContext, PUINT puNodeIndex)
808BSSvCreateOneNode(
809 IN HANDLE hDeviceContext,
810 OUT PUINT puNodeIndex
811 )
812{ 790{
813 791
814 PSDevice pDevice = (PSDevice)hDeviceContext; 792 PSDevice pDevice = (PSDevice)hDeviceContext;
815 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 793 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
816 UINT ii; 794 unsigned int ii;
817 UINT BigestCount = 0; 795 unsigned int BigestCount = 0;
818 UINT SelectIndex; 796 unsigned int SelectIndex;
819 struct sk_buff *skb; 797 struct sk_buff *skb;
820 // Index = 0 reserved for AP Node (In STA mode) 798 // Index = 0 reserved for AP Node (In STA mode)
821 // Index = 0 reserved for Broadcast/MultiCast (In AP mode) 799 // Index = 0 reserved for Broadcast/MultiCast (In AP mode)
@@ -869,11 +847,8 @@ BSSvCreateOneNode(
869 * None 847 * None
870 * 848 *
871-*/ 849-*/
872VOID 850
873BSSvRemoveOneNode( 851void BSSvRemoveOneNode(void *hDeviceContext, unsigned int uNodeIndex)
874 IN HANDLE hDeviceContext,
875 IN UINT uNodeIndex
876 )
877{ 852{
878 853
879 PSDevice pDevice = (PSDevice)hDeviceContext; 854 PSDevice pDevice = (PSDevice)hDeviceContext;
@@ -902,17 +877,14 @@ BSSvRemoveOneNode(
902 * 877 *
903-*/ 878-*/
904 879
905VOID 880void BSSvUpdateAPNode(void *hDeviceContext,
906BSSvUpdateAPNode( 881 PWORD pwCapInfo,
907 IN HANDLE hDeviceContext, 882 PWLAN_IE_SUPP_RATES pSuppRates,
908 IN PWORD pwCapInfo, 883 PWLAN_IE_SUPP_RATES pExtSuppRates)
909 IN PWLAN_IE_SUPP_RATES pSuppRates,
910 IN PWLAN_IE_SUPP_RATES pExtSuppRates
911 )
912{ 884{
913 PSDevice pDevice = (PSDevice)hDeviceContext; 885 PSDevice pDevice = (PSDevice)hDeviceContext;
914 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 886 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
915 UINT uRateLen = WLAN_RATES_MAXLEN; 887 unsigned int uRateLen = WLAN_RATES_MAXLEN;
916 888
917 memset(&pMgmt->sNodeDBTable[0], 0, sizeof(KnownNodeDB)); 889 memset(&pMgmt->sNodeDBTable[0], 0, sizeof(KnownNodeDB));
918 890
@@ -926,7 +898,7 @@ BSSvUpdateAPNode(
926 pMgmt->abyCurrExtSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)pExtSuppRates, 898 pMgmt->abyCurrExtSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)pExtSuppRates,
927 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, 899 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates,
928 uRateLen); 900 uRateLen);
929 RATEvParseMaxRate((PVOID) pDevice, 901 RATEvParseMaxRate((void *) pDevice,
930 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 902 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
931 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, 903 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates,
932 TRUE, 904 TRUE,
@@ -946,10 +918,6 @@ BSSvUpdateAPNode(
946 918
947}; 919};
948 920
949
950
951
952
953/*+ 921/*+
954 * 922 *
955 * Routine Description: 923 * Routine Description:
@@ -961,11 +929,7 @@ BSSvUpdateAPNode(
961 * 929 *
962-*/ 930-*/
963 931
964 932void BSSvAddMulticastNode(void *hDeviceContext)
965VOID
966BSSvAddMulticastNode(
967 IN HANDLE hDeviceContext
968 )
969{ 933{
970 PSDevice pDevice = (PSDevice)hDeviceContext; 934 PSDevice pDevice = (PSDevice)hDeviceContext;
971 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 935 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -976,7 +940,7 @@ BSSvAddMulticastNode(
976 pMgmt->sNodeDBTable[0].bActive = TRUE; 940 pMgmt->sNodeDBTable[0].bActive = TRUE;
977 pMgmt->sNodeDBTable[0].bPSEnable = FALSE; 941 pMgmt->sNodeDBTable[0].bPSEnable = FALSE;
978 skb_queue_head_init(&pMgmt->sNodeDBTable[0].sTxPSQueue); 942 skb_queue_head_init(&pMgmt->sNodeDBTable[0].sTxPSQueue);
979 RATEvParseMaxRate((PVOID) pDevice, 943 RATEvParseMaxRate((void *) pDevice,
980 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 944 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
981 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, 945 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates,
982 TRUE, 946 TRUE,
@@ -991,10 +955,6 @@ BSSvAddMulticastNode(
991 955
992}; 956};
993 957
994
995
996
997
998/*+ 958/*+
999 * 959 *
1000 * Routine Description: 960 * Routine Description:
@@ -1008,19 +968,15 @@ BSSvAddMulticastNode(
1008 * 968 *
1009-*/ 969-*/
1010 970
1011 971void BSSvSecondCallBack(void *hDeviceContext)
1012VOID
1013BSSvSecondCallBack(
1014 IN HANDLE hDeviceContext
1015 )
1016{ 972{
1017 PSDevice pDevice = (PSDevice)hDeviceContext; 973 PSDevice pDevice = (PSDevice)hDeviceContext;
1018 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 974 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
1019 UINT ii; 975 unsigned int ii;
1020 PWLAN_IE_SSID pItemSSID, pCurrSSID; 976 PWLAN_IE_SSID pItemSSID, pCurrSSID;
1021 UINT uSleepySTACnt = 0; 977 unsigned int uSleepySTACnt = 0;
1022 UINT uNonShortSlotSTACnt = 0; 978 unsigned int uNonShortSlotSTACnt = 0;
1023 UINT uLongPreambleSTACnt = 0; 979 unsigned int uLongPreambleSTACnt = 0;
1024 viawget_wpa_header *wpahdr; //DavidWang 980 viawget_wpa_header *wpahdr; //DavidWang
1025 981
1026 spin_lock_irq(&pDevice->lock); 982 spin_lock_irq(&pDevice->lock);
@@ -1080,7 +1036,7 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) &&
1080#endif 1036#endif
1081 1037
1082#ifdef Calcu_LinkQual 1038#ifdef Calcu_LinkQual
1083 s_uCalculateLinkQual((HANDLE)pDevice); 1039 s_uCalculateLinkQual((void *)pDevice);
1084#endif 1040#endif
1085 1041
1086 for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) { 1042 for (ii = 0; ii < (MAX_NODE_NUM + 1); ii++) {
@@ -1131,12 +1087,14 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) &&
1131*/ 1087*/
1132 if (ii > 0) { 1088 if (ii > 0) {
1133 // ii = 0 for multicast node (AP & Adhoc) 1089 // ii = 0 for multicast node (AP & Adhoc)
1134 RATEvTxRateFallBack((PVOID)pDevice, &(pMgmt->sNodeDBTable[ii])); 1090 RATEvTxRateFallBack((void *)pDevice,
1091 &(pMgmt->sNodeDBTable[ii]));
1135 } 1092 }
1136 else { 1093 else {
1137 // ii = 0 reserved for unicast AP node (Infra STA) 1094 // ii = 0 reserved for unicast AP node (Infra STA)
1138 if (pMgmt->eCurrMode == WMAC_MODE_ESS_STA) 1095 if (pMgmt->eCurrMode == WMAC_MODE_ESS_STA)
1139 RATEvTxRateFallBack((PVOID)pDevice, &(pMgmt->sNodeDBTable[ii])); 1096 RATEvTxRateFallBack((void *)pDevice,
1097 &(pMgmt->sNodeDBTable[ii]));
1140 } 1098 }
1141 1099
1142 } 1100 }
@@ -1177,14 +1135,14 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) &&
1177 if (pDevice->bShortSlotTime) { 1135 if (pDevice->bShortSlotTime) {
1178 pDevice->bShortSlotTime = FALSE; 1136 pDevice->bShortSlotTime = FALSE;
1179 BBvSetShortSlotTime(pDevice); 1137 BBvSetShortSlotTime(pDevice);
1180 vUpdateIFS((PVOID)pDevice); 1138 vUpdateIFS((void *)pDevice);
1181 } 1139 }
1182 } 1140 }
1183 else { 1141 else {
1184 if (!pDevice->bShortSlotTime) { 1142 if (!pDevice->bShortSlotTime) {
1185 pDevice->bShortSlotTime = TRUE; 1143 pDevice->bShortSlotTime = TRUE;
1186 BBvSetShortSlotTime(pDevice); 1144 BBvSetShortSlotTime(pDevice);
1187 vUpdateIFS((PVOID)pDevice); 1145 vUpdateIFS((void *)pDevice);
1188 } 1146 }
1189 } 1147 }
1190 1148
@@ -1224,14 +1182,16 @@ if((pMgmt->eCurrState!=WMAC_STATE_ASSOC) &&
1224 // DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Callback inactive Count = [%d]\n", pMgmt->sNodeDBTable[0].uInActiveCount); 1182 // DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Callback inactive Count = [%d]\n", pMgmt->sNodeDBTable[0].uInActiveCount);
1225 1183
1226 if (pDevice->bUpdateBBVGA) { 1184 if (pDevice->bUpdateBBVGA) {
1227 // s_vCheckSensitivity((HANDLE) pDevice); 1185 /* s_vCheckSensitivity((void *) pDevice); */
1228 s_vCheckPreEDThreshold((HANDLE)pDevice); 1186 s_vCheckPreEDThreshold((void *) pDevice);
1229 } 1187 }
1230 1188
1231 if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) && 1189 if ((pMgmt->sNodeDBTable[0].uInActiveCount >= (LOST_BEACON_COUNT/2)) &&
1232 (pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) { 1190 (pDevice->byBBVGACurrent != pDevice->abyBBVGA[0]) ) {
1233 pDevice->byBBVGANew = pDevice->abyBBVGA[0]; 1191 pDevice->byBBVGANew = pDevice->abyBBVGA[0];
1234 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL); 1192 bScheduleCommand((void *) pDevice,
1193 WLAN_CMD_CHANGE_BBSENSITIVITY,
1194 NULL);
1235 } 1195 }
1236 1196
1237 if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) { 1197 if (pMgmt->sNodeDBTable[0].uInActiveCount >= LOST_BEACON_COUNT) {
@@ -1279,9 +1239,13 @@ DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bRoaming %d, !\n", pDevice->bRoaming );
1279DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bIsRoaming %d, !\n", pDevice->bIsRoaming ); 1239DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "bIsRoaming %d, !\n", pDevice->bIsRoaming );
1280 if ((pDevice->bRoaming == TRUE)&&(pDevice->bIsRoaming == TRUE)){ 1240 if ((pDevice->bRoaming == TRUE)&&(pDevice->bIsRoaming == TRUE)){
1281 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fast Roaming ...\n"); 1241 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Fast Roaming ...\n");
1282 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 1242 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
1283 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 1243 bScheduleCommand((void *) pDevice,
1284 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); 1244 WLAN_CMD_BSSID_SCAN,
1245 pMgmt->abyDesireSSID);
1246 bScheduleCommand((void *) pDevice,
1247 WLAN_CMD_SSID,
1248 pMgmt->abyDesireSSID);
1285 pDevice->uAutoReConnectTime = 0; 1249 pDevice->uAutoReConnectTime = 0;
1286 pDevice->uIsroamingTime = 0; 1250 pDevice->uIsroamingTime = 0;
1287 pDevice->bRoaming = FALSE; 1251 pDevice->bRoaming = FALSE;
@@ -1324,10 +1288,14 @@ else {
1324 pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus; 1288 pDevice->eEncryptionStatus = pDevice->eOldEncryptionStatus;
1325 1289
1326 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n"); 1290 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Roaming ...\n");
1327 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 1291 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
1328 pMgmt->eScanType = WMAC_SCAN_ACTIVE; 1292 pMgmt->eScanType = WMAC_SCAN_ACTIVE;
1329 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 1293 bScheduleCommand((void *) pDevice,
1330 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); 1294 WLAN_CMD_BSSID_SCAN,
1295 pMgmt->abyDesireSSID);
1296 bScheduleCommand((void *) pDevice,
1297 WLAN_CMD_SSID,
1298 pMgmt->abyDesireSSID);
1331 pDevice->uAutoReConnectTime = 0; 1299 pDevice->uAutoReConnectTime = 0;
1332 } 1300 }
1333 } 1301 }
@@ -1343,17 +1311,17 @@ else {
1343 else { 1311 else {
1344 DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n"); 1312 DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Adhoc re-scaning ...\n");
1345 pMgmt->eScanType = WMAC_SCAN_ACTIVE; 1313 pMgmt->eScanType = WMAC_SCAN_ACTIVE;
1346 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); 1314 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
1347 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); 1315 bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
1348 pDevice->uAutoReConnectTime = 0; 1316 pDevice->uAutoReConnectTime = 0;
1349 }; 1317 };
1350 } 1318 }
1351 if (pMgmt->eCurrState == WMAC_STATE_JOINTED) { 1319 if (pMgmt->eCurrState == WMAC_STATE_JOINTED) {
1352 1320
1353 if (pDevice->bUpdateBBVGA) { 1321 if (pDevice->bUpdateBBVGA) {
1354 //s_vCheckSensitivity((HANDLE) pDevice); 1322 /* s_vCheckSensitivity((void *) pDevice); */
1355 s_vCheckPreEDThreshold((HANDLE)pDevice); 1323 s_vCheckPreEDThreshold((void *) pDevice);
1356 } 1324 }
1357 if (pMgmt->sNodeDBTable[0].uInActiveCount >=ADHOC_LOST_BEACON_COUNT) { 1325 if (pMgmt->sNodeDBTable[0].uInActiveCount >=ADHOC_LOST_BEACON_COUNT) {
1358 DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost other STA beacon [%d] sec, started !\n", pMgmt->sNodeDBTable[0].uInActiveCount); 1326 DBG_PRT(MSG_LEVEL_NOTICE, KERN_INFO "Lost other STA beacon [%d] sec, started !\n", pMgmt->sNodeDBTable[0].uInActiveCount);
1359 pMgmt->sNodeDBTable[0].uInActiveCount = 0; 1327 pMgmt->sNodeDBTable[0].uInActiveCount = 0;
@@ -1377,9 +1345,6 @@ else {
1377 return; 1345 return;
1378} 1346}
1379 1347
1380
1381
1382
1383/*+ 1348/*+
1384 * 1349 *
1385 * Routine Description: 1350 * Routine Description:
@@ -1393,30 +1358,23 @@ else {
1393 * 1358 *
1394-*/ 1359-*/
1395 1360
1396 1361void BSSvUpdateNodeTxCounter(void *hDeviceContext,
1397 1362 PSStatCounter pStatistic,
1398VOID 1363 BYTE byTSR,
1399BSSvUpdateNodeTxCounter( 1364 BYTE byPktNO)
1400 IN HANDLE hDeviceContext,
1401 IN PSStatCounter pStatistic,
1402 IN BYTE byTSR,
1403 IN BYTE byPktNO
1404 )
1405{ 1365{
1406 PSDevice pDevice = (PSDevice)hDeviceContext; 1366 PSDevice pDevice = (PSDevice)hDeviceContext;
1407 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1367 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
1408 UINT uNodeIndex = 0; 1368 unsigned int uNodeIndex = 0;
1409 BYTE byTxRetry; 1369 BYTE byTxRetry;
1410 WORD wRate; 1370 WORD wRate;
1411 WORD wFallBackRate = RATE_1M; 1371 WORD wFallBackRate = RATE_1M;
1412 BYTE byFallBack; 1372 BYTE byFallBack;
1413 UINT ii; 1373 unsigned int ii;
1414 PBYTE pbyDestAddr; 1374 PBYTE pbyDestAddr;
1415 BYTE byPktNum; 1375 BYTE byPktNum;
1416 WORD wFIFOCtl; 1376 WORD wFIFOCtl;
1417 1377
1418
1419
1420 byPktNum = (byPktNO & 0x0F) >> 4; 1378 byPktNum = (byPktNO & 0x0F) >> 4;
1421 byTxRetry = (byTSR & 0xF0) >> 4; 1379 byTxRetry = (byTSR & 0xF0) >> 4;
1422 wRate = (WORD) (byPktNO & 0xF0) >> 4; 1380 wRate = (WORD) (byPktNO & 0xF0) >> 4;
@@ -1483,11 +1441,13 @@ BSSvUpdateNodeTxCounter(
1483 } 1441 }
1484 }; 1442 };
1485 1443
1486 if ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) || 1444 if ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) ||
1487 (pMgmt->eCurrMode == WMAC_MODE_ESS_AP)) { 1445 (pMgmt->eCurrMode == WMAC_MODE_ESS_AP)) {
1488 1446
1489 if (BSSbIsSTAInNodeDB((HANDLE)pDevice, pbyDestAddr, &uNodeIndex)){ 1447 if (BSSbIsSTAInNodeDB((void *) pDevice,
1490 pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts += 1; 1448 pbyDestAddr,
1449 &uNodeIndex)) {
1450 pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts += 1;
1491 if ( !(byTSR & (TSR_TMO | TSR_RETRYTMO))) { 1451 if ( !(byTSR & (TSR_TMO | TSR_RETRYTMO))) {
1492 // transmit success, TxAttempts at least plus one 1452 // transmit success, TxAttempts at least plus one
1493 pMgmt->sNodeDBTable[uNodeIndex].uTxOk[MAX_RATE]++; 1453 pMgmt->sNodeDBTable[uNodeIndex].uTxOk[MAX_RATE]++;
@@ -1542,9 +1502,6 @@ BSSvUpdateNodeTxCounter(
1542 1502
1543} 1503}
1544 1504
1545
1546
1547
1548/*+ 1505/*+
1549 * 1506 *
1550 * Routine Description: 1507 * Routine Description:
@@ -1563,18 +1520,13 @@ BSSvUpdateNodeTxCounter(
1563 * 1520 *
1564-*/ 1521-*/
1565 1522
1566 1523void BSSvClearNodeDBTable(void *hDeviceContext,
1567VOID 1524 unsigned int uStartIndex)
1568BSSvClearNodeDBTable(
1569 IN HANDLE hDeviceContext,
1570 IN UINT uStartIndex
1571 )
1572
1573{ 1525{
1574 PSDevice pDevice = (PSDevice)hDeviceContext; 1526 PSDevice pDevice = (PSDevice)hDeviceContext;
1575 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1527 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
1576 struct sk_buff *skb; 1528 struct sk_buff *skb;
1577 UINT ii; 1529 unsigned int ii;
1578 1530
1579 for (ii = uStartIndex; ii < (MAX_NODE_NUM + 1); ii++) { 1531 for (ii = uStartIndex; ii < (MAX_NODE_NUM + 1); ii++) {
1580 if (pMgmt->sNodeDBTable[ii].bActive) { 1532 if (pMgmt->sNodeDBTable[ii].bActive) {
@@ -1592,10 +1544,7 @@ BSSvClearNodeDBTable(
1592 return; 1544 return;
1593}; 1545};
1594 1546
1595 1547void s_vCheckSensitivity(void *hDeviceContext)
1596VOID s_vCheckSensitivity(
1597 IN HANDLE hDeviceContext
1598 )
1599{ 1548{
1600 PSDevice pDevice = (PSDevice)hDeviceContext; 1549 PSDevice pDevice = (PSDevice)hDeviceContext;
1601 PKnownBSS pBSSList = NULL; 1550 PKnownBSS pBSSList = NULL;
@@ -1606,9 +1555,9 @@ VOID s_vCheckSensitivity(
1606 ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED))) { 1555 ((pMgmt->eCurrMode == WMAC_MODE_IBSS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED))) {
1607 pBSSList = BSSpAddrIsInBSSList(pDevice, pMgmt->abyCurrBSSID, (PWLAN_IE_SSID)pMgmt->abyCurrSSID); 1556 pBSSList = BSSpAddrIsInBSSList(pDevice, pMgmt->abyCurrBSSID, (PWLAN_IE_SSID)pMgmt->abyCurrSSID);
1608 if (pBSSList != NULL) { 1557 if (pBSSList != NULL) {
1609 // Updata BB Reg if RSSI is too strong. 1558 /* Update BB register if RSSI is too strong */
1610 LONG LocalldBmAverage = 0; 1559 signed long LocalldBmAverage = 0;
1611 LONG uNumofdBm = 0; 1560 signed long uNumofdBm = 0;
1612 for (ii = 0; ii < RSSI_STAT_COUNT; ii++) { 1561 for (ii = 0; ii < RSSI_STAT_COUNT; ii++) {
1613 if (pBSSList->ldBmAverage[ii] != 0) { 1562 if (pBSSList->ldBmAverage[ii] != 0) {
1614 uNumofdBm ++; 1563 uNumofdBm ++;
@@ -1627,7 +1576,9 @@ VOID s_vCheckSensitivity(
1627 if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) { 1576 if (pDevice->byBBVGANew != pDevice->byBBVGACurrent) {
1628 pDevice->uBBVGADiffCount++; 1577 pDevice->uBBVGADiffCount++;
1629 if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD) 1578 if (pDevice->uBBVGADiffCount >= BB_VGA_CHANGE_THRESHOLD)
1630 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_CHANGE_BBSENSITIVITY, NULL); 1579 bScheduleCommand((void *) pDevice,
1580 WLAN_CMD_CHANGE_BBSENSITIVITY,
1581 NULL);
1631 } else { 1582 } else {
1632 pDevice->uBBVGADiffCount = 0; 1583 pDevice->uBBVGADiffCount = 0;
1633 } 1584 }
@@ -1637,14 +1588,12 @@ VOID s_vCheckSensitivity(
1637} 1588}
1638 1589
1639#ifdef Calcu_LinkQual 1590#ifdef Calcu_LinkQual
1640VOID s_uCalculateLinkQual( 1591void s_uCalculateLinkQual(void *hDeviceContext)
1641 IN HANDLE hDeviceContext
1642 )
1643{ 1592{
1644 PSDevice pDevice = (PSDevice)hDeviceContext; 1593 PSDevice pDevice = (PSDevice)hDeviceContext;
1645 ULONG TxOkRatio, TxCnt; 1594 unsigned long TxOkRatio, TxCnt;
1646 ULONG RxOkRatio,RxCnt; 1595 unsigned long RxOkRatio, RxCnt;
1647 ULONG RssiRatio; 1596 unsigned long RssiRatio;
1648 long ldBm; 1597 long ldBm;
1649 1598
1650TxCnt = pDevice->scStatistic.TxNoRetryOkCount + 1599TxCnt = pDevice->scStatistic.TxNoRetryOkCount +
@@ -1685,14 +1634,11 @@ else
1685} 1634}
1686#endif 1635#endif
1687 1636
1688VOID 1637void BSSvClearAnyBSSJoinRecord(void *hDeviceContext)
1689BSSvClearAnyBSSJoinRecord (
1690 IN HANDLE hDeviceContext
1691 )
1692{ 1638{
1693 PSDevice pDevice = (PSDevice)hDeviceContext; 1639 PSDevice pDevice = (PSDevice)hDeviceContext;
1694 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1640 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
1695 UINT ii; 1641 unsigned int ii;
1696 1642
1697 for (ii = 0; ii < MAX_BSS_NUM; ii++) { 1643 for (ii = 0; ii < MAX_BSS_NUM; ii++) {
1698 pMgmt->sBSSList[ii].bSelected = FALSE; 1644 pMgmt->sBSSList[ii].bSelected = FALSE;
@@ -1700,9 +1646,7 @@ BSSvClearAnyBSSJoinRecord (
1700 return; 1646 return;
1701} 1647}
1702 1648
1703VOID s_vCheckPreEDThreshold( 1649void s_vCheckPreEDThreshold(void *hDeviceContext)
1704 IN HANDLE hDeviceContext
1705 )
1706{ 1650{
1707 PSDevice pDevice = (PSDevice)hDeviceContext; 1651 PSDevice pDevice = (PSDevice)hDeviceContext;
1708 PKnownBSS pBSSList = NULL; 1652 PKnownBSS pBSSList = NULL;
diff --git a/drivers/staging/vt6656/bssdb.h b/drivers/staging/vt6656/bssdb.h
index f365b6b8bf6..9686d8600d6 100644
--- a/drivers/staging/vt6656/bssdb.h
+++ b/drivers/staging/vt6656/bssdb.h
@@ -97,10 +97,10 @@ typedef struct tagKnownBSS {
97 // BSS info 97 // BSS info
98 BOOL bActive; 98 BOOL bActive;
99 BYTE abyBSSID[WLAN_BSSID_LEN]; 99 BYTE abyBSSID[WLAN_BSSID_LEN];
100 UINT uChannel; 100 unsigned int uChannel;
101 BYTE abySuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; 101 BYTE abySuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
102 BYTE abyExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; 102 BYTE abyExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
103 UINT uRSSI; 103 unsigned int uRSSI;
104 BYTE bySQ; 104 BYTE bySQ;
105 WORD wBeaconInterval; 105 WORD wBeaconInterval;
106 WORD wCapInfo; 106 WORD wCapInfo;
@@ -109,9 +109,9 @@ typedef struct tagKnownBSS {
109 109
110// WORD wATIMWindow; 110// WORD wATIMWindow;
111 BYTE byRSSIStatCnt; 111 BYTE byRSSIStatCnt;
112 LONG ldBmMAX; 112 signed long ldBmMAX;
113 LONG ldBmAverage[RSSI_STAT_COUNT]; 113 signed long ldBmAverage[RSSI_STAT_COUNT];
114 LONG ldBmAverRange; 114 signed long ldBmAverRange;
115 //For any BSSID selection improvment 115 //For any BSSID selection improvment
116 BOOL bSelected; 116 BOOL bSelected;
117 117
@@ -141,9 +141,9 @@ typedef struct tagKnownBSS {
141 WORD wRSNLen; 141 WORD wRSNLen;
142 142
143 // Clear count 143 // Clear count
144 UINT uClearCount; 144 unsigned int uClearCount;
145// BYTE abyIEs[WLAN_BEACON_FR_MAXLEN]; 145// BYTE abyIEs[WLAN_BEACON_FR_MAXLEN];
146 UINT uIELength; 146 unsigned int uIELength;
147 QWORD qwBSSTimestamp; 147 QWORD qwBSSTimestamp;
148 QWORD qwLocalTSF; // local TSF timer 148 QWORD qwLocalTSF; // local TSF timer
149 149
@@ -178,7 +178,7 @@ typedef struct tagKnownNodeDB {
178 BOOL bShortPreamble; 178 BOOL bShortPreamble;
179 BOOL bERPExist; 179 BOOL bERPExist;
180 BOOL bShortSlotTime; 180 BOOL bShortSlotTime;
181 UINT uInActiveCount; 181 unsigned int uInActiveCount;
182 WORD wMaxBasicRate; //Get from byTopOFDMBasicRate or byTopCCKBasicRate which depends on packetTyp. 182 WORD wMaxBasicRate; //Get from byTopOFDMBasicRate or byTopCCKBasicRate which depends on packetTyp.
183 WORD wMaxSuppRate; //Records the highest supported rate getting from SuppRates IE and ExtSuppRates IE in Beacon. 183 WORD wMaxSuppRate; //Records the highest supported rate getting from SuppRates IE and ExtSuppRates IE in Beacon.
184 WORD wSuppRate; 184 WORD wSuppRate;
@@ -194,166 +194,114 @@ typedef struct tagKnownNodeDB {
194 BOOL bPSEnable; 194 BOOL bPSEnable;
195 BOOL bRxPSPoll; 195 BOOL bRxPSPoll;
196 BYTE byAuthSequence; 196 BYTE byAuthSequence;
197 ULONG ulLastRxJiffer; 197 unsigned long ulLastRxJiffer;
198 BYTE bySuppRate; 198 BYTE bySuppRate;
199 DWORD dwFlags; 199 DWORD dwFlags;
200 WORD wEnQueueCnt; 200 WORD wEnQueueCnt;
201 201
202 BOOL bOnFly; 202 BOOL bOnFly;
203 ULONGLONG KeyRSC; 203 unsigned long long KeyRSC;
204 BYTE byKeyIndex; 204 BYTE byKeyIndex;
205 DWORD dwKeyIndex; 205 DWORD dwKeyIndex;
206 BYTE byCipherSuite; 206 BYTE byCipherSuite;
207 DWORD dwTSC47_16; 207 DWORD dwTSC47_16;
208 WORD wTSC15_0; 208 WORD wTSC15_0;
209 UINT uWepKeyLength; 209 unsigned int uWepKeyLength;
210 BYTE abyWepKey[WLAN_WEPMAX_KEYLEN]; 210 BYTE abyWepKey[WLAN_WEPMAX_KEYLEN];
211 // 211 //
212 // Auto rate fallback vars 212 // Auto rate fallback vars
213 BOOL bIsInFallback; 213 BOOL bIsInFallback;
214 UINT uAverageRSSI; 214 unsigned int uAverageRSSI;
215 UINT uRateRecoveryTimeout; 215 unsigned int uRateRecoveryTimeout;
216 UINT uRatePollTimeout; 216 unsigned int uRatePollTimeout;
217 UINT uTxFailures; 217 unsigned int uTxFailures;
218 UINT uTxAttempts; 218 unsigned int uTxAttempts;
219 219
220 UINT uTxRetry; 220 unsigned int uTxRetry;
221 UINT uFailureRatio; 221 unsigned int uFailureRatio;
222 UINT uRetryRatio; 222 unsigned int uRetryRatio;
223 UINT uTxOk[MAX_RATE+1]; 223 unsigned int uTxOk[MAX_RATE+1];
224 UINT uTxFail[MAX_RATE+1]; 224 unsigned int uTxFail[MAX_RATE+1];
225 UINT uTimeCount; 225 unsigned int uTimeCount;
226 226
227} KnownNodeDB, *PKnownNodeDB; 227} KnownNodeDB, *PKnownNodeDB;
228 228
229
230/*--------------------- Export Functions --------------------------*/ 229/*--------------------- Export Functions --------------------------*/
231 230
232 231PKnownBSS BSSpSearchBSSList(void *hDeviceContext,
233 232 PBYTE pbyDesireBSSID,
234PKnownBSS 233 PBYTE pbyDesireSSID,
235BSSpSearchBSSList( 234 CARD_PHY_TYPE ePhyType);
236 IN HANDLE hDeviceContext, 235
237 IN PBYTE pbyDesireBSSID, 236PKnownBSS BSSpAddrIsInBSSList(void *hDeviceContext,
238 IN PBYTE pbyDesireSSID, 237 PBYTE abyBSSID,
239 IN CARD_PHY_TYPE ePhyType 238 PWLAN_IE_SSID pSSID);
240 ); 239
241 240void BSSvClearBSSList(void *hDeviceContext, BOOL bKeepCurrBSSID);
242PKnownBSS 241
243BSSpAddrIsInBSSList( 242BOOL BSSbInsertToBSSList(void *hDeviceContext,
244 IN HANDLE hDeviceContext, 243 PBYTE abyBSSIDAddr,
245 IN PBYTE abyBSSID, 244 QWORD qwTimestamp,
246 IN PWLAN_IE_SSID pSSID 245 WORD wBeaconInterval,
247 ); 246 WORD wCapInfo,
248 247 BYTE byCurrChannel,
249VOID 248 PWLAN_IE_SSID pSSID,
250BSSvClearBSSList( 249 PWLAN_IE_SUPP_RATES pSuppRates,
251 IN HANDLE hDeviceContext, 250 PWLAN_IE_SUPP_RATES pExtSuppRates,
252 IN BOOL bKeepCurrBSSID 251 PERPObject psERP,
253 ); 252 PWLAN_IE_RSN pRSN,
254 253 PWLAN_IE_RSN_EXT pRSNWPA,
255BOOL 254 PWLAN_IE_COUNTRY pIE_Country,
256BSSbInsertToBSSList( 255 PWLAN_IE_QUIET pIE_Quiet,
257 IN HANDLE hDeviceContext, 256 unsigned int uIELength,
258 IN PBYTE abyBSSIDAddr, 257 PBYTE pbyIEs,
259 IN QWORD qwTimestamp, 258 void *pRxPacketContext);
260 IN WORD wBeaconInterval, 259
261 IN WORD wCapInfo, 260BOOL BSSbUpdateToBSSList(void *hDeviceContext,
262 IN BYTE byCurrChannel, 261 QWORD qwTimestamp,
263 IN PWLAN_IE_SSID pSSID, 262 WORD wBeaconInterval,
264 IN PWLAN_IE_SUPP_RATES pSuppRates, 263 WORD wCapInfo,
265 IN PWLAN_IE_SUPP_RATES pExtSuppRates, 264 BYTE byCurrChannel,
266 IN PERPObject psERP, 265 BOOL bChannelHit,
267 IN PWLAN_IE_RSN pRSN, 266 PWLAN_IE_SSID pSSID,
268 IN PWLAN_IE_RSN_EXT pRSNWPA, 267 PWLAN_IE_SUPP_RATES pSuppRates,
269 IN PWLAN_IE_COUNTRY pIE_Country, 268 PWLAN_IE_SUPP_RATES pExtSuppRates,
270 IN PWLAN_IE_QUIET pIE_Quiet, 269 PERPObject psERP,
271 IN UINT uIELength, 270 PWLAN_IE_RSN pRSN,
272 IN PBYTE pbyIEs, 271 PWLAN_IE_RSN_EXT pRSNWPA,
273 IN HANDLE pRxPacketContext 272 PWLAN_IE_COUNTRY pIE_Country,
274 ); 273 PWLAN_IE_QUIET pIE_Quiet,
275 274 PKnownBSS pBSSList,
276 275 unsigned int uIELength,
277BOOL 276 PBYTE pbyIEs,
278BSSbUpdateToBSSList( 277 void *pRxPacketContext);
279 IN HANDLE hDeviceContext, 278
280 IN QWORD qwTimestamp, 279BOOL BSSbIsSTAInNodeDB(void *hDeviceContext,
281 IN WORD wBeaconInterval, 280 PBYTE abyDstAddr,
282 IN WORD wCapInfo, 281 PUINT puNodeIndex);
283 IN BYTE byCurrChannel, 282
284 IN BOOL bChannelHit, 283void BSSvCreateOneNode(void *hDeviceContext, PUINT puNodeIndex);
285 IN PWLAN_IE_SSID pSSID, 284
286 IN PWLAN_IE_SUPP_RATES pSuppRates, 285void BSSvUpdateAPNode(void *hDeviceContext,
287 IN PWLAN_IE_SUPP_RATES pExtSuppRates, 286 PWORD pwCapInfo,
288 IN PERPObject psERP, 287 PWLAN_IE_SUPP_RATES pItemRates,
289 IN PWLAN_IE_RSN pRSN, 288 PWLAN_IE_SUPP_RATES pExtSuppRates);
290 IN PWLAN_IE_RSN_EXT pRSNWPA, 289
291 IN PWLAN_IE_COUNTRY pIE_Country, 290void BSSvSecondCallBack(void *hDeviceContext);
292 IN PWLAN_IE_QUIET pIE_Quiet, 291
293 IN PKnownBSS pBSSList, 292void BSSvUpdateNodeTxCounter(void *hDeviceContext,
294 IN UINT uIELength, 293 PSStatCounter pStatistic,
295 IN PBYTE pbyIEs, 294 BYTE byTSR,
296 IN HANDLE pRxPacketContext 295 BYTE byPktNO);
297 ); 296
298 297void BSSvRemoveOneNode(void *hDeviceContext,
299 298 unsigned int uNodeIndex);
300BOOL 299
301BSSbIsSTAInNodeDB( 300void BSSvAddMulticastNode(void *hDeviceContext);
302 IN HANDLE hDeviceContext, 301
303 IN PBYTE abyDstAddr, 302void BSSvClearNodeDBTable(void *hDeviceContext,
304 OUT PUINT puNodeIndex 303 unsigned int uStartIndex);
305 ); 304
306 305void BSSvClearAnyBSSJoinRecord(void *hDeviceContext);
307VOID 306
308BSSvCreateOneNode( 307#endif /* __BSSDB_H__ */
309 IN HANDLE hDeviceContext,
310 OUT PUINT puNodeIndex
311 );
312
313VOID
314BSSvUpdateAPNode(
315 IN HANDLE hDeviceContext,
316 IN PWORD pwCapInfo,
317 IN PWLAN_IE_SUPP_RATES pItemRates,
318 IN PWLAN_IE_SUPP_RATES pExtSuppRates
319 );
320
321
322VOID
323BSSvSecondCallBack(
324 IN HANDLE hDeviceContext
325 );
326
327
328VOID
329BSSvUpdateNodeTxCounter(
330 IN HANDLE hDeviceContext,
331 IN PSStatCounter pStatistic,
332 IN BYTE byTSR,
333 IN BYTE byPktNO
334 );
335
336VOID
337BSSvRemoveOneNode(
338 IN HANDLE hDeviceContext,
339 IN UINT uNodeIndex
340 );
341
342VOID
343BSSvAddMulticastNode(
344 IN HANDLE hDeviceContext
345 );
346
347
348VOID
349BSSvClearNodeDBTable(
350 IN HANDLE hDeviceContext,
351 IN UINT uStartIndex
352 );
353
354VOID
355BSSvClearAnyBSSJoinRecord(
356 IN HANDLE hDeviceContext
357 );
358
359#endif //__BSSDB_H__
diff --git a/drivers/staging/vt6656/card.c b/drivers/staging/vt6656/card.c
index d73efeea2d5..fe4ec913ffe 100644
--- a/drivers/staging/vt6656/card.c
+++ b/drivers/staging/vt6656/card.c
@@ -95,7 +95,7 @@ const WORD cwRXBCNTSFOff[MAX_RATE] =
95 * Return Value: TRUE if succeeded; FALSE if failed. 95 * Return Value: TRUE if succeeded; FALSE if failed.
96 * 96 *
97 */ 97 */
98BOOL CARDbSetMediaChannel (PVOID pDeviceHandler, UINT uConnectionChannel) 98BOOL CARDbSetMediaChannel(void *pDeviceHandler, unsigned int uConnectionChannel)
99{ 99{
100PSDevice pDevice = (PSDevice) pDeviceHandler; 100PSDevice pDevice = (PSDevice) pDeviceHandler;
101BOOL bResult = TRUE; 101BOOL bResult = TRUE;
@@ -156,11 +156,10 @@ BOOL bResult = TRUE;
156 * Return Value: response Control frame rate 156 * Return Value: response Control frame rate
157 * 157 *
158 */ 158 */
159static 159static WORD swGetCCKControlRate(void *pDeviceHandler, WORD wRateIdx)
160WORD swGetCCKControlRate(PVOID pDeviceHandler, WORD wRateIdx)
161{ 160{
162 PSDevice pDevice = (PSDevice) pDeviceHandler; 161 PSDevice pDevice = (PSDevice) pDeviceHandler;
163 UINT ui = (UINT)wRateIdx; 162 unsigned int ui = (unsigned int)wRateIdx;
164 while (ui > RATE_1M) { 163 while (ui > RATE_1M) {
165 if (pDevice->wBasicRate & ((WORD)1 << ui)) { 164 if (pDevice->wBasicRate & ((WORD)1 << ui)) {
166 return (WORD)ui; 165 return (WORD)ui;
@@ -183,11 +182,10 @@ WORD swGetCCKControlRate(PVOID pDeviceHandler, WORD wRateIdx)
183 * Return Value: response Control frame rate 182 * Return Value: response Control frame rate
184 * 183 *
185 */ 184 */
186static 185static WORD swGetOFDMControlRate(void *pDeviceHandler, WORD wRateIdx)
187WORD swGetOFDMControlRate (PVOID pDeviceHandler, WORD wRateIdx)
188{ 186{
189 PSDevice pDevice = (PSDevice) pDeviceHandler; 187 PSDevice pDevice = (PSDevice) pDeviceHandler;
190 UINT ui = (UINT)wRateIdx; 188 unsigned int ui = (unsigned int)wRateIdx;
191 189
192 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BASIC RATE: %X\n", pDevice->wBasicRate); 190 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"BASIC RATE: %X\n", pDevice->wBasicRate);
193 191
@@ -222,12 +220,12 @@ WORD swGetOFDMControlRate (PVOID pDeviceHandler, WORD wRateIdx)
222 * Return Value: none 220 * Return Value: none
223 * 221 *
224 */ 222 */
225VOID 223void
226CARDvCaculateOFDMRParameter ( 224CARDvCaculateOFDMRParameter (
227 IN WORD wRate, 225 WORD wRate,
228 IN BYTE byBBType, 226 BYTE byBBType,
229 OUT PBYTE pbyTxRate, 227 PBYTE pbyTxRate,
230 OUT PBYTE pbyRsvTime 228 PBYTE pbyRsvTime
231 ) 229 )
232{ 230{
233 switch (wRate) { 231 switch (wRate) {
@@ -334,7 +332,7 @@ CARDvCaculateOFDMRParameter (
334 * Return Value: None. 332 * Return Value: None.
335 * 333 *
336 */ 334 */
337void CARDvSetRSPINF (PVOID pDeviceHandler, BYTE byBBType) 335void CARDvSetRSPINF(void *pDeviceHandler, BYTE byBBType)
338{ 336{
339 PSDevice pDevice = (PSDevice) pDeviceHandler; 337 PSDevice pDevice = (PSDevice) pDeviceHandler;
340 BYTE abyServ[4] = {0,0,0,0}; // For CCK 338 BYTE abyServ[4] = {0,0,0,0}; // For CCK
@@ -486,7 +484,7 @@ void CARDvSetRSPINF (PVOID pDeviceHandler, BYTE byBBType)
486 * Return Value: None. 484 * Return Value: None.
487 * 485 *
488 */ 486 */
489void vUpdateIFS (PVOID pDeviceHandler) 487void vUpdateIFS(void *pDeviceHandler)
490{ 488{
491 PSDevice pDevice = (PSDevice) pDeviceHandler; 489 PSDevice pDevice = (PSDevice) pDeviceHandler;
492 //Set SIFS, DIFS, EIFS, SlotTime, CwMin 490 //Set SIFS, DIFS, EIFS, SlotTime, CwMin
@@ -510,7 +508,7 @@ void vUpdateIFS (PVOID pDeviceHandler)
510 else {// PK_TYPE_11GA & PK_TYPE_11GB 508 else {// PK_TYPE_11GA & PK_TYPE_11GB
511 BYTE byRate = 0; 509 BYTE byRate = 0;
512 BOOL bOFDMRate = FALSE; 510 BOOL bOFDMRate = FALSE;
513 UINT ii = 0; 511 unsigned int ii = 0;
514 PWLAN_IE_SUPP_RATES pItemRates = NULL; 512 PWLAN_IE_SUPP_RATES pItemRates = NULL;
515 513
516 pDevice->uSIFS = C_SIFS_BG; 514 pDevice->uSIFS = C_SIFS_BG;
@@ -571,7 +569,7 @@ void vUpdateIFS (PVOID pDeviceHandler)
571 &byMaxMin); 569 &byMaxMin);
572} 570}
573 571
574void CARDvUpdateBasicTopRate (PVOID pDeviceHandler) 572void CARDvUpdateBasicTopRate(void *pDeviceHandler)
575{ 573{
576PSDevice pDevice = (PSDevice) pDeviceHandler; 574PSDevice pDevice = (PSDevice) pDeviceHandler;
577BYTE byTopOFDM = RATE_24M, byTopCCK = RATE_1M; 575BYTE byTopOFDM = RATE_24M, byTopCCK = RATE_1M;
@@ -610,7 +608,7 @@ BYTE ii;
610 * Return Value: TRUE if succeeded; FALSE if failed. 608 * Return Value: TRUE if succeeded; FALSE if failed.
611 * 609 *
612 */ 610 */
613BOOL CARDbAddBasicRate (PVOID pDeviceHandler, WORD wRateIdx) 611BOOL CARDbAddBasicRate(void *pDeviceHandler, WORD wRateIdx)
614{ 612{
615PSDevice pDevice = (PSDevice) pDeviceHandler; 613PSDevice pDevice = (PSDevice) pDeviceHandler;
616WORD wRate = (WORD)(1<<wRateIdx); 614WORD wRate = (WORD)(1<<wRateIdx);
@@ -623,7 +621,7 @@ WORD wRate = (WORD)(1<<wRateIdx);
623 return(TRUE); 621 return(TRUE);
624} 622}
625 623
626BOOL CARDbIsOFDMinBasicRate (PVOID pDeviceHandler) 624BOOL CARDbIsOFDMinBasicRate(void *pDeviceHandler)
627{ 625{
628PSDevice pDevice = (PSDevice) pDeviceHandler; 626PSDevice pDevice = (PSDevice) pDeviceHandler;
629int ii; 627int ii;
@@ -635,7 +633,7 @@ int ii;
635 return FALSE; 633 return FALSE;
636} 634}
637 635
638BYTE CARDbyGetPktType (PVOID pDeviceHandler) 636BYTE CARDbyGetPktType(void *pDeviceHandler)
639{ 637{
640 PSDevice pDevice = (PSDevice) pDeviceHandler; 638 PSDevice pDevice = (PSDevice) pDeviceHandler;
641 639
@@ -707,7 +705,8 @@ QWORD CARDqGetTSFOffset (BYTE byRxRate, QWORD qwTSF1, QWORD qwTSF2)
707 * Return Value: none 705 * Return Value: none
708 * 706 *
709 */ 707 */
710void CARDvAdjustTSF (PVOID pDeviceHandler, BYTE byRxRate, QWORD qwBSSTimestamp, QWORD qwLocalTSF) 708void CARDvAdjustTSF(void *pDeviceHandler, BYTE byRxRate,
709 QWORD qwBSSTimestamp, QWORD qwLocalTSF)
711{ 710{
712 711
713 PSDevice pDevice = (PSDevice) pDeviceHandler; 712 PSDevice pDevice = (PSDevice) pDeviceHandler;
@@ -756,7 +755,7 @@ void CARDvAdjustTSF (PVOID pDeviceHandler, BYTE byRxRate, QWORD qwBSSTimestamp,
756 * Return Value: TRUE if success; otherwise FALSE 755 * Return Value: TRUE if success; otherwise FALSE
757 * 756 *
758 */ 757 */
759BOOL CARDbGetCurrentTSF (PVOID pDeviceHandler, PQWORD pqwCurrTSF) 758BOOL CARDbGetCurrentTSF(void *pDeviceHandler, PQWORD pqwCurrTSF)
760{ 759{
761 PSDevice pDevice = (PSDevice) pDeviceHandler; 760 PSDevice pDevice = (PSDevice) pDeviceHandler;
762 761
@@ -778,7 +777,7 @@ BOOL CARDbGetCurrentTSF (PVOID pDeviceHandler, PQWORD pqwCurrTSF)
778 * Return Value: TRUE if success; otherwise FALSE 777 * Return Value: TRUE if success; otherwise FALSE
779 * 778 *
780 */ 779 */
781BOOL CARDbClearCurrentTSF(PVOID pDeviceHandler) 780BOOL CARDbClearCurrentTSF(void *pDeviceHandler)
782{ 781{
783 PSDevice pDevice = (PSDevice) pDeviceHandler; 782 PSDevice pDevice = (PSDevice) pDeviceHandler;
784 783
@@ -807,9 +806,9 @@ BOOL CARDbClearCurrentTSF(PVOID pDeviceHandler)
807QWORD CARDqGetNextTBTT (QWORD qwTSF, WORD wBeaconInterval) 806QWORD CARDqGetNextTBTT (QWORD qwTSF, WORD wBeaconInterval)
808{ 807{
809 808
810 UINT uLowNextTBTT; 809 unsigned int uLowNextTBTT;
811 UINT uHighRemain, uLowRemain; 810 unsigned int uHighRemain, uLowRemain;
812 UINT uBeaconInterval; 811 unsigned int uBeaconInterval;
813 812
814 uBeaconInterval = wBeaconInterval * 1024; 813 uBeaconInterval = wBeaconInterval * 1024;
815 // Next TBTT = ((local_current_TSF / beacon_interval) + 1 ) * beacon_interval 814 // Next TBTT = ((local_current_TSF / beacon_interval) + 1 ) * beacon_interval
@@ -844,7 +843,7 @@ QWORD CARDqGetNextTBTT (QWORD qwTSF, WORD wBeaconInterval)
844 * Return Value: none 843 * Return Value: none
845 * 844 *
846 */ 845 */
847void CARDvSetFirstNextTBTT (PVOID pDeviceHandler, WORD wBeaconInterval) 846void CARDvSetFirstNextTBTT(void *pDeviceHandler, WORD wBeaconInterval)
848{ 847{
849 848
850 PSDevice pDevice = (PSDevice) pDeviceHandler; 849 PSDevice pDevice = (PSDevice) pDeviceHandler;
@@ -898,7 +897,8 @@ void CARDvSetFirstNextTBTT (PVOID pDeviceHandler, WORD wBeaconInterval)
898 * Return Value: none 897 * Return Value: none
899 * 898 *
900 */ 899 */
901void CARDvUpdateNextTBTT (PVOID pDeviceHandler, QWORD qwTSF, WORD wBeaconInterval) 900void CARDvUpdateNextTBTT(void *pDeviceHandler, QWORD qwTSF,
901 WORD wBeaconInterval)
902{ 902{
903 PSDevice pDevice = (PSDevice) pDeviceHandler; 903 PSDevice pDevice = (PSDevice) pDeviceHandler;
904 DWORD dwLoTBTT,dwHiTBTT; 904 DWORD dwLoTBTT,dwHiTBTT;
@@ -945,7 +945,7 @@ void CARDvUpdateNextTBTT (PVOID pDeviceHandler, QWORD qwTSF, WORD wBeaconInterva
945 * Return Value: TRUE if success; otherwise FALSE 945 * Return Value: TRUE if success; otherwise FALSE
946 * 946 *
947 */ 947 */
948BOOL CARDbRadioPowerOff (PVOID pDeviceHandler) 948BOOL CARDbRadioPowerOff(void *pDeviceHandler)
949{ 949{
950PSDevice pDevice = (PSDevice) pDeviceHandler; 950PSDevice pDevice = (PSDevice) pDeviceHandler;
951BOOL bResult = TRUE; 951BOOL bResult = TRUE;
@@ -986,7 +986,7 @@ BOOL bResult = TRUE;
986 * Return Value: TRUE if success; otherwise FALSE 986 * Return Value: TRUE if success; otherwise FALSE
987 * 987 *
988 */ 988 */
989BOOL CARDbRadioPowerOn (PVOID pDeviceHandler) 989BOOL CARDbRadioPowerOn(void *pDeviceHandler)
990{ 990{
991PSDevice pDevice = (PSDevice) pDeviceHandler; 991PSDevice pDevice = (PSDevice) pDeviceHandler;
992BOOL bResult = TRUE; 992BOOL bResult = TRUE;
@@ -1019,7 +1019,7 @@ BOOL bResult = TRUE;
1019 return bResult; 1019 return bResult;
1020} 1020}
1021 1021
1022void CARDvSetBSSMode (PVOID pDeviceHandler) 1022void CARDvSetBSSMode(void *pDeviceHandler)
1023{ 1023{
1024 PSDevice pDevice = (PSDevice) pDeviceHandler; 1024 PSDevice pDevice = (PSDevice) pDeviceHandler;
1025 // Set BB and packet type at the same time.//{{RobertYu:20050222, AL7230 have two TX PA output, only connet to b/g now 1025 // Set BB and packet type at the same time.//{{RobertYu:20050222, AL7230 have two TX PA output, only connet to b/g now
@@ -1080,10 +1080,10 @@ void CARDvSetBSSMode (PVOID pDeviceHandler)
1080-*/ 1080-*/
1081BOOL 1081BOOL
1082CARDbChannelSwitch ( 1082CARDbChannelSwitch (
1083 IN PVOID pDeviceHandler, 1083 void *pDeviceHandler,
1084 IN BYTE byMode, 1084 BYTE byMode,
1085 IN BYTE byNewChannel, 1085 BYTE byNewChannel,
1086 IN BYTE byCount 1086 BYTE byCount
1087 ) 1087 )
1088{ 1088{
1089 PSDevice pDevice = (PSDevice) pDeviceHandler; 1089 PSDevice pDevice = (PSDevice) pDeviceHandler;
diff --git a/drivers/staging/vt6656/card.h b/drivers/staging/vt6656/card.h
index aa90c2cb446..6c91343d0d1 100644
--- a/drivers/staging/vt6656/card.h
+++ b/drivers/staging/vt6656/card.h
@@ -33,63 +33,57 @@
33 33
34/*--------------------- Export Definitions -------------------------*/ 34/*--------------------- Export Definitions -------------------------*/
35 35
36
37/*--------------------- Export Classes ----------------------------*/ 36/*--------------------- Export Classes ----------------------------*/
38 37
39// Init card type 38/* init card type */
40 39
41typedef enum _CARD_PHY_TYPE { 40typedef enum _CARD_PHY_TYPE {
42 41 PHY_TYPE_AUTO = 0,
43 PHY_TYPE_AUTO=0,
44 PHY_TYPE_11B, 42 PHY_TYPE_11B,
45 PHY_TYPE_11G, 43 PHY_TYPE_11G,
46 PHY_TYPE_11A 44 PHY_TYPE_11A
47} CARD_PHY_TYPE, *PCARD_PHY_TYPE; 45} CARD_PHY_TYPE, *PCARD_PHY_TYPE;
48 46
49typedef enum _CARD_OP_MODE { 47typedef enum _CARD_OP_MODE {
50 48 OP_MODE_INFRASTRUCTURE = 0,
51 OP_MODE_INFRASTRUCTURE=0,
52 OP_MODE_ADHOC, 49 OP_MODE_ADHOC,
53 OP_MODE_AP, 50 OP_MODE_AP,
54 OP_MODE_UNKNOWN 51 OP_MODE_UNKNOWN
55} CARD_OP_MODE, *PCARD_OP_MODE; 52} CARD_OP_MODE, *PCARD_OP_MODE;
56 53
57#define CB_MAX_CHANNEL_24G 14 54#define CB_MAX_CHANNEL_24G 14
58//#define CB_MAX_CHANNEL_5G 24 55/* #define CB_MAX_CHANNEL_5G 24 */
59#define CB_MAX_CHANNEL_5G 42 //[20050104] add channel9(5045MHz), 41==>42 56#define CB_MAX_CHANNEL_5G 42 /* add channel9(5045MHz), 41==>42 */
60#define CB_MAX_CHANNEL (CB_MAX_CHANNEL_24G+CB_MAX_CHANNEL_5G) 57#define CB_MAX_CHANNEL (CB_MAX_CHANNEL_24G+CB_MAX_CHANNEL_5G)
61 58
62/*--------------------- Export Variables --------------------------*/ 59/*--------------------- Export Variables --------------------------*/
63 60
64/*--------------------- Export Functions --------------------------*/ 61/*--------------------- Export Functions --------------------------*/
65 62
66BOOL CARDbSetMediaChannel(PVOID pDeviceHandler, UINT uConnectionChannel); 63BOOL CARDbSetMediaChannel(void *pDeviceHandler,
67void CARDvSetRSPINF(PVOID pDeviceHandler, BYTE byBBType); 64 unsigned int uConnectionChannel);
68void vUpdateIFS(PVOID pDeviceHandler); 65void CARDvSetRSPINF(void *pDeviceHandler, BYTE byBBType);
69void CARDvUpdateBasicTopRate(PVOID pDeviceHandler); 66void vUpdateIFS(void *pDeviceHandler);
70BOOL CARDbAddBasicRate(PVOID pDeviceHandler, WORD wRateIdx); 67void CARDvUpdateBasicTopRate(void *pDeviceHandler);
71BOOL CARDbIsOFDMinBasicRate(PVOID pDeviceHandler); 68BOOL CARDbAddBasicRate(void *pDeviceHandler, WORD wRateIdx);
72void CARDvAdjustTSF(PVOID pDeviceHandler, BYTE byRxRate, QWORD qwBSSTimestamp, QWORD qwLocalTSF); 69BOOL CARDbIsOFDMinBasicRate(void *pDeviceHandler);
73BOOL CARDbGetCurrentTSF (PVOID pDeviceHandler, PQWORD pqwCurrTSF); 70void CARDvAdjustTSF(void *pDeviceHandler, BYTE byRxRate,
74BOOL CARDbClearCurrentTSF(PVOID pDeviceHandler); 71 QWORD qwBSSTimestamp, QWORD qwLocalTSF);
75void CARDvSetFirstNextTBTT(PVOID pDeviceHandler, WORD wBeaconInterval); 72BOOL CARDbGetCurrentTSF(void *pDeviceHandler, PQWORD pqwCurrTSF);
76void CARDvUpdateNextTBTT(PVOID pDeviceHandler, QWORD qwTSF, WORD wBeaconInterval); 73BOOL CARDbClearCurrentTSF(void *pDeviceHandler);
74void CARDvSetFirstNextTBTT(void *pDeviceHandler, WORD wBeaconInterval);
75void CARDvUpdateNextTBTT(void *pDeviceHandler, QWORD qwTSF,
76 WORD wBeaconInterval);
77QWORD CARDqGetNextTBTT(QWORD qwTSF, WORD wBeaconInterval); 77QWORD CARDqGetNextTBTT(QWORD qwTSF, WORD wBeaconInterval);
78QWORD CARDqGetTSFOffset(BYTE byRxRate, QWORD qwTSF1, QWORD qwTSF2); 78QWORD CARDqGetTSFOffset(BYTE byRxRate, QWORD qwTSF1, QWORD qwTSF2);
79BOOL CARDbRadioPowerOff(PVOID pDeviceHandler); 79BOOL CARDbRadioPowerOff(void *pDeviceHandler);
80BOOL CARDbRadioPowerOn(PVOID pDeviceHandler); 80BOOL CARDbRadioPowerOn(void *pDeviceHandler);
81BYTE CARDbyGetPktType(PVOID pDeviceHandler); 81BYTE CARDbyGetPktType(void *pDeviceHandler);
82void CARDvSetBSSMode(PVOID pDeviceHandler); 82void CARDvSetBSSMode(void *pDeviceHandler);
83
84BOOL
85CARDbChannelSwitch (
86 IN PVOID pDeviceHandler,
87 IN BYTE byMode,
88 IN BYTE byNewChannel,
89 IN BYTE byCount
90 );
91
92#endif // __CARD_H__
93
94 83
84BOOL CARDbChannelSwitch(void *pDeviceHandler,
85 BYTE byMode,
86 BYTE byNewChannel,
87 BYTE byCount);
95 88
89#endif /* __CARD_H__ */
diff --git a/drivers/staging/vt6656/channel.c b/drivers/staging/vt6656/channel.c
index f7136b0073b..f49b6e13339 100644
--- a/drivers/staging/vt6656/channel.c
+++ b/drivers/staging/vt6656/channel.c
@@ -116,7 +116,7 @@ static SChannelTblElement sChannelTbl[CB_MAX_CHANNEL+1] =
116static struct 116static struct
117{ 117{
118 BYTE byChannelCountryCode; /* The country code */ 118 BYTE byChannelCountryCode; /* The country code */
119 CHAR chCountryCode[2]; 119 char chCountryCode[2];
120 BYTE bChannelIdxList[CB_MAX_CHANNEL]; /* Available channels Index */ 120 BYTE bChannelIdxList[CB_MAX_CHANNEL]; /* Available channels Index */
121 BYTE byPower[CB_MAX_CHANNEL]; 121 BYTE byPower[CB_MAX_CHANNEL];
122} ChannelRuleTab[] = 122} ChannelRuleTab[] =
@@ -389,7 +389,7 @@ static struct
389// 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165 (Value 23 ~ 56) 389// 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165 (Value 23 ~ 56)
390 ************************************************************************/ 390 ************************************************************************/
391BOOL 391BOOL
392ChannelValid(UINT CountryCode, UINT ChannelIndex) 392ChannelValid(unsigned int CountryCode, unsigned int ChannelIndex)
393{ 393{
394 BOOL bValid; 394 BOOL bValid;
395 395
@@ -425,8 +425,8 @@ exit:
425 ************************************************************************/ 425 ************************************************************************/
426BOOL 426BOOL
427CHvChannelGetList ( 427CHvChannelGetList (
428 IN UINT uCountryCodeIdx, 428 unsigned int uCountryCodeIdx,
429 OUT PBYTE pbyChannelTable 429 PBYTE pbyChannelTable
430 ) 430 )
431{ 431{
432 if (uCountryCodeIdx >= CCODE_MAX) { 432 if (uCountryCodeIdx >= CCODE_MAX) {
@@ -437,11 +437,11 @@ CHvChannelGetList (
437} 437}
438 438
439 439
440VOID CHvInitChannelTable (PVOID pDeviceHandler) 440void CHvInitChannelTable(void *pDeviceHandler)
441{ 441{
442 PSDevice pDevice = (PSDevice) pDeviceHandler; 442 PSDevice pDevice = (PSDevice) pDeviceHandler;
443 BOOL bMultiBand = FALSE; 443 BOOL bMultiBand = FALSE;
444 UINT ii; 444 unsigned int ii;
445 445
446 for(ii=1;ii<=CB_MAX_CHANNEL;ii++) { 446 for(ii=1;ii<=CB_MAX_CHANNEL;ii++) {
447 sChannelTbl[ii].bValid = FALSE; 447 sChannelTbl[ii].bValid = FALSE;
diff --git a/drivers/staging/vt6656/channel.h b/drivers/staging/vt6656/channel.h
index 2306b202565..91c2ffc6f1f 100644
--- a/drivers/staging/vt6656/channel.h
+++ b/drivers/staging/vt6656/channel.h
@@ -37,21 +37,21 @@
37/*--------------------- Export Classes ----------------------------*/ 37/*--------------------- Export Classes ----------------------------*/
38typedef struct tagSChannelTblElement { 38typedef struct tagSChannelTblElement {
39 BYTE byChannelNumber; 39 BYTE byChannelNumber;
40 UINT uFrequency; 40 unsigned int uFrequency;
41 BOOL bValid; 41 BOOL bValid;
42}SChannelTblElement, *PSChannelTblElement; 42}SChannelTblElement, *PSChannelTblElement;
43 43
44/*--------------------- Export Variables --------------------------*/ 44/*--------------------- Export Variables --------------------------*/
45 45
46/*--------------------- Export Functions --------------------------*/ 46/*--------------------- Export Functions --------------------------*/
47BOOL ChannelValid(UINT CountryCode, UINT ChannelNum); 47BOOL ChannelValid(unsigned int CountryCode, unsigned int ChannelNum);
48VOID CHvInitChannelTable (PVOID pDeviceHandler); 48void CHvInitChannelTable(void *pDeviceHandler);
49BYTE CHbyGetChannelMapping(BYTE byChannelNumber); 49BYTE CHbyGetChannelMapping(BYTE byChannelNumber);
50 50
51BOOL 51BOOL
52CHvChannelGetList ( 52CHvChannelGetList (
53 IN UINT uCountryCodeIdx, 53 unsigned int uCountryCodeIdx,
54 OUT PBYTE pbyChannelTable 54 PBYTE pbyChannelTable
55 ); 55 );
56 56
57#endif /* _REGULATE_H_ */ 57#endif /* _REGULATE_H_ */
diff --git a/drivers/staging/vt6656/control.c b/drivers/staging/vt6656/control.c
index 7dba7710e59..8aab6718ff4 100644
--- a/drivers/staging/vt6656/control.c
+++ b/drivers/staging/vt6656/control.c
@@ -30,11 +30,13 @@
30 * CONTROLnsRequestIn - Read variable length bytes from MEM/BB/MAC/EEPROM 30 * CONTROLnsRequestIn - Read variable length bytes from MEM/BB/MAC/EEPROM
31 * ControlvWriteByte - Write one byte to MEM/BB/MAC/EEPROM 31 * ControlvWriteByte - Write one byte to MEM/BB/MAC/EEPROM
32 * ControlvReadByte - Read one byte from MEM/BB/MAC/EEPROM 32 * ControlvReadByte - Read one byte from MEM/BB/MAC/EEPROM
33 * ControlvMaskByte - Read one byte from MEM/BB/MAC/EEPROM and clear/set some bits in the same address 33 * ControlvMaskByte - Read one byte from MEM/BB/MAC/EEPROM and clear/set
34 * some bits in the same address
34 * 35 *
35 * Revision History: 36 * Revision History:
36 * 04-05-2004 Jerry Chen: Initial release 37 * 04-05-2004 Jerry Chen: Initial release
37 * 11-24-2004 Warren Hsu: Add ControlvWriteByte,ControlvReadByte,ControlvMaskByte 38 * 11-24-2004 Warren Hsu: Add ControlvWriteByte, ControlvReadByte,
39 * ControlvMaskByte
38 * 40 *
39 */ 41 */
40 42
@@ -42,8 +44,8 @@
42#include "rndis.h" 44#include "rndis.h"
43 45
44/*--------------------- Static Definitions -------------------------*/ 46/*--------------------- Static Definitions -------------------------*/
45//static int msglevel =MSG_LEVEL_INFO; 47/* static int msglevel =MSG_LEVEL_INFO; */
46//static int msglevel =MSG_LEVEL_DEBUG; 48/* static int msglevel =MSG_LEVEL_DEBUG; */
47/*--------------------- Static Classes ----------------------------*/ 49/*--------------------- Static Classes ----------------------------*/
48 50
49/*--------------------- Static Variables --------------------------*/ 51/*--------------------- Static Variables --------------------------*/
@@ -54,56 +56,43 @@
54 56
55/*--------------------- Export Functions --------------------------*/ 57/*--------------------- Export Functions --------------------------*/
56 58
57 59void ControlvWriteByte(PSDevice pDevice, BYTE byRegType, BYTE byRegOfs,
58void ControlvWriteByte(PSDevice pDevice, BYTE byRegType, BYTE byRegOfs, BYTE byData) 60 BYTE byData)
59{ 61{
60BYTE byData1; 62 BYTE byData1;
61 63 byData1 = byData;
62 byData1 = byData; 64 CONTROLnsRequestOut(pDevice,
63 65 MESSAGE_TYPE_WRITE,
64 CONTROLnsRequestOut(pDevice, 66 byRegOfs,
65 MESSAGE_TYPE_WRITE, 67 byRegType,
66 byRegOfs, 68 1,
67 byRegType, 69 &byData1);
68 1,
69 &byData1
70 );
71
72} 70}
73 71
74 72void ControlvReadByte(PSDevice pDevice, BYTE byRegType, BYTE byRegOfs,
75void ControlvReadByte(PSDevice pDevice, BYTE byRegType, BYTE byRegOfs, PBYTE pbyData) 73 PBYTE pbyData)
76{ 74{
77NTSTATUS ntStatus; 75 NTSTATUS ntStatus;
78BYTE byData1; 76 BYTE byData1;
79 77 ntStatus = CONTROLnsRequestIn(pDevice,
80 78 MESSAGE_TYPE_READ,
81 ntStatus = CONTROLnsRequestIn(pDevice, 79 byRegOfs,
82 MESSAGE_TYPE_READ, 80 byRegType,
83 byRegOfs, 81 1,
84 byRegType, 82 &byData1);
85 1, 83 *pbyData = byData1;
86 &byData1);
87
88 *pbyData = byData1;
89
90} 84}
91 85
92 86void ControlvMaskByte(PSDevice pDevice, BYTE byRegType, BYTE byRegOfs,
93 87 BYTE byMask, BYTE byData)
94void ControlvMaskByte(PSDevice pDevice, BYTE byRegType, BYTE byRegOfs, BYTE byMask, BYTE byData)
95{ 88{
96BYTE pbyData[2]; 89 BYTE pbyData[2];
97 90 pbyData[0] = byData;
98 pbyData[0] = byData; 91 pbyData[1] = byMask;
99 pbyData[1] = byMask; 92 CONTROLnsRequestOut(pDevice,
100 93 MESSAGE_TYPE_WRITE_MASK,
101 CONTROLnsRequestOut(pDevice, 94 byRegOfs,
102 MESSAGE_TYPE_WRITE_MASK, 95 byRegType,
103 byRegOfs, 96 2,
104 byRegType, 97 pbyData);
105 2,
106 pbyData
107 );
108
109} 98}
diff --git a/drivers/staging/vt6656/control.h b/drivers/staging/vt6656/control.h
index 4d9a777a706..146b450e13d 100644
--- a/drivers/staging/vt6656/control.h
+++ b/drivers/staging/vt6656/control.h
@@ -54,30 +54,27 @@
54/*--------------------- Export Functions --------------------------*/ 54/*--------------------- Export Functions --------------------------*/
55 55
56void ControlvWriteByte( 56void ControlvWriteByte(
57 IN PSDevice pDevice, 57 PSDevice pDevice,
58 IN BYTE byRegType, 58 BYTE byRegType,
59 IN BYTE byRegOfs, 59 BYTE byRegOfs,
60 IN BYTE byData 60 BYTE byData
61 ); 61 );
62 62
63 63
64void ControlvReadByte( 64void ControlvReadByte(
65 IN PSDevice pDevice, 65 PSDevice pDevice,
66 IN BYTE byRegType, 66 BYTE byRegType,
67 IN BYTE byRegOfs, 67 BYTE byRegOfs,
68 IN PBYTE pbyData 68 PBYTE pbyData
69 ); 69 );
70 70
71 71
72void ControlvMaskByte( 72void ControlvMaskByte(
73 IN PSDevice pDevice, 73 PSDevice pDevice,
74 IN BYTE byRegType, 74 BYTE byRegType,
75 IN BYTE byRegOfs, 75 BYTE byRegOfs,
76 IN BYTE byMask, 76 BYTE byMask,
77 IN BYTE byData 77 BYTE byData
78 ); 78 );
79 79
80#endif // __RCV_H__ 80#endif /* __CONTROL_H__ */
81
82
83
diff --git a/drivers/staging/vt6656/datarate.c b/drivers/staging/vt6656/datarate.c
index 968feb466b0..2e183ddbfd0 100644
--- a/drivers/staging/vt6656/datarate.c
+++ b/drivers/staging/vt6656/datarate.c
@@ -65,16 +65,9 @@ const BYTE acbyIERate[MAX_RATE] =
65 65
66/*--------------------- Static Functions --------------------------*/ 66/*--------------------- Static Functions --------------------------*/
67 67
68VOID s_vResetCounter ( 68void s_vResetCounter(PKnownNodeDB psNodeDBTable);
69 IN PKnownNodeDB psNodeDBTable
70 );
71 69
72 70void s_vResetCounter(PKnownNodeDB psNodeDBTable)
73
74VOID
75s_vResetCounter (
76 IN PKnownNodeDB psNodeDBTable
77 )
78{ 71{
79 BYTE ii; 72 BYTE ii;
80 73
@@ -107,7 +100,7 @@ s_vResetCounter (
107-*/ 100-*/
108BYTE 101BYTE
109DATARATEbyGetRateIdx ( 102DATARATEbyGetRateIdx (
110 IN BYTE byRate 103 BYTE byRate
111 ) 104 )
112{ 105{
113 BYTE ii; 106 BYTE ii;
@@ -161,7 +154,7 @@ DATARATEbyGetRateIdx (
161-*/ 154-*/
162WORD 155WORD
163RATEwGetRateIdx( 156RATEwGetRateIdx(
164 IN BYTE byRate 157 BYTE byRate
165 ) 158 )
166{ 159{
167 WORD ii; 160 WORD ii;
@@ -195,25 +188,24 @@ RATEwGetRateIdx(
195 * Return Value: none 188 * Return Value: none
196 * 189 *
197-*/ 190-*/
198VOID 191void RATEvParseMaxRate(
199RATEvParseMaxRate ( 192 void *pDeviceHandler,
200 IN PVOID pDeviceHandler, 193 PWLAN_IE_SUPP_RATES pItemRates,
201 IN PWLAN_IE_SUPP_RATES pItemRates, 194 PWLAN_IE_SUPP_RATES pItemExtRates,
202 IN PWLAN_IE_SUPP_RATES pItemExtRates, 195 BOOL bUpdateBasicRate,
203 IN BOOL bUpdateBasicRate, 196 PWORD pwMaxBasicRate,
204 OUT PWORD pwMaxBasicRate, 197 PWORD pwMaxSuppRate,
205 OUT PWORD pwMaxSuppRate, 198 PWORD pwSuppRate,
206 OUT PWORD pwSuppRate, 199 PBYTE pbyTopCCKRate,
207 OUT PBYTE pbyTopCCKRate, 200 PBYTE pbyTopOFDMRate
208 OUT PBYTE pbyTopOFDMRate
209 ) 201 )
210{ 202{
211PSDevice pDevice = (PSDevice) pDeviceHandler; 203PSDevice pDevice = (PSDevice) pDeviceHandler;
212UINT ii; 204unsigned int ii;
213BYTE byHighSuppRate = 0; 205BYTE byHighSuppRate = 0;
214BYTE byRate = 0; 206BYTE byRate = 0;
215WORD wOldBasicRate = pDevice->wBasicRate; 207WORD wOldBasicRate = pDevice->wBasicRate;
216UINT uRateLen; 208unsigned int uRateLen;
217 209
218 210
219 if (pItemRates == NULL) 211 if (pItemRates == NULL)
@@ -236,7 +228,7 @@ UINT uRateLen;
236 if (WLAN_MGMT_IS_BASICRATE(byRate) && 228 if (WLAN_MGMT_IS_BASICRATE(byRate) &&
237 (bUpdateBasicRate == TRUE)) { 229 (bUpdateBasicRate == TRUE)) {
238 // Add to basic rate set, update pDevice->byTopCCKBasicRate and pDevice->byTopOFDMBasicRate 230 // Add to basic rate set, update pDevice->byTopCCKBasicRate and pDevice->byTopOFDMBasicRate
239 CARDbAddBasicRate((PVOID)pDevice, RATEwGetRateIdx(byRate)); 231 CARDbAddBasicRate((void *)pDevice, RATEwGetRateIdx(byRate));
240 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ParseMaxRate AddBasicRate: %d\n", RATEwGetRateIdx(byRate)); 232 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ParseMaxRate AddBasicRate: %d\n", RATEwGetRateIdx(byRate));
241 } 233 }
242 byRate = (BYTE)(pItemRates->abyRates[ii]&0x7F); 234 byRate = (BYTE)(pItemRates->abyRates[ii]&0x7F);
@@ -249,7 +241,7 @@ UINT uRateLen;
249 if ((pItemExtRates != NULL) && (pItemExtRates->byElementID == WLAN_EID_EXTSUPP_RATES) && 241 if ((pItemExtRates != NULL) && (pItemExtRates->byElementID == WLAN_EID_EXTSUPP_RATES) &&
250 (pDevice->byBBType != BB_TYPE_11B)) { 242 (pDevice->byBBType != BB_TYPE_11B)) {
251 243
252 UINT uExtRateLen = pItemExtRates->len; 244 unsigned int uExtRateLen = pItemExtRates->len;
253 245
254 if (uExtRateLen > WLAN_RATES_MAXLEN) 246 if (uExtRateLen > WLAN_RATES_MAXLEN)
255 uExtRateLen = WLAN_RATES_MAXLEN; 247 uExtRateLen = WLAN_RATES_MAXLEN;
@@ -259,7 +251,7 @@ UINT uRateLen;
259 // select highest basic rate 251 // select highest basic rate
260 if (WLAN_MGMT_IS_BASICRATE(pItemExtRates->abyRates[ii])) { 252 if (WLAN_MGMT_IS_BASICRATE(pItemExtRates->abyRates[ii])) {
261 // Add to basic rate set, update pDevice->byTopCCKBasicRate and pDevice->byTopOFDMBasicRate 253 // Add to basic rate set, update pDevice->byTopCCKBasicRate and pDevice->byTopOFDMBasicRate
262 CARDbAddBasicRate((PVOID)pDevice, RATEwGetRateIdx(byRate)); 254 CARDbAddBasicRate((void *)pDevice, RATEwGetRateIdx(byRate));
263 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ParseMaxRate AddBasicRate: %d\n", RATEwGetRateIdx(byRate)); 255 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"ParseMaxRate AddBasicRate: %d\n", RATEwGetRateIdx(byRate));
264 } 256 }
265 byRate = (BYTE)(pItemExtRates->abyRates[ii]&0x7F); 257 byRate = (BYTE)(pItemExtRates->abyRates[ii]&0x7F);
@@ -272,7 +264,8 @@ UINT uRateLen;
272 } 264 }
273 } //if(pItemExtRates != NULL) 265 } //if(pItemExtRates != NULL)
274 266
275 if ((pDevice->byPacketType == PK_TYPE_11GB) && CARDbIsOFDMinBasicRate((PVOID)pDevice)) { 267 if ((pDevice->byPacketType == PK_TYPE_11GB)
268 && CARDbIsOFDMinBasicRate((void *)pDevice)) {
276 pDevice->byPacketType = PK_TYPE_11GA; 269 pDevice->byPacketType = PK_TYPE_11GA;
277 } 270 }
278 271
@@ -284,7 +277,7 @@ UINT uRateLen;
284 else 277 else
285 *pwMaxBasicRate = pDevice->byTopOFDMBasicRate; 278 *pwMaxBasicRate = pDevice->byTopOFDMBasicRate;
286 if (wOldBasicRate != pDevice->wBasicRate) 279 if (wOldBasicRate != pDevice->wBasicRate)
287 CARDvSetRSPINF((PVOID)pDevice, pDevice->byBBType); 280 CARDvSetRSPINF((void *)pDevice, pDevice->byBBType);
288 281
289 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Exit ParseMaxRate\n"); 282 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Exit ParseMaxRate\n");
290} 283}
@@ -308,17 +301,17 @@ UINT uRateLen;
308#define AUTORATE_TXCNT_THRESHOLD 20 301#define AUTORATE_TXCNT_THRESHOLD 20
309#define AUTORATE_INC_THRESHOLD 30 302#define AUTORATE_INC_THRESHOLD 30
310 303
311VOID 304void
312RATEvTxRateFallBack ( 305RATEvTxRateFallBack(
313 IN PVOID pDeviceHandler, 306 void *pDeviceHandler,
314 IN PKnownNodeDB psNodeDBTable 307 PKnownNodeDB psNodeDBTable
315 ) 308 )
316{ 309{
317PSDevice pDevice = (PSDevice) pDeviceHandler; 310PSDevice pDevice = (PSDevice) pDeviceHandler;
318PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 311PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
319#if 1 //mike fixed old: use packet lose ratio algorithm to control rate 312#if 1 //mike fixed old: use packet lose ratio algorithm to control rate
320WORD wIdxDownRate = 0; 313WORD wIdxDownRate = 0;
321UINT ii; 314unsigned int ii;
322BOOL bAutoRate[MAX_RATE] = {TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE}; 315BOOL bAutoRate[MAX_RATE] = {TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE};
323DWORD dwThroughputTbl[MAX_RATE] = {10, 20, 55, 110, 60, 90, 120, 180, 240, 360, 480, 540}; 316DWORD dwThroughputTbl[MAX_RATE] = {10, 20, 55, 110, 60, 90, 120, 180, 240, 360, 480, 540};
324DWORD dwThroughput = 0; 317DWORD dwThroughput = 0;
@@ -399,7 +392,7 @@ DWORD dwTxDiff = 0;
399#else //mike fixed new: use differ-signal strength to control rate 392#else //mike fixed new: use differ-signal strength to control rate
400WORD wIdxUpRate = 0; 393WORD wIdxUpRate = 0;
401BOOL bAutoRate[MAX_RATE] = {TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE}; 394BOOL bAutoRate[MAX_RATE] = {TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE};
402UINT ii; 395unsigned int ii;
403long ldBm; 396long ldBm;
404 397
405 if (pMgmt->eScanState != WMAC_NO_SCANNING) { 398 if (pMgmt->eScanState != WMAC_NO_SCANNING) {
@@ -473,12 +466,12 @@ if (wIdxUpRate == RATE_54M ) { //11a/g
473-*/ 466-*/
474BYTE 467BYTE
475RATEuSetIE ( 468RATEuSetIE (
476 IN PWLAN_IE_SUPP_RATES pSrcRates, 469 PWLAN_IE_SUPP_RATES pSrcRates,
477 IN PWLAN_IE_SUPP_RATES pDstRates, 470 PWLAN_IE_SUPP_RATES pDstRates,
478 IN UINT uRateLen 471 unsigned int uRateLen
479 ) 472 )
480{ 473{
481 UINT ii, uu, uRateCnt = 0; 474 unsigned int ii, uu, uRateCnt = 0;
482 475
483 if ((pSrcRates == NULL) || (pDstRates == NULL)) 476 if ((pSrcRates == NULL) || (pDstRates == NULL))
484 return 0; 477 return 0;
diff --git a/drivers/staging/vt6656/datarate.h b/drivers/staging/vt6656/datarate.h
index 68f206e2707..c6f5163ff9b 100644
--- a/drivers/staging/vt6656/datarate.h
+++ b/drivers/staging/vt6656/datarate.h
@@ -69,42 +69,41 @@
69 69
70 70
71 71
72VOID 72void
73RATEvParseMaxRate( 73RATEvParseMaxRate(
74 IN PVOID pDeviceHandler, 74 void *pDeviceHandler,
75 IN PWLAN_IE_SUPP_RATES pItemRates, 75 PWLAN_IE_SUPP_RATES pItemRates,
76 IN PWLAN_IE_SUPP_RATES pItemExtRates, 76 PWLAN_IE_SUPP_RATES pItemExtRates,
77 IN BOOL bUpdateBasicRate, 77 BOOL bUpdateBasicRate,
78 OUT PWORD pwMaxBasicRate, 78 PWORD pwMaxBasicRate,
79 OUT PWORD pwMaxSuppRate, 79 PWORD pwMaxSuppRate,
80 OUT PWORD pwSuppRate, 80 PWORD pwSuppRate,
81 OUT PBYTE pbyTopCCKRate, 81 PBYTE pbyTopCCKRate,
82 OUT PBYTE pbyTopOFDMRate 82 PBYTE pbyTopOFDMRate
83 ); 83 );
84 84
85VOID 85void
86RATEvTxRateFallBack( 86RATEvTxRateFallBack(
87 IN PVOID pDeviceHandler, 87 void *pDeviceHandler,
88 IN PKnownNodeDB psNodeDBTable 88 PKnownNodeDB psNodeDBTable
89 ); 89 );
90 90
91BYTE 91BYTE
92RATEuSetIE( 92RATEuSetIE(
93 IN PWLAN_IE_SUPP_RATES pSrcRates, 93 PWLAN_IE_SUPP_RATES pSrcRates,
94 IN PWLAN_IE_SUPP_RATES pDstRates, 94 PWLAN_IE_SUPP_RATES pDstRates,
95 IN UINT uRateLen 95 unsigned int uRateLen
96 ); 96 );
97 97
98WORD 98WORD
99RATEwGetRateIdx( 99RATEwGetRateIdx(
100 IN BYTE byRate 100 BYTE byRate
101 ); 101 );
102 102
103 103
104BYTE 104BYTE
105DATARATEbyGetRateIdx( 105DATARATEbyGetRateIdx(
106 IN BYTE byRate 106 BYTE byRate
107 ); 107 );
108 108
109 109#endif /* __DATARATE_H__ */
110#endif //__DATARATE_H__
diff --git a/drivers/staging/vt6656/desc.h b/drivers/staging/vt6656/desc.h
index f10530fcc99..07f794ec6db 100644
--- a/drivers/staging/vt6656/desc.h
+++ b/drivers/staging/vt6656/desc.h
@@ -206,8 +206,8 @@ typedef const SRrvTime_atim *PCSRrvTime_atim;
206typedef struct tagSRTSData { 206typedef struct tagSRTSData {
207 WORD wFrameControl; 207 WORD wFrameControl;
208 WORD wDurationID; 208 WORD wDurationID;
209 BYTE abyRA[U_ETHER_ADDR_LEN]; 209 BYTE abyRA[ETH_ALEN];
210 BYTE abyTA[U_ETHER_ADDR_LEN]; 210 BYTE abyTA[ETH_ALEN];
211}__attribute__ ((__packed__)) 211}__attribute__ ((__packed__))
212SRTSData, *PSRTSData; 212SRTSData, *PSRTSData;
213typedef const SRTSData *PCSRTSData; 213typedef const SRTSData *PCSRTSData;
@@ -282,7 +282,7 @@ typedef const SRTS_a_FB *PCSRTS_a_FB;
282typedef struct tagSCTSData { 282typedef struct tagSCTSData {
283 WORD wFrameControl; 283 WORD wFrameControl;
284 WORD wDurationID; 284 WORD wDurationID;
285 BYTE abyRA[U_ETHER_ADDR_LEN]; 285 BYTE abyRA[ETH_ALEN];
286 WORD wReserved; 286 WORD wReserved;
287}__attribute__ ((__packed__)) 287}__attribute__ ((__packed__))
288SCTSData, *PSCTSData; 288SCTSData, *PSCTSData;
@@ -436,8 +436,4 @@ SKeyEntry;
436 436
437/*--------------------- Export Functions --------------------------*/ 437/*--------------------- Export Functions --------------------------*/
438 438
439 439#endif /* __DESC_H__ */
440
441
442#endif // __DESC_H__
443
diff --git a/drivers/staging/vt6656/device.h b/drivers/staging/vt6656/device.h
index 8b541d1d0e2..ef9fd97d3ca 100644
--- a/drivers/staging/vt6656/device.h
+++ b/drivers/staging/vt6656/device.h
@@ -107,7 +107,7 @@
107#define MAC_MAX_CONTEXT_REG (256+128) 107#define MAC_MAX_CONTEXT_REG (256+128)
108 108
109#define MAX_MULTICAST_ADDRESS_NUM 32 109#define MAX_MULTICAST_ADDRESS_NUM 32
110#define MULTICAST_ADDRESS_LIST_SIZE (MAX_MULTICAST_ADDRESS_NUM * U_ETHER_ADDR_LEN) 110#define MULTICAST_ADDRESS_LIST_SIZE (MAX_MULTICAST_ADDRESS_NUM * ETH_ALEN)
111 111
112 112
113//#define OP_MODE_INFRASTRUCTURE 0 113//#define OP_MODE_INFRASTRUCTURE 0
@@ -209,9 +209,9 @@ typedef enum _CONTEXT_TYPE {
209// RCB (Receive Control Block) 209// RCB (Receive Control Block)
210typedef struct _RCB 210typedef struct _RCB
211{ 211{
212 PVOID Next; 212 void *Next;
213 LONG Ref; 213 signed long Ref;
214 PVOID pDevice; 214 void *pDevice;
215 struct urb *pUrb; 215 struct urb *pUrb;
216 SRxMgmtPacket sMngPacket; 216 SRxMgmtPacket sMngPacket;
217 struct sk_buff* skb; 217 struct sk_buff* skb;
@@ -222,34 +222,33 @@ typedef struct _RCB
222 222
223// used to track bulk out irps 223// used to track bulk out irps
224typedef struct _USB_SEND_CONTEXT { 224typedef struct _USB_SEND_CONTEXT {
225 PVOID pDevice; 225 void *pDevice;
226 struct sk_buff *pPacket; 226 struct sk_buff *pPacket;
227 struct urb *pUrb; 227 struct urb *pUrb;
228 UINT uBufLen; 228 unsigned int uBufLen;
229 CONTEXT_TYPE Type; 229 CONTEXT_TYPE Type;
230 SEthernetHeader sEthHeader; 230 SEthernetHeader sEthHeader;
231 PVOID Next; 231 void *Next;
232 BOOL bBoolInUse; 232 BOOL bBoolInUse;
233 UCHAR Data[MAX_TOTAL_SIZE_WITH_ALL_HEADERS]; 233 unsigned char Data[MAX_TOTAL_SIZE_WITH_ALL_HEADERS];
234} USB_SEND_CONTEXT, *PUSB_SEND_CONTEXT; 234} USB_SEND_CONTEXT, *PUSB_SEND_CONTEXT;
235 235
236 236
237//structure got from configuration file as user desired default setting. 237/* structure got from configuration file as user-desired default settings */
238typedef struct _DEFAULT_CONFIG{ 238typedef struct _DEFAULT_CONFIG {
239 INT ZoneType; 239 signed int ZoneType;
240 INT eConfigMode; 240 signed int eConfigMode;
241 INT eAuthenMode; //open/wep/wpa 241 signed int eAuthenMode; /* open/wep/wpa */
242 INT bShareKeyAlgorithm; //open-open/open-sharekey/wep-sharekey 242 signed int bShareKeyAlgorithm; /* open-open/{open,wep}-sharekey */
243 INT keyidx; //wepkey index 243 signed int keyidx; /* wepkey index */
244 INT eEncryptionStatus; 244 signed int eEncryptionStatus;
245 245} DEFAULT_CONFIG, *PDEFAULT_CONFIG;
246}DEFAULT_CONFIG,*PDEFAULT_CONFIG;
247 246
248// 247//
249// Structure to keep track of usb interrupt packets 248// Structure to keep track of usb interrupt packets
250// 249//
251typedef struct { 250typedef struct {
252 UINT uDataLen; 251 unsigned int uDataLen;
253 PBYTE pDataBuf; 252 PBYTE pDataBuf;
254// struct urb *pUrb; 253// struct urb *pUrb;
255 BOOL bInUse; 254 BOOL bInUse;
@@ -296,7 +295,7 @@ typedef enum __DEVICE_NDIS_STATUS {
296#define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01 295#define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01
297 296
298// PMKID Structures 297// PMKID Structures
299typedef UCHAR NDIS_802_11_PMKID_VALUE[16]; 298typedef unsigned char NDIS_802_11_PMKID_VALUE[16];
300 299
301 300
302typedef enum _NDIS_802_11_WEP_STATUS 301typedef enum _NDIS_802_11_WEP_STATUS
@@ -328,7 +327,7 @@ typedef enum _NDIS_802_11_STATUS_TYPE
328//Added new types for PMKID Candidate lists. 327//Added new types for PMKID Candidate lists.
329typedef struct _PMKID_CANDIDATE { 328typedef struct _PMKID_CANDIDATE {
330 NDIS_802_11_MAC_ADDRESS BSSID; 329 NDIS_802_11_MAC_ADDRESS BSSID;
331 ULONG Flags; 330 unsigned long Flags;
332} PMKID_CANDIDATE, *PPMKID_CANDIDATE; 331} PMKID_CANDIDATE, *PPMKID_CANDIDATE;
333 332
334 333
@@ -339,15 +338,15 @@ typedef struct _BSSID_INFO
339} BSSID_INFO, *PBSSID_INFO; 338} BSSID_INFO, *PBSSID_INFO;
340 339
341typedef struct tagSPMKID { 340typedef struct tagSPMKID {
342 ULONG Length; 341 unsigned long Length;
343 ULONG BSSIDInfoCount; 342 unsigned long BSSIDInfoCount;
344 BSSID_INFO BSSIDInfo[MAX_BSSIDINFO_4_PMKID]; 343 BSSID_INFO BSSIDInfo[MAX_BSSIDINFO_4_PMKID];
345} SPMKID, *PSPMKID; 344} SPMKID, *PSPMKID;
346 345
347typedef struct tagSPMKIDCandidateEvent { 346typedef struct tagSPMKIDCandidateEvent {
348 NDIS_802_11_STATUS_TYPE StatusType; 347 NDIS_802_11_STATUS_TYPE StatusType;
349 ULONG Version; // Version of the structure 348 unsigned long Version; /* Version of the structure */
350 ULONG NumCandidates; // No. of pmkid candidates 349 unsigned long NumCandidates; /* No. of pmkid candidates */
351 PMKID_CANDIDATE CandidateList[MAX_PMKIDLIST]; 350 PMKID_CANDIDATE CandidateList[MAX_PMKIDLIST];
352} SPMKIDCandidateEvent, *PSPMKIDCandidateEvent; 351} SPMKIDCandidateEvent, *PSPMKIDCandidateEvent;
353 352
@@ -369,7 +368,7 @@ typedef struct tagSQuietControl {
369// The receive duplicate detection cache entry 368// The receive duplicate detection cache entry
370typedef struct tagSCacheEntry{ 369typedef struct tagSCacheEntry{
371 WORD wFmSequence; 370 WORD wFmSequence;
372 BYTE abyAddr2[U_ETHER_ADDR_LEN]; 371 BYTE abyAddr2[ETH_ALEN];
373 WORD wFrameCtl; 372 WORD wFrameCtl;
374} SCacheEntry, *PSCacheEntry; 373} SCacheEntry, *PSCacheEntry;
375 374
@@ -377,7 +376,7 @@ typedef struct tagSCache{
377/* The receive cache is updated circularly. The next entry to be written is 376/* The receive cache is updated circularly. The next entry to be written is
378 * indexed by the "InPtr". 377 * indexed by the "InPtr".
379*/ 378*/
380 UINT uInPtr; // Place to use next 379 unsigned int uInPtr; /* Place to use next */
381 SCacheEntry asCacheEntry[DUPLICATE_RX_CACHE_LENGTH]; 380 SCacheEntry asCacheEntry[DUPLICATE_RX_CACHE_LENGTH];
382} SCache, *PSCache; 381} SCache, *PSCache;
383 382
@@ -387,11 +386,11 @@ typedef struct tagSDeFragControlBlock
387{ 386{
388 WORD wSequence; 387 WORD wSequence;
389 WORD wFragNum; 388 WORD wFragNum;
390 BYTE abyAddr2[U_ETHER_ADDR_LEN]; 389 BYTE abyAddr2[ETH_ALEN];
391 UINT uLifetime; 390 unsigned int uLifetime;
392 struct sk_buff* skb; 391 struct sk_buff* skb;
393 PBYTE pbyRxBuffer; 392 PBYTE pbyRxBuffer;
394 UINT cbFrameLength; 393 unsigned int cbFrameLength;
395 BOOL bInUse; 394 BOOL bInUse;
396} SDeFragControlBlock, *PSDeFragControlBlock; 395} SDeFragControlBlock, *PSDeFragControlBlock;
397 396
@@ -435,7 +434,7 @@ typedef struct __device_opt {
435 int short_retry; 434 int short_retry;
436 int long_retry; 435 int long_retry;
437 int bbp_type; 436 int bbp_type;
438 U32 flags; 437 u32 flags;
439} OPTIONS, *POPTIONS; 438} OPTIONS, *POPTIONS;
440 439
441 440
@@ -453,25 +452,25 @@ typedef struct __device_info {
453 struct tasklet_struct ReadWorkItem; 452 struct tasklet_struct ReadWorkItem;
454 struct tasklet_struct RxMngWorkItem; 453 struct tasklet_struct RxMngWorkItem;
455 454
456 U32 rx_buf_sz; 455 u32 rx_buf_sz;
457 int multicast_limit; 456 int multicast_limit;
458 BYTE byRxMode; 457 BYTE byRxMode;
459 458
460 spinlock_t lock; 459 spinlock_t lock;
461 460
462 U32 rx_bytes; 461 u32 rx_bytes;
463 462
464 BYTE byRevId; 463 BYTE byRevId;
465 464
466 U32 flags; 465 u32 flags;
467 ULONG Flags; 466 unsigned long Flags;
468 467
469 SCache sDupRxCache; 468 SCache sDupRxCache;
470 469
471 SDeFragControlBlock sRxDFCB[CB_MAX_RX_FRAG]; 470 SDeFragControlBlock sRxDFCB[CB_MAX_RX_FRAG];
472 UINT cbDFCB; 471 unsigned int cbDFCB;
473 UINT cbFreeDFCB; 472 unsigned int cbFreeDFCB;
474 UINT uCurrentDFCBIdx; 473 unsigned int uCurrentDFCBIdx;
475 474
476 // +++USB 475 // +++USB
477 476
@@ -479,29 +478,29 @@ typedef struct __device_info {
479 struct urb *pInterruptURB; 478 struct urb *pInterruptURB;
480 struct usb_ctrlrequest sUsbCtlRequest; 479 struct usb_ctrlrequest sUsbCtlRequest;
481 480
482 UINT int_interval; 481 unsigned int int_interval;
483 // 482 //
484 // Variables to track resources for the BULK In Pipe 483 // Variables to track resources for the BULK In Pipe
485 // 484 //
486 PRCB pRCBMem; 485 PRCB pRCBMem;
487 PRCB apRCB[CB_MAX_RX_DESC]; 486 PRCB apRCB[CB_MAX_RX_DESC];
488 UINT cbRD; 487 unsigned int cbRD;
489 PRCB FirstRecvFreeList; 488 PRCB FirstRecvFreeList;
490 PRCB LastRecvFreeList; 489 PRCB LastRecvFreeList;
491 UINT NumRecvFreeList; 490 unsigned int NumRecvFreeList;
492 PRCB FirstRecvMngList; 491 PRCB FirstRecvMngList;
493 PRCB LastRecvMngList; 492 PRCB LastRecvMngList;
494 UINT NumRecvMngList; 493 unsigned int NumRecvMngList;
495 BOOL bIsRxWorkItemQueued; 494 BOOL bIsRxWorkItemQueued;
496 BOOL bIsRxMngWorkItemQueued; 495 BOOL bIsRxMngWorkItemQueued;
497 ULONG ulRcvRefCount; // number of packets that have not been returned back 496 unsigned long ulRcvRefCount; /* packets that have not returned back */
498 497
499 // 498 //
500 // Variables to track resources for the BULK Out Pipe 499 // Variables to track resources for the BULK Out Pipe
501 // 500 //
502 501
503 PUSB_SEND_CONTEXT apTD[CB_MAX_TX_DESC]; 502 PUSB_SEND_CONTEXT apTD[CB_MAX_TX_DESC];
504 UINT cbTD; 503 unsigned int cbTD;
505 504
506 // 505 //
507 // Variables to track resources for the Interript In Pipe 506 // Variables to track resources for the Interript In Pipe
@@ -518,20 +517,20 @@ typedef struct __device_info {
518 // 517 //
519 // Statistic for USB 518 // Statistic for USB
520 // protect with spinlock 519 // protect with spinlock
521 ULONG ulBulkInPosted; 520 unsigned long ulBulkInPosted;
522 ULONG ulBulkInError; 521 unsigned long ulBulkInError;
523 ULONG ulBulkInContCRCError; 522 unsigned long ulBulkInContCRCError;
524 ULONG ulBulkInBytesRead; 523 unsigned long ulBulkInBytesRead;
525 524
526 ULONG ulBulkOutPosted; 525 unsigned long ulBulkOutPosted;
527 ULONG ulBulkOutError; 526 unsigned long ulBulkOutError;
528 ULONG ulBulkOutContCRCError; 527 unsigned long ulBulkOutContCRCError;
529 ULONG ulBulkOutBytesWrite; 528 unsigned long ulBulkOutBytesWrite;
530 529
531 ULONG ulIntInPosted; 530 unsigned long ulIntInPosted;
532 ULONG ulIntInError; 531 unsigned long ulIntInError;
533 ULONG ulIntInContCRCError; 532 unsigned long ulIntInContCRCError;
534 ULONG ulIntInBytesRead; 533 unsigned long ulIntInBytesRead;
535 534
536 535
537 // Version control 536 // Version control
@@ -547,10 +546,10 @@ typedef struct __device_info {
547 BYTE byOriginalZonetype; 546 BYTE byOriginalZonetype;
548 547
549 BOOL bLinkPass; // link status: OK or fail 548 BOOL bLinkPass; // link status: OK or fail
550 BYTE abyCurrentNetAddr[U_ETHER_ADDR_LEN]; 549 BYTE abyCurrentNetAddr[ETH_ALEN];
551 BYTE abyPermanentNetAddr[U_ETHER_ADDR_LEN]; 550 BYTE abyPermanentNetAddr[ETH_ALEN];
552 // SW network address 551 // SW network address
553// BYTE abySoftwareNetAddr[U_ETHER_ADDR_LEN]; 552 /* u8 abySoftwareNetAddr[ETH_ALEN]; */
554 BOOL bExistSWNetAddr; 553 BOOL bExistSWNetAddr;
555 554
556 // Adapter statistics 555 // Adapter statistics
@@ -561,24 +560,24 @@ typedef struct __device_info {
561 // 560 //
562 // Maintain statistical debug info. 561 // Maintain statistical debug info.
563 // 562 //
564 ULONG packetsReceived; 563 unsigned long packetsReceived;
565 ULONG packetsReceivedDropped; 564 unsigned long packetsReceivedDropped;
566 ULONG packetsReceivedOverflow; 565 unsigned long packetsReceivedOverflow;
567 ULONG packetsSent; 566 unsigned long packetsSent;
568 ULONG packetsSentDropped; 567 unsigned long packetsSentDropped;
569 ULONG SendContextsInUse; 568 unsigned long SendContextsInUse;
570 ULONG RcvBuffersInUse; 569 unsigned long RcvBuffersInUse;
571 570
572 571
573 // 802.11 management 572 // 802.11 management
574 SMgmtObject sMgmtObj; 573 SMgmtObject sMgmtObj;
575 574
576 QWORD qwCurrTSF; 575 QWORD qwCurrTSF;
577 UINT cbBulkInMax; 576 unsigned int cbBulkInMax;
578 BOOL bPSRxBeacon; 577 BOOL bPSRxBeacon;
579 578
580 // 802.11 MAC specific 579 // 802.11 MAC specific
581 UINT uCurrRSSI; 580 unsigned int uCurrRSSI;
582 BYTE byCurrSQ; 581 BYTE byCurrSQ;
583 582
584 583
@@ -599,30 +598,31 @@ typedef struct __device_info {
599 598
600 BOOL bDiversityRegCtlON; 599 BOOL bDiversityRegCtlON;
601 BOOL bDiversityEnable; 600 BOOL bDiversityEnable;
602 ULONG ulDiversityNValue; 601 unsigned long ulDiversityNValue;
603 ULONG ulDiversityMValue; 602 unsigned long ulDiversityMValue;
604 BYTE byTMax; 603 BYTE byTMax;
605 BYTE byTMax2; 604 BYTE byTMax2;
606 BYTE byTMax3; 605 BYTE byTMax3;
607 ULONG ulSQ3TH; 606 unsigned long ulSQ3TH;
608 607
609 ULONG uDiversityCnt; 608 unsigned long uDiversityCnt;
610 BYTE byAntennaState; 609 BYTE byAntennaState;
611 ULONG ulRatio_State0; 610 unsigned long ulRatio_State0;
612 ULONG ulRatio_State1; 611 unsigned long ulRatio_State1;
613 ULONG ulSQ3_State0; 612 unsigned long ulSQ3_State0;
614 ULONG ulSQ3_State1; 613 unsigned long ulSQ3_State1;
615 614
616 ULONG aulSQ3Val[MAX_RATE]; 615 unsigned long aulSQ3Val[MAX_RATE];
617 ULONG aulPktNum[MAX_RATE]; 616 unsigned long aulPktNum[MAX_RATE];
618 617
619 // IFS & Cw 618 /* IFS & Cw */
620 UINT uSIFS; //Current SIFS 619 unsigned int uSIFS; /* Current SIFS */
621 UINT uDIFS; //Current DIFS 620 unsigned int uDIFS; /* Current DIFS */
622 UINT uEIFS; //Current EIFS 621 unsigned int uEIFS; /* Current EIFS */
623 UINT uSlot; //Current SlotTime 622 unsigned int uSlot; /* Current SlotTime */
624 UINT uCwMin; //Current CwMin 623 unsigned int uCwMin; /* Current CwMin */
625 UINT uCwMax; //CwMax is fixed on 1023. 624 unsigned int uCwMax; /* CwMax is fixed on 1023 */
625
626 // PHY parameter 626 // PHY parameter
627 BYTE bySIFS; 627 BYTE bySIFS;
628 BYTE byDIFS; 628 BYTE byDIFS;
@@ -647,7 +647,7 @@ typedef struct __device_info {
647 647
648 BYTE byMinChannel; 648 BYTE byMinChannel;
649 BYTE byMaxChannel; 649 BYTE byMaxChannel;
650 UINT uConnectionRate; 650 unsigned int uConnectionRate;
651 651
652 BYTE byPreambleType; 652 BYTE byPreambleType;
653 BYTE byShortPreamble; 653 BYTE byShortPreamble;
@@ -671,8 +671,8 @@ typedef struct __device_info {
671 CARD_OP_MODE eOPMode; 671 CARD_OP_MODE eOPMode;
672 BOOL bBSSIDFilter; 672 BOOL bBSSIDFilter;
673 WORD wMaxTransmitMSDULifetime; 673 WORD wMaxTransmitMSDULifetime;
674 BYTE abyBSSID[U_ETHER_ADDR_LEN]; 674 BYTE abyBSSID[ETH_ALEN];
675 BYTE abyDesireBSSID[U_ETHER_ADDR_LEN]; 675 BYTE abyDesireBSSID[ETH_ALEN];
676 WORD wCTSDuration; // update while speed change 676 WORD wCTSDuration; // update while speed change
677 WORD wACKDuration; // update while speed change 677 WORD wACKDuration; // update while speed change
678 WORD wRTSTransmitLen; // update while speed change 678 WORD wRTSTransmitLen; // update while speed change
@@ -701,7 +701,7 @@ typedef struct __device_info {
701 WORD wListenInterval; 701 WORD wListenInterval;
702 BOOL bPWBitOn; 702 BOOL bPWBitOn;
703 WMAC_POWER_MODE ePSMode; 703 WMAC_POWER_MODE ePSMode;
704 ULONG ulPSModeWaitTx; 704 unsigned long ulPSModeWaitTx;
705 BOOL bPSModeTxBurst; 705 BOOL bPSModeTxBurst;
706 706
707 // Beacon releated 707 // Beacon releated
@@ -710,7 +710,7 @@ typedef struct __device_info {
710 BOOL bBeaconSent; 710 BOOL bBeaconSent;
711 BOOL bFixRate; 711 BOOL bFixRate;
712 BYTE byCurrentCh; 712 BYTE byCurrentCh;
713 UINT uScanTime; 713 unsigned int uScanTime;
714 714
715 CMD_STATE eCommandState; 715 CMD_STATE eCommandState;
716 716
@@ -721,15 +721,15 @@ typedef struct __device_info {
721 BOOL bStopBeacon; 721 BOOL bStopBeacon;
722 BOOL bStopDataPkt; 722 BOOL bStopDataPkt;
723 BOOL bStopTx0Pkt; 723 BOOL bStopTx0Pkt;
724 UINT uAutoReConnectTime; 724 unsigned int uAutoReConnectTime;
725 UINT uIsroamingTime; 725 unsigned int uIsroamingTime;
726 726
727 // 802.11 counter 727 // 802.11 counter
728 728
729 CMD_ITEM eCmdQueue[CMD_Q_SIZE]; 729 CMD_ITEM eCmdQueue[CMD_Q_SIZE];
730 UINT uCmdDequeueIdx; 730 unsigned int uCmdDequeueIdx;
731 UINT uCmdEnqueueIdx; 731 unsigned int uCmdEnqueueIdx;
732 UINT cbFreeCmdQueue; 732 unsigned int cbFreeCmdQueue;
733 BOOL bCmdRunning; 733 BOOL bCmdRunning;
734 BOOL bCmdClear; 734 BOOL bCmdClear;
735 BOOL bNeedRadioOFF; 735 BOOL bNeedRadioOFF;
@@ -741,7 +741,7 @@ typedef struct __device_info {
741 BYTE bSameBSSCurNum; //DavidWang 741 BYTE bSameBSSCurNum; //DavidWang
742 BOOL bRoaming; 742 BOOL bRoaming;
743 BOOL b11hEable; 743 BOOL b11hEable;
744 ULONG ulTxPower; 744 unsigned long ulTxPower;
745 745
746 // Encryption 746 // Encryption
747 NDIS_802_11_WEP_STATUS eEncryptionStatus; 747 NDIS_802_11_WEP_STATUS eEncryptionStatus;
@@ -762,11 +762,11 @@ typedef struct __device_info {
762 BOOL bAES; 762 BOOL bAES;
763 BYTE byCntMeasure; 763 BYTE byCntMeasure;
764 764
765 UINT uKeyLength; 765 unsigned int uKeyLength;
766 BYTE abyKey[WLAN_WEP232_KEYLEN]; 766 BYTE abyKey[WLAN_WEP232_KEYLEN];
767 767
768 // for AP mode 768 // for AP mode
769 UINT uAssocCount; 769 unsigned int uAssocCount;
770 BOOL bMoreData; 770 BOOL bMoreData;
771 771
772 // QoS 772 // QoS
@@ -781,11 +781,11 @@ typedef struct __device_info {
781 781
782 // For Update BaseBand VGA Gain Offset 782 // For Update BaseBand VGA Gain Offset
783 BOOL bUpdateBBVGA; 783 BOOL bUpdateBBVGA;
784 UINT uBBVGADiffCount; 784 unsigned int uBBVGADiffCount;
785 BYTE byBBVGANew; 785 BYTE byBBVGANew;
786 BYTE byBBVGACurrent; 786 BYTE byBBVGACurrent;
787 BYTE abyBBVGA[BB_VGA_LEVEL]; 787 BYTE abyBBVGA[BB_VGA_LEVEL];
788 LONG ldBmThreshold[BB_VGA_LEVEL]; 788 signed long ldBmThreshold[BB_VGA_LEVEL];
789 789
790 BYTE byBBPreEDRSSI; 790 BYTE byBBPreEDRSSI;
791 BYTE byBBPreEDIndex; 791 BYTE byBBPreEDIndex;
@@ -813,7 +813,7 @@ typedef struct __device_info {
813//2007-0115-01<Add>by MikeLiu 813//2007-0115-01<Add>by MikeLiu
814#ifdef TxInSleep 814#ifdef TxInSleep
815 struct timer_list sTimerTxData; 815 struct timer_list sTimerTxData;
816 ULONG nTxDataTimeCout; 816 unsigned long nTxDataTimeCout;
817 BOOL fTxDataInSleep; 817 BOOL fTxDataInSleep;
818 BOOL IsTxDataTrigger; 818 BOOL IsTxDataTrigger;
819#endif 819#endif
@@ -826,9 +826,9 @@ typedef struct __device_info {
826 826
827 SEthernetHeader sTxEthHeader; 827 SEthernetHeader sTxEthHeader;
828 SEthernetHeader sRxEthHeader; 828 SEthernetHeader sRxEthHeader;
829 BYTE abyBroadcastAddr[U_ETHER_ADDR_LEN]; 829 BYTE abyBroadcastAddr[ETH_ALEN];
830 BYTE abySNAP_RFC1042[U_ETHER_ADDR_LEN]; 830 BYTE abySNAP_RFC1042[ETH_ALEN];
831 BYTE abySNAP_Bridgetunnel[U_ETHER_ADDR_LEN]; 831 BYTE abySNAP_Bridgetunnel[ETH_ALEN];
832 832
833 // Pre-Authentication & PMK cache 833 // Pre-Authentication & PMK cache
834 SPMKID gsPMKID; 834 SPMKID gsPMKID;
@@ -864,7 +864,7 @@ typedef struct __device_info {
864 struct net_device *apdev; 864 struct net_device *apdev;
865 int (*tx_80211)(struct sk_buff *skb, struct net_device *dev); 865 int (*tx_80211)(struct sk_buff *skb, struct net_device *dev);
866#endif 866#endif
867 UINT uChannel; 867 unsigned int uChannel;
868 868
869 struct iw_statistics wstats; // wireless stats 869 struct iw_statistics wstats; // wireless stats
870 BOOL bCommit; 870 BOOL bCommit;
@@ -929,7 +929,9 @@ typedef struct __device_info {
929 929
930/*--------------------- Export Functions --------------------------*/ 930/*--------------------- Export Functions --------------------------*/
931 931
932//BOOL device_dma0_xmit(PSDevice pDevice, struct sk_buff *skb, UINT uNodeIndex); 932/* BOOL device_dma0_xmit(PSDevice pDevice, struct sk_buff *skb,
933 * unsigned int uNodeIndex);
934 */
933BOOL device_alloc_frag_buf(PSDevice pDevice, PSDeFragControlBlock pDeF); 935BOOL device_alloc_frag_buf(PSDevice pDevice, PSDeFragControlBlock pDeF);
934 936
935#endif 937#endif
diff --git a/drivers/staging/vt6656/dpc.c b/drivers/staging/vt6656/dpc.c
index 835c6d6967b..9afe76cacef 100644
--- a/drivers/staging/vt6656/dpc.c
+++ b/drivers/staging/vt6656/dpc.c
@@ -74,70 +74,69 @@ const BYTE acbyRxRate[MAX_RATE] =
74 74
75/*--------------------- Static Functions --------------------------*/ 75/*--------------------- Static Functions --------------------------*/
76 76
77static BYTE s_byGetRateIdx(IN BYTE byRate); 77static BYTE s_byGetRateIdx(BYTE byRate);
78
79 78
80static 79static
81VOID 80void
82s_vGetDASA( 81s_vGetDASA(
83 IN PBYTE pbyRxBufferAddr, 82 PBYTE pbyRxBufferAddr,
84 OUT PUINT pcbHeaderSize, 83 PUINT pcbHeaderSize,
85 OUT PSEthernetHeader psEthHeader 84 PSEthernetHeader psEthHeader
86 ); 85 );
87 86
88static 87static
89VOID 88void
90s_vProcessRxMACHeader ( 89s_vProcessRxMACHeader (
91 IN PSDevice pDevice, 90 PSDevice pDevice,
92 IN PBYTE pbyRxBufferAddr, 91 PBYTE pbyRxBufferAddr,
93 IN UINT cbPacketSize, 92 unsigned int cbPacketSize,
94 IN BOOL bIsWEP, 93 BOOL bIsWEP,
95 IN BOOL bExtIV, 94 BOOL bExtIV,
96 OUT PUINT pcbHeadSize 95 PUINT pcbHeadSize
97 ); 96 );
98 97
99static BOOL s_bAPModeRxCtl( 98static BOOL s_bAPModeRxCtl(
100 IN PSDevice pDevice, 99 PSDevice pDevice,
101 IN PBYTE pbyFrame, 100 PBYTE pbyFrame,
102 IN INT iSANodeIndex 101 signed int iSANodeIndex
103 ); 102 );
104 103
105 104
106 105
107static BOOL s_bAPModeRxData ( 106static BOOL s_bAPModeRxData (
108 IN PSDevice pDevice, 107 PSDevice pDevice,
109 IN struct sk_buff* skb, 108 struct sk_buff *skb,
110 IN UINT FrameSize, 109 unsigned int FrameSize,
111 IN UINT cbHeaderOffset, 110 unsigned int cbHeaderOffset,
112 IN INT iSANodeIndex, 111 signed int iSANodeIndex,
113 IN INT iDANodeIndex 112 signed int iDANodeIndex
114 ); 113 );
115 114
116 115
117static BOOL s_bHandleRxEncryption( 116static BOOL s_bHandleRxEncryption(
118 IN PSDevice pDevice, 117 PSDevice pDevice,
119 IN PBYTE pbyFrame, 118 PBYTE pbyFrame,
120 IN UINT FrameSize, 119 unsigned int FrameSize,
121 IN PBYTE pbyRsr, 120 PBYTE pbyRsr,
122 OUT PBYTE pbyNewRsr, 121 PBYTE pbyNewRsr,
123 OUT PSKeyItem *pKeyOut, 122 PSKeyItem * pKeyOut,
124 int * pbExtIV, 123 int * pbExtIV,
125 OUT PWORD pwRxTSC15_0, 124 PWORD pwRxTSC15_0,
126 OUT PDWORD pdwRxTSC47_16 125 PDWORD pdwRxTSC47_16
127 ); 126 );
128 127
129static BOOL s_bHostWepRxEncryption( 128static BOOL s_bHostWepRxEncryption(
130 129
131 IN PSDevice pDevice, 130 PSDevice pDevice,
132 IN PBYTE pbyFrame, 131 PBYTE pbyFrame,
133 IN UINT FrameSize, 132 unsigned int FrameSize,
134 IN PBYTE pbyRsr, 133 PBYTE pbyRsr,
135 IN BOOL bOnFly, 134 BOOL bOnFly,
136 IN PSKeyItem pKey, 135 PSKeyItem pKey,
137 OUT PBYTE pbyNewRsr, 136 PBYTE pbyNewRsr,
138 int * pbExtIV, 137 int * pbExtIV,
139 OUT PWORD pwRxTSC15_0, 138 PWORD pwRxTSC15_0,
140 OUT PDWORD pdwRxTSC47_16 139 PDWORD pdwRxTSC47_16
141 140
142 ); 141 );
143 142
@@ -161,18 +160,18 @@ static BOOL s_bHostWepRxEncryption(
161 * 160 *
162-*/ 161-*/
163static 162static
164VOID 163void
165s_vProcessRxMACHeader ( 164s_vProcessRxMACHeader (
166 IN PSDevice pDevice, 165 PSDevice pDevice,
167 IN PBYTE pbyRxBufferAddr, 166 PBYTE pbyRxBufferAddr,
168 IN UINT cbPacketSize, 167 unsigned int cbPacketSize,
169 IN BOOL bIsWEP, 168 BOOL bIsWEP,
170 IN BOOL bExtIV, 169 BOOL bExtIV,
171 OUT PUINT pcbHeadSize 170 PUINT pcbHeadSize
172 ) 171 )
173{ 172{
174 PBYTE pbyRxBuffer; 173 PBYTE pbyRxBuffer;
175 UINT cbHeaderSize = 0; 174 unsigned int cbHeaderSize = 0;
176 PWORD pwType; 175 PWORD pwType;
177 PS802_11Header pMACHeader; 176 PS802_11Header pMACHeader;
178 int ii; 177 int ii;
@@ -234,11 +233,11 @@ s_vProcessRxMACHeader (
234 } 233 }
235 } 234 }
236 235
237 cbHeaderSize -= (U_ETHER_ADDR_LEN * 2); 236 cbHeaderSize -= (ETH_ALEN * 2);
238 pbyRxBuffer = (PBYTE) (pbyRxBufferAddr + cbHeaderSize); 237 pbyRxBuffer = (PBYTE) (pbyRxBufferAddr + cbHeaderSize);
239 for(ii=0;ii<U_ETHER_ADDR_LEN;ii++) 238 for (ii = 0; ii < ETH_ALEN; ii++)
240 *pbyRxBuffer++ = pDevice->sRxEthHeader.abyDstAddr[ii]; 239 *pbyRxBuffer++ = pDevice->sRxEthHeader.abyDstAddr[ii];
241 for(ii=0;ii<U_ETHER_ADDR_LEN;ii++) 240 for (ii = 0; ii < ETH_ALEN; ii++)
242 *pbyRxBuffer++ = pDevice->sRxEthHeader.abySrcAddr[ii]; 241 *pbyRxBuffer++ = pDevice->sRxEthHeader.abySrcAddr[ii];
243 242
244 *pcbHeadSize = cbHeaderSize; 243 *pcbHeadSize = cbHeaderSize;
@@ -247,7 +246,7 @@ s_vProcessRxMACHeader (
247 246
248 247
249 248
250static BYTE s_byGetRateIdx (IN BYTE byRate) 249static BYTE s_byGetRateIdx(BYTE byRate)
251{ 250{
252 BYTE byRateIdx; 251 BYTE byRateIdx;
253 252
@@ -260,50 +259,55 @@ static BYTE s_byGetRateIdx (IN BYTE byRate)
260 259
261 260
262static 261static
263VOID 262void
264s_vGetDASA ( 263s_vGetDASA (
265 IN PBYTE pbyRxBufferAddr, 264 PBYTE pbyRxBufferAddr,
266 OUT PUINT pcbHeaderSize, 265 PUINT pcbHeaderSize,
267 OUT PSEthernetHeader psEthHeader 266 PSEthernetHeader psEthHeader
268 ) 267 )
269{ 268{
270 UINT cbHeaderSize = 0; 269 unsigned int cbHeaderSize = 0;
271 PS802_11Header pMACHeader; 270 PS802_11Header pMACHeader;
272 int ii; 271 int ii;
273 272
274 pMACHeader = (PS802_11Header) (pbyRxBufferAddr + cbHeaderSize); 273 pMACHeader = (PS802_11Header) (pbyRxBufferAddr + cbHeaderSize);
275 274
276 if ((pMACHeader->wFrameCtl & FC_TODS) == 0) { 275 if ((pMACHeader->wFrameCtl & FC_TODS) == 0) {
277 if (pMACHeader->wFrameCtl & FC_FROMDS) { 276 if (pMACHeader->wFrameCtl & FC_FROMDS) {
278 for(ii=0;ii<U_ETHER_ADDR_LEN;ii++) { 277 for (ii = 0; ii < ETH_ALEN; ii++) {
279 psEthHeader->abyDstAddr[ii] = pMACHeader->abyAddr1[ii]; 278 psEthHeader->abyDstAddr[ii] =
280 psEthHeader->abySrcAddr[ii] = pMACHeader->abyAddr3[ii]; 279 pMACHeader->abyAddr1[ii];
281 } 280 psEthHeader->abySrcAddr[ii] =
282 } 281 pMACHeader->abyAddr3[ii];
283 else { 282 }
284 // IBSS mode 283 } else {
285 for(ii=0;ii<U_ETHER_ADDR_LEN;ii++) { 284 /* IBSS mode */
286 psEthHeader->abyDstAddr[ii] = pMACHeader->abyAddr1[ii]; 285 for (ii = 0; ii < ETH_ALEN; ii++) {
287 psEthHeader->abySrcAddr[ii] = pMACHeader->abyAddr2[ii]; 286 psEthHeader->abyDstAddr[ii] =
288 } 287 pMACHeader->abyAddr1[ii];
289 } 288 psEthHeader->abySrcAddr[ii] =
290 } 289 pMACHeader->abyAddr2[ii];
291 else { 290 }
292 // Is AP mode.. 291 }
293 if (pMACHeader->wFrameCtl & FC_FROMDS) { 292 } else {
294 for(ii=0;ii<U_ETHER_ADDR_LEN;ii++) { 293 /* Is AP mode.. */
295 psEthHeader->abyDstAddr[ii] = pMACHeader->abyAddr3[ii]; 294 if (pMACHeader->wFrameCtl & FC_FROMDS) {
296 psEthHeader->abySrcAddr[ii] = pMACHeader->abyAddr4[ii]; 295 for (ii = 0; ii < ETH_ALEN; ii++) {
297 cbHeaderSize += 6; 296 psEthHeader->abyDstAddr[ii] =
298 } 297 pMACHeader->abyAddr3[ii];
299 } 298 psEthHeader->abySrcAddr[ii] =
300 else { 299 pMACHeader->abyAddr4[ii];
301 for(ii=0;ii<U_ETHER_ADDR_LEN;ii++) { 300 cbHeaderSize += 6;
302 psEthHeader->abyDstAddr[ii] = pMACHeader->abyAddr3[ii]; 301 }
303 psEthHeader->abySrcAddr[ii] = pMACHeader->abyAddr2[ii]; 302 } else {
304 } 303 for (ii = 0; ii < ETH_ALEN; ii++) {
305 } 304 psEthHeader->abyDstAddr[ii] =
306 }; 305 pMACHeader->abyAddr3[ii];
306 psEthHeader->abySrcAddr[ii] =
307 pMACHeader->abyAddr2[ii];
308 }
309 }
310 };
307 *pcbHeaderSize = cbHeaderSize; 311 *pcbHeaderSize = cbHeaderSize;
308} 312}
309 313
@@ -312,9 +316,9 @@ s_vGetDASA (
312 316
313BOOL 317BOOL
314RXbBulkInProcessData ( 318RXbBulkInProcessData (
315 IN PSDevice pDevice, 319 PSDevice pDevice,
316 IN PRCB pRCB, 320 PRCB pRCB,
317 IN ULONG BytesToIndicate 321 unsigned long BytesToIndicate
318 ) 322 )
319{ 323{
320 324
@@ -329,26 +333,26 @@ RXbBulkInProcessData (
329 PQWORD pqwTSFTime; 333 PQWORD pqwTSFTime;
330 PBYTE pbyFrame; 334 PBYTE pbyFrame;
331 BOOL bDeFragRx = FALSE; 335 BOOL bDeFragRx = FALSE;
332 UINT cbHeaderOffset; 336 unsigned int cbHeaderOffset;
333 UINT FrameSize; 337 unsigned int FrameSize;
334 WORD wEtherType = 0; 338 WORD wEtherType = 0;
335 INT iSANodeIndex = -1; 339 signed int iSANodeIndex = -1;
336 INT iDANodeIndex = -1; 340 signed int iDANodeIndex = -1;
337 UINT ii; 341 unsigned int ii;
338 UINT cbIVOffset; 342 unsigned int cbIVOffset;
339 PBYTE pbyRxSts; 343 PBYTE pbyRxSts;
340 PBYTE pbyRxRate; 344 PBYTE pbyRxRate;
341 PBYTE pbySQ; 345 PBYTE pbySQ;
342#ifdef Calcu_LinkQual 346#ifdef Calcu_LinkQual
343 PBYTE pby3SQ; 347 PBYTE pby3SQ;
344#endif 348#endif
345 UINT cbHeaderSize; 349 unsigned int cbHeaderSize;
346 PSKeyItem pKey = NULL; 350 PSKeyItem pKey = NULL;
347 WORD wRxTSC15_0 = 0; 351 WORD wRxTSC15_0 = 0;
348 DWORD dwRxTSC47_16 = 0; 352 DWORD dwRxTSC47_16 = 0;
349 SKeyItem STempKey; 353 SKeyItem STempKey;
350 // 802.11h RPI 354 // 802.11h RPI
351 //LONG ldBm = 0; 355 /* signed long ldBm = 0; */
352 BOOL bIsWEP = FALSE; 356 BOOL bIsWEP = FALSE;
353 BOOL bExtIV = FALSE; 357 BOOL bExtIV = FALSE;
354 DWORD dwWbkStatus; 358 DWORD dwWbkStatus;
@@ -368,7 +372,7 @@ RXbBulkInProcessData (
368 372
369 //[31:16]RcvByteCount ( not include 4-byte Status ) 373 //[31:16]RcvByteCount ( not include 4-byte Status )
370 dwWbkStatus = *( (PDWORD)(skb->data) ); 374 dwWbkStatus = *( (PDWORD)(skb->data) );
371 FrameSize = (UINT)(dwWbkStatus >> 16); 375 FrameSize = (unsigned int)(dwWbkStatus >> 16);
372 FrameSize += 4; 376 FrameSize += 4;
373 377
374 if (BytesToIndicate != FrameSize) { 378 if (BytesToIndicate != FrameSize) {
@@ -930,9 +934,9 @@ RXbBulkInProcessData (
930 if (bIsWEP) { 934 if (bIsWEP) {
931 WORD wLocalTSC15_0 = 0; 935 WORD wLocalTSC15_0 = 0;
932 DWORD dwLocalTSC47_16 = 0; 936 DWORD dwLocalTSC47_16 = 0;
933 ULONGLONG RSC = 0; 937 unsigned long long RSC = 0;
934 // endian issues 938 // endian issues
935 RSC = *((ULONGLONG *) &(pKey->KeyRSC)); 939 RSC = *((unsigned long long *) &(pKey->KeyRSC));
936 wLocalTSC15_0 = (WORD) RSC; 940 wLocalTSC15_0 = (WORD) RSC;
937 dwLocalTSC47_16 = (DWORD) (RSC>>16); 941 dwLocalTSC47_16 = (DWORD) (RSC>>16);
938 942
@@ -1017,9 +1021,9 @@ RXbBulkInProcessData (
1017 1021
1018 1022
1019static BOOL s_bAPModeRxCtl ( 1023static BOOL s_bAPModeRxCtl (
1020 IN PSDevice pDevice, 1024 PSDevice pDevice,
1021 IN PBYTE pbyFrame, 1025 PBYTE pbyFrame,
1022 IN INT iSANodeIndex 1026 signed int iSANodeIndex
1023 ) 1027 )
1024{ 1028{
1025 PS802_11Header p802_11Header; 1029 PS802_11Header p802_11Header;
@@ -1065,7 +1069,9 @@ static BOOL s_bAPModeRxCtl (
1065 // delcare received ps-poll event 1069 // delcare received ps-poll event
1066 if (IS_CTL_PSPOLL(pbyFrame)) { 1070 if (IS_CTL_PSPOLL(pbyFrame)) {
1067 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE; 1071 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
1068 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL); 1072 bScheduleCommand((void *) pDevice,
1073 WLAN_CMD_RX_PSPOLL,
1074 NULL);
1069 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 1\n"); 1075 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 1\n");
1070 } 1076 }
1071 else { 1077 else {
@@ -1074,7 +1080,9 @@ static BOOL s_bAPModeRxCtl (
1074 if (!IS_FC_POWERMGT(pbyFrame)) { 1080 if (!IS_FC_POWERMGT(pbyFrame)) {
1075 pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE; 1081 pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE;
1076 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE; 1082 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
1077 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL); 1083 bScheduleCommand((void *) pDevice,
1084 WLAN_CMD_RX_PSPOLL,
1085 NULL);
1078 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 2\n"); 1086 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 2\n");
1079 } 1087 }
1080 } 1088 }
@@ -1090,7 +1098,9 @@ static BOOL s_bAPModeRxCtl (
1090 if (pMgmt->sNodeDBTable[iSANodeIndex].wEnQueueCnt > 0) { 1098 if (pMgmt->sNodeDBTable[iSANodeIndex].wEnQueueCnt > 0) {
1091 pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE; 1099 pMgmt->sNodeDBTable[iSANodeIndex].bPSEnable = FALSE;
1092 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE; 1100 pMgmt->sNodeDBTable[iSANodeIndex].bRxPSPoll = TRUE;
1093 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL); 1101 bScheduleCommand((void *) pDevice,
1102 WLAN_CMD_RX_PSPOLL,
1103 NULL);
1094 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 3\n"); 1104 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dpc: WLAN_CMD_RX_PSPOLL 3\n");
1095 1105
1096 } 1106 }
@@ -1139,18 +1149,18 @@ static BOOL s_bAPModeRxCtl (
1139} 1149}
1140 1150
1141static BOOL s_bHandleRxEncryption ( 1151static BOOL s_bHandleRxEncryption (
1142 IN PSDevice pDevice, 1152 PSDevice pDevice,
1143 IN PBYTE pbyFrame, 1153 PBYTE pbyFrame,
1144 IN UINT FrameSize, 1154 unsigned int FrameSize,
1145 IN PBYTE pbyRsr, 1155 PBYTE pbyRsr,
1146 OUT PBYTE pbyNewRsr, 1156 PBYTE pbyNewRsr,
1147 OUT PSKeyItem *pKeyOut, 1157 PSKeyItem * pKeyOut,
1148 int * pbExtIV, 1158 int * pbExtIV,
1149 OUT PWORD pwRxTSC15_0, 1159 PWORD pwRxTSC15_0,
1150 OUT PDWORD pdwRxTSC47_16 1160 PDWORD pdwRxTSC47_16
1151 ) 1161 )
1152{ 1162{
1153 UINT PayloadLen = FrameSize; 1163 unsigned int PayloadLen = FrameSize;
1154 PBYTE pbyIV; 1164 PBYTE pbyIV;
1155 BYTE byKeyIdx; 1165 BYTE byKeyIdx;
1156 PSKeyItem pKey = NULL; 1166 PSKeyItem pKey = NULL;
@@ -1285,20 +1295,20 @@ static BOOL s_bHandleRxEncryption (
1285 1295
1286 1296
1287static BOOL s_bHostWepRxEncryption ( 1297static BOOL s_bHostWepRxEncryption (
1288 IN PSDevice pDevice, 1298 PSDevice pDevice,
1289 IN PBYTE pbyFrame, 1299 PBYTE pbyFrame,
1290 IN UINT FrameSize, 1300 unsigned int FrameSize,
1291 IN PBYTE pbyRsr, 1301 PBYTE pbyRsr,
1292 IN BOOL bOnFly, 1302 BOOL bOnFly,
1293 IN PSKeyItem pKey, 1303 PSKeyItem pKey,
1294 OUT PBYTE pbyNewRsr, 1304 PBYTE pbyNewRsr,
1295 int * pbExtIV, 1305 int * pbExtIV,
1296 OUT PWORD pwRxTSC15_0, 1306 PWORD pwRxTSC15_0,
1297 OUT PDWORD pdwRxTSC47_16 1307 PDWORD pdwRxTSC47_16
1298 ) 1308 )
1299{ 1309{
1300 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1310 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
1301 UINT PayloadLen = FrameSize; 1311 unsigned int PayloadLen = FrameSize;
1302 PBYTE pbyIV; 1312 PBYTE pbyIV;
1303 BYTE byKeyIdx; 1313 BYTE byKeyIdx;
1304 BYTE byDecMode = KEY_CTL_WEP; 1314 BYTE byDecMode = KEY_CTL_WEP;
@@ -1417,12 +1427,12 @@ static BOOL s_bHostWepRxEncryption (
1417 1427
1418 1428
1419static BOOL s_bAPModeRxData ( 1429static BOOL s_bAPModeRxData (
1420 IN PSDevice pDevice, 1430 PSDevice pDevice,
1421 IN struct sk_buff* skb, 1431 struct sk_buff *skb,
1422 IN UINT FrameSize, 1432 unsigned int FrameSize,
1423 IN UINT cbHeaderOffset, 1433 unsigned int cbHeaderOffset,
1424 IN INT iSANodeIndex, 1434 signed int iSANodeIndex,
1425 IN INT iDANodeIndex 1435 signed int iDANodeIndex
1426 ) 1436 )
1427 1437
1428{ 1438{
@@ -1493,7 +1503,8 @@ static BOOL s_bAPModeRxData (
1493 iDANodeIndex = 0; 1503 iDANodeIndex = 0;
1494 1504
1495 if ((pDevice->uAssocCount > 1) && (iDANodeIndex >= 0)) { 1505 if ((pDevice->uAssocCount > 1) && (iDANodeIndex >= 0)) {
1496 bRelayPacketSend(pDevice, (PBYTE)(skb->data + cbHeaderOffset), FrameSize, (UINT)iDANodeIndex); 1506 bRelayPacketSend(pDevice, (PBYTE) (skb->data + cbHeaderOffset),
1507 FrameSize, (unsigned int) iDANodeIndex);
1497 } 1508 }
1498 1509
1499 if (bRelayOnly) 1510 if (bRelayOnly)
@@ -1509,10 +1520,7 @@ static BOOL s_bAPModeRxData (
1509 1520
1510 1521
1511 1522
1512VOID 1523void RXvWorkItem(void *Context)
1513RXvWorkItem(
1514 PVOID Context
1515 )
1516{ 1524{
1517 PSDevice pDevice = (PSDevice) Context; 1525 PSDevice pDevice = (PSDevice) Context;
1518 NTSTATUS ntStatus; 1526 NTSTATUS ntStatus;
@@ -1535,10 +1543,10 @@ RXvWorkItem(
1535} 1543}
1536 1544
1537 1545
1538VOID 1546void
1539RXvFreeRCB( 1547RXvFreeRCB(
1540 IN PRCB pRCB, 1548 PRCB pRCB,
1541 IN BOOL bReAllocSkb 1549 BOOL bReAllocSkb
1542 ) 1550 )
1543{ 1551{
1544 PSDevice pDevice = (PSDevice)pRCB->pDevice; 1552 PSDevice pDevice = (PSDevice)pRCB->pDevice;
@@ -1575,10 +1583,7 @@ RXvFreeRCB(
1575} 1583}
1576 1584
1577 1585
1578VOID 1586void RXvMngWorkItem(void *Context)
1579RXvMngWorkItem(
1580 PVOID Context
1581 )
1582{ 1587{
1583 PSDevice pDevice = (PSDevice) Context; 1588 PSDevice pDevice = (PSDevice) Context;
1584 PRCB pRCB=NULL; 1589 PRCB pRCB=NULL;
@@ -1598,7 +1603,7 @@ RXvMngWorkItem(
1598 } 1603 }
1599 ASSERT(pRCB);// cannot be NULL 1604 ASSERT(pRCB);// cannot be NULL
1600 pRxPacket = &(pRCB->sMngPacket); 1605 pRxPacket = &(pRCB->sMngPacket);
1601 vMgrRxManagePacket((HANDLE)pDevice, &(pDevice->sMgmtObj), pRxPacket); 1606 vMgrRxManagePacket((void *) pDevice, &(pDevice->sMgmtObj), pRxPacket);
1602 pRCB->Ref--; 1607 pRCB->Ref--;
1603 if(pRCB->Ref == 0) { 1608 if(pRCB->Ref == 0) {
1604 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"RxvFreeMng %d %d\n",pDevice->NumRecvFreeList, pDevice->NumRecvMngList); 1609 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"RxvFreeMng %d %d\n",pDevice->NumRecvFreeList, pDevice->NumRecvMngList);
diff --git a/drivers/staging/vt6656/dpc.h b/drivers/staging/vt6656/dpc.h
index df148b45396..d4fca43af4f 100644
--- a/drivers/staging/vt6656/dpc.h
+++ b/drivers/staging/vt6656/dpc.h
@@ -41,30 +41,21 @@
41 41
42/*--------------------- Export Functions --------------------------*/ 42/*--------------------- Export Functions --------------------------*/
43 43
44VOID 44void RXvWorkItem(void *Context);
45RXvWorkItem(
46 PVOID Context
47 );
48 45
49VOID 46void RXvMngWorkItem(void *Context);
50RXvMngWorkItem(
51 PVOID Context
52 );
53 47
54VOID 48void
55RXvFreeRCB( 49RXvFreeRCB(
56 IN PRCB pRCB, 50 PRCB pRCB,
57 IN BOOL bReAllocSkb 51 BOOL bReAllocSkb
58 ); 52 );
59 53
60BOOL 54BOOL
61RXbBulkInProcessData( 55RXbBulkInProcessData(
62 IN PSDevice pDevice, 56 PSDevice pDevice,
63 IN PRCB pRCB, 57 PRCB pRCB,
64 IN ULONG BytesToIndicate 58 unsigned long BytesToIndicate
65 ); 59 );
66 60
67#endif // __RXTX_H__ 61#endif /* __RXTX_H__ */
68
69
70
diff --git a/drivers/staging/vt6656/firmware.c b/drivers/staging/vt6656/firmware.c
index 585b6b12c5b..e1f96d7086f 100644
--- a/drivers/staging/vt6656/firmware.c
+++ b/drivers/staging/vt6656/firmware.c
@@ -770,7 +770,7 @@ const BYTE abyFirmware[] = {
770 770
771BOOL 771BOOL
772FIRMWAREbDownload( 772FIRMWAREbDownload(
773 IN PSDevice pDevice 773 PSDevice pDevice
774 ) 774 )
775{ 775{
776 NDIS_STATUS NdisStatus; 776 NDIS_STATUS NdisStatus;
@@ -820,7 +820,7 @@ FIRMWAREbDownload(
820 820
821BOOL 821BOOL
822FIRMWAREbBrach2Sram( 822FIRMWAREbBrach2Sram(
823 IN PSDevice pDevice 823 PSDevice pDevice
824 ) 824 )
825{ 825{
826 NDIS_STATUS NdisStatus; 826 NDIS_STATUS NdisStatus;
@@ -845,7 +845,7 @@ FIRMWAREbBrach2Sram(
845 845
846BOOL 846BOOL
847FIRMWAREbCheckVersion( 847FIRMWAREbCheckVersion(
848 IN PSDevice pDevice 848 PSDevice pDevice
849 ) 849 )
850{ 850{
851 NTSTATUS ntStatus; 851 NTSTATUS ntStatus;
diff --git a/drivers/staging/vt6656/firmware.h b/drivers/staging/vt6656/firmware.h
index 97f8559f2a5..b2f5b5818a9 100644
--- a/drivers/staging/vt6656/firmware.h
+++ b/drivers/staging/vt6656/firmware.h
@@ -43,18 +43,17 @@
43 43
44BOOL 44BOOL
45FIRMWAREbDownload( 45FIRMWAREbDownload(
46 IN PSDevice pDevice 46 PSDevice pDevice
47 ); 47 );
48 48
49BOOL 49BOOL
50FIRMWAREbBrach2Sram( 50FIRMWAREbBrach2Sram(
51 IN PSDevice pDevice 51 PSDevice pDevice
52 ); 52 );
53 53
54BOOL 54BOOL
55FIRMWAREbCheckVersion( 55FIRMWAREbCheckVersion(
56 IN PSDevice pDevice 56 PSDevice pDevice
57 ); 57 );
58 58
59 59#endif /* __FIRMWARE_H__ */
60#endif // __FIRMWARE_H__
diff --git a/drivers/staging/vt6656/hostap.c b/drivers/staging/vt6656/hostap.c
index 1078d616c49..f70e922a615 100644
--- a/drivers/staging/vt6656/hostap.c
+++ b/drivers/staging/vt6656/hostap.c
@@ -91,10 +91,9 @@ static int hostap_enable_hostapd(PSDevice pDevice, int rtnl_locked)
91 91
92 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Enabling hostapd mode\n", dev->name); 92 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Enabling hostapd mode\n", dev->name);
93 93
94 pDevice->apdev = (struct net_device *)kmalloc(sizeof(struct net_device), GFP_KERNEL); 94 pDevice->apdev = kzalloc(sizeof(struct net_device), GFP_KERNEL);
95 if (pDevice->apdev == NULL) 95 if (pDevice->apdev == NULL)
96 return -ENOMEM; 96 return -ENOMEM;
97 memset(pDevice->apdev, 0, sizeof(struct net_device));
98 97
99 apdev_priv = netdev_priv(pDevice->apdev); 98 apdev_priv = netdev_priv(pDevice->apdev);
100 *apdev_priv = *pDevice; 99 *apdev_priv = *pDevice;
@@ -178,7 +177,7 @@ static int hostap_disable_hostapd(PSDevice pDevice, int rtnl_locked)
178 * 177 *
179 */ 178 */
180 179
181int hostap_set_hostapd(PSDevice pDevice, int val, int rtnl_locked) 180int vt6656_hostap_set_hostapd(PSDevice pDevice, int val, int rtnl_locked)
182{ 181{
183 if (val < 0 || val > 1) 182 if (val < 0 || val > 1)
184 return -EINVAL; 183 return -EINVAL;
@@ -211,7 +210,7 @@ int hostap_set_hostapd(PSDevice pDevice, int val, int rtnl_locked)
211static int hostap_remove_sta(PSDevice pDevice, 210static int hostap_remove_sta(PSDevice pDevice,
212 struct viawget_hostapd_param *param) 211 struct viawget_hostapd_param *param)
213{ 212{
214 UINT uNodeIndex; 213 unsigned int uNodeIndex;
215 214
216 215
217 if (BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) { 216 if (BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) {
@@ -240,7 +239,7 @@ static int hostap_add_sta(PSDevice pDevice,
240 struct viawget_hostapd_param *param) 239 struct viawget_hostapd_param *param)
241{ 240{
242 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 241 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
243 UINT uNodeIndex; 242 unsigned int uNodeIndex;
244 243
245 244
246 if (!BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) { 245 if (!BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) {
@@ -300,7 +299,7 @@ static int hostap_get_info_sta(PSDevice pDevice,
300 struct viawget_hostapd_param *param) 299 struct viawget_hostapd_param *param)
301{ 300{
302 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 301 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
303 UINT uNodeIndex; 302 unsigned int uNodeIndex;
304 303
305 if (BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) { 304 if (BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) {
306 param->u.get_info_sta.inactive_sec = 305 param->u.get_info_sta.inactive_sec =
@@ -334,7 +333,7 @@ static int hostap_reset_txexc_sta(PSDevice pDevice,
334 struct viawget_hostapd_param *param) 333 struct viawget_hostapd_param *param)
335{ 334{
336 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 335 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
337 UINT uNodeIndex; 336 unsigned int uNodeIndex;
338 337
339 if (BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) { 338 if (BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) {
340 pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts = 0; 339 pMgmt->sNodeDBTable[uNodeIndex].uTxAttempts = 0;
@@ -364,13 +363,13 @@ static int hostap_set_flags_sta(PSDevice pDevice,
364 struct viawget_hostapd_param *param) 363 struct viawget_hostapd_param *param)
365{ 364{
366 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 365 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
367 UINT uNodeIndex; 366 unsigned int uNodeIndex;
368 367
369 if (BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) { 368 if (BSSbIsSTAInNodeDB(pDevice, param->sta_addr, &uNodeIndex)) {
370 pMgmt->sNodeDBTable[uNodeIndex].dwFlags |= param->u.set_flags_sta.flags_or; 369 pMgmt->sNodeDBTable[uNodeIndex].dwFlags |= param->u.set_flags_sta.flags_or;
371 pMgmt->sNodeDBTable[uNodeIndex].dwFlags &= param->u.set_flags_sta.flags_and; 370 pMgmt->sNodeDBTable[uNodeIndex].dwFlags &= param->u.set_flags_sta.flags_and;
372 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " dwFlags = %x \n", 371 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " dwFlags = %x\n",
373 (UINT)pMgmt->sNodeDBTable[uNodeIndex].dwFlags); 372 (unsigned int) pMgmt->sNodeDBTable[uNodeIndex].dwFlags);
374 } 373 }
375 else { 374 else {
376 return -ENOENT; 375 return -ENOENT;
@@ -744,7 +743,7 @@ static int hostap_get_encryption(PSDevice pDevice,
744 743
745/* 744/*
746 * Description: 745 * Description:
747 * hostap_ioctl main function supported for hostap deamon. 746 * vt6656_hostap_ioctl main function supported for hostap deamon.
748 * 747 *
749 * Parameters: 748 * Parameters:
750 * In: 749 * In:
@@ -756,7 +755,7 @@ static int hostap_get_encryption(PSDevice pDevice,
756 * 755 *
757 */ 756 */
758 757
759int hostap_ioctl(PSDevice pDevice, struct iw_point *p) 758int vt6656_hostap_ioctl(PSDevice pDevice, struct iw_point *p)
760{ 759{
761 struct viawget_hostapd_param *param; 760 struct viawget_hostapd_param *param;
762 int ret = 0; 761 int ret = 0;
@@ -766,7 +765,7 @@ int hostap_ioctl(PSDevice pDevice, struct iw_point *p)
766 p->length > VIAWGET_HOSTAPD_MAX_BUF_SIZE || !p->pointer) 765 p->length > VIAWGET_HOSTAPD_MAX_BUF_SIZE || !p->pointer)
767 return -EINVAL; 766 return -EINVAL;
768 767
769 param = (struct viawget_hostapd_param *) kmalloc((int)p->length, (int)GFP_KERNEL); 768 param = kmalloc((int)p->length, (int)GFP_KERNEL);
770 if (param == NULL) 769 if (param == NULL)
771 return -ENOMEM; 770 return -ENOMEM;
772 771
@@ -844,7 +843,7 @@ int hostap_ioctl(PSDevice pDevice, struct iw_point *p)
844 return -EOPNOTSUPP; 843 return -EOPNOTSUPP;
845 844
846 default: 845 default:
847 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "hostap_ioctl: unknown cmd=%d\n", 846 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "vt6656_hostap_ioctl: unknown cmd=%d\n",
848 (int)param->cmd); 847 (int)param->cmd);
849 return -EOPNOTSUPP; 848 return -EOPNOTSUPP;
850 break; 849 break;
diff --git a/drivers/staging/vt6656/hostap.h b/drivers/staging/vt6656/hostap.h
index 8fd667b542b..b660aee1ca0 100644
--- a/drivers/staging/vt6656/hostap.h
+++ b/drivers/staging/vt6656/hostap.h
@@ -61,10 +61,7 @@
61#define ARPHRD_IEEE80211 801 61#define ARPHRD_IEEE80211 801
62#endif 62#endif
63 63
64int hostap_set_hostapd(PSDevice pDevice, int val, int rtnl_locked); 64int vt6656_hostap_set_hostapd(PSDevice pDevice, int val, int rtnl_locked);
65int hostap_ioctl(PSDevice pDevice, struct iw_point *p); 65int vt6656_hostap_ioctl(PSDevice pDevice, struct iw_point *p);
66
67#endif // __HOSTAP_H__
68
69
70 66
67#endif /* __HOSTAP_H__ */
diff --git a/drivers/staging/vt6656/int.c b/drivers/staging/vt6656/int.c
index 35053be6900..89f5b18bdf1 100644
--- a/drivers/staging/vt6656/int.c
+++ b/drivers/staging/vt6656/int.c
@@ -41,8 +41,8 @@
41#include "usbpipe.h" 41#include "usbpipe.h"
42 42
43/*--------------------- Static Definitions -------------------------*/ 43/*--------------------- Static Definitions -------------------------*/
44//static int msglevel =MSG_LEVEL_DEBUG; 44/* static int msglevel = MSG_LEVEL_DEBUG; */
45static int msglevel =MSG_LEVEL_INFO; 45static int msglevel = MSG_LEVEL_INFO;
46 46
47 47
48/*--------------------- Static Classes ----------------------------*/ 48/*--------------------- Static Classes ----------------------------*/
@@ -74,120 +74,151 @@ static int msglevel =MSG_LEVEL_INFO;
74 * 74 *
75 * Notes: 75 * Notes:
76 * 76 *
77 * USB reads are by nature 'Blocking', and when in a read, the device looks like it's 77 * USB reads are by nature 'Blocking', and when in a read, the device looks
78 * in a 'stall' condition, so we deliberately time out every second if we've gotten no data 78 * like it's in a 'stall' condition, so we deliberately time out every second
79 * if we've gotten no data
79 * 80 *
80-*/ 81-*/
81VOID 82void INTvWorkItem(void *Context)
82INTvWorkItem(
83 PVOID Context
84 )
85{ 83{
86 PSDevice pDevice = (PSDevice) Context; 84 PSDevice pDevice = (PSDevice) Context;
87 NTSTATUS ntStatus; 85 NTSTATUS ntStatus;
88 86
89 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->Interrupt Polling Thread\n"); 87 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->Interrupt Polling Thread\n");
90
91 spin_lock_irq(&pDevice->lock);
92 if (pDevice->fKillEventPollingThread != TRUE) {
93 ntStatus = PIPEnsInterruptRead(pDevice);
94 }
95 spin_unlock_irq(&pDevice->lock);
96
97 }
98 88
89 spin_lock_irq(&pDevice->lock);
90 if (pDevice->fKillEventPollingThread != TRUE)
91 ntStatus = PIPEnsInterruptRead(pDevice);
92 spin_unlock_irq(&pDevice->lock);
93}
99 94
100NTSTATUS 95NTSTATUS
101INTnsProcessData( 96INTnsProcessData(PSDevice pDevice)
102 IN PSDevice pDevice
103 )
104{ 97{
105 NTSTATUS status = STATUS_SUCCESS; 98 NTSTATUS status = STATUS_SUCCESS;
106 PSINTData pINTData; 99 PSINTData pINTData;
107 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 100 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
108 struct net_device_stats* pStats = &pDevice->stats; 101 struct net_device_stats *pStats = &pDevice->stats;
109 102
110 103 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsInterruptProcessData\n");
111 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsInterruptProcessData\n"); 104
112 105 pINTData = (PSINTData) pDevice->intBuf.pDataBuf;
113 pINTData = (PSINTData) pDevice->intBuf.pDataBuf; 106 if (pINTData->byTSR0 & TSR_VALID) {
114 if (pINTData->byTSR0 & TSR_VALID) { 107 STAvUpdateTDStatCounter(&(pDevice->scStatistic),
115 STAvUpdateTDStatCounter (&(pDevice->scStatistic), (BYTE) (pINTData->byPkt0 & 0x0F), (BYTE) (pINTData->byPkt0>>4), pINTData->byTSR0); 108 (BYTE) (pINTData->byPkt0 & 0x0F),
116 BSSvUpdateNodeTxCounter (pDevice, &(pDevice->scStatistic), pINTData->byTSR0, pINTData->byPkt0); 109 (BYTE) (pINTData->byPkt0>>4),
117 //DBG_PRN_GRP01(("TSR0 %02x\n", pINTData->byTSR0)); 110 pINTData->byTSR0);
118 } 111 BSSvUpdateNodeTxCounter(pDevice,
119 if (pINTData->byTSR1 & TSR_VALID) { 112 &(pDevice->scStatistic),
120 STAvUpdateTDStatCounter (&(pDevice->scStatistic), (BYTE) (pINTData->byPkt1 & 0x0F), (BYTE) (pINTData->byPkt1>>4), pINTData->byTSR1); 113 pINTData->byTSR0,
121 BSSvUpdateNodeTxCounter (pDevice, &(pDevice->scStatistic), pINTData->byTSR1, pINTData->byPkt1); 114 pINTData->byPkt0);
122 //DBG_PRN_GRP01(("TSR1 %02x\n", pINTData->byTSR1)); 115 /*DBG_PRN_GRP01(("TSR0 %02x\n", pINTData->byTSR0));*/
123 } 116 }
124 if (pINTData->byTSR2 & TSR_VALID) { 117 if (pINTData->byTSR1 & TSR_VALID) {
125 STAvUpdateTDStatCounter (&(pDevice->scStatistic), (BYTE) (pINTData->byPkt2 & 0x0F), (BYTE) (pINTData->byPkt2>>4), pINTData->byTSR2); 118 STAvUpdateTDStatCounter(&(pDevice->scStatistic),
126 BSSvUpdateNodeTxCounter (pDevice, &(pDevice->scStatistic), pINTData->byTSR2, pINTData->byPkt2); 119 (BYTE) (pINTData->byPkt1 & 0x0F),
127 //DBG_PRN_GRP01(("TSR2 %02x\n", pINTData->byTSR2)); 120 (BYTE) (pINTData->byPkt1>>4),
128 } 121 pINTData->byTSR1);
129 if (pINTData->byTSR3 & TSR_VALID) { 122 BSSvUpdateNodeTxCounter(pDevice,
130 STAvUpdateTDStatCounter (&(pDevice->scStatistic), (BYTE) (pINTData->byPkt3 & 0x0F), (BYTE) (pINTData->byPkt3>>4), pINTData->byTSR3); 123 &(pDevice->scStatistic),
131 BSSvUpdateNodeTxCounter (pDevice, &(pDevice->scStatistic), pINTData->byTSR3, pINTData->byPkt3); 124 pINTData->byTSR1,
132 //DBG_PRN_GRP01(("TSR3 %02x\n", pINTData->byTSR3)); 125 pINTData->byPkt1);
133 } 126 /*DBG_PRN_GRP01(("TSR1 %02x\n", pINTData->byTSR1));*/
134 if ( pINTData->byISR0 != 0 ) { 127 }
135 if (pINTData->byISR0 & ISR_BNTX) { 128 if (pINTData->byTSR2 & TSR_VALID) {
136 129 STAvUpdateTDStatCounter(&(pDevice->scStatistic),
137 if (pDevice->eOPMode == OP_MODE_AP) { 130 (BYTE) (pINTData->byPkt2 & 0x0F),
138 if(pMgmt->byDTIMCount > 0) { 131 (BYTE) (pINTData->byPkt2>>4),
139 pMgmt->byDTIMCount --; 132 pINTData->byTSR2);
140 pMgmt->sNodeDBTable[0].bRxPSPoll = FALSE; 133 BSSvUpdateNodeTxCounter(pDevice,
141 } else if(pMgmt->byDTIMCount == 0) { 134 &(pDevice->scStatistic),
142 // check if mutltcast tx bufferring 135 pINTData->byTSR2,
143 pMgmt->byDTIMCount = pMgmt->byDTIMPeriod - 1; 136 pINTData->byPkt2);
144 pMgmt->sNodeDBTable[0].bRxPSPoll = TRUE; 137 /*DBG_PRN_GRP01(("TSR2 %02x\n", pINTData->byTSR2));*/
145 if (pMgmt->sNodeDBTable[0].bPSEnable) { 138 }
146 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RX_PSPOLL, NULL); 139 if (pINTData->byTSR3 & TSR_VALID) {
147 } 140 STAvUpdateTDStatCounter(&(pDevice->scStatistic),
148 } 141 (BYTE) (pINTData->byPkt3 & 0x0F),
149 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_BECON_SEND, NULL); 142 (BYTE) (pINTData->byPkt3>>4),
150 } // if (pDevice->eOPMode == OP_MODE_AP) 143 pINTData->byTSR3);
151 144 BSSvUpdateNodeTxCounter(pDevice,
152 pDevice->bBeaconSent = TRUE; 145 &(pDevice->scStatistic),
153 } else { 146 pINTData->byTSR3,
154 pDevice->bBeaconSent = FALSE; 147 pINTData->byPkt3);
155 } 148 /*DBG_PRN_GRP01(("TSR3 %02x\n", pINTData->byTSR3));*/
156 if (pINTData->byISR0 & ISR_TBTT) { 149 }
157 if ( pDevice->bEnablePSMode ) { 150 if (pINTData->byISR0 != 0) {
158 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_TBTT_WAKEUP, NULL); 151 if (pINTData->byISR0 & ISR_BNTX) {
159 } 152 if (pDevice->eOPMode == OP_MODE_AP) {
160 if ( pDevice->bChannelSwitch ) { 153 if (pMgmt->byDTIMCount > 0) {
161 pDevice->byChannelSwitchCount--; 154 pMgmt->byDTIMCount--;
162 if ( pDevice->byChannelSwitchCount == 0 ) { 155 pMgmt->sNodeDBTable[0].bRxPSPoll =
163 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_11H_CHSW, NULL); 156 FALSE;
164 } 157 } else if (pMgmt->byDTIMCount == 0) {
165 } 158 /* check if mutltcast tx bufferring */
166 } 159 pMgmt->byDTIMCount =
167 LODWORD(pDevice->qwCurrTSF) = pINTData->dwLoTSF; 160 pMgmt->byDTIMPeriod-1;
168 HIDWORD(pDevice->qwCurrTSF) = pINTData->dwHiTSF; 161 pMgmt->sNodeDBTable[0].bRxPSPoll = TRUE;
169 //DBG_PRN_GRP01(("ISR0 = %02x ,LoTsf = %08x,HiTsf = %08x\n", pINTData->byISR0, pINTData->dwLoTSF,pINTData->dwHiTSF)); 162 if (pMgmt->sNodeDBTable[0].bPSEnable)
170 163 bScheduleCommand((void *) pDevice,
171 STAvUpdate802_11Counter(&pDevice->s802_11Counter, &pDevice->scStatistic, pINTData->byRTSSuccess, 164 WLAN_CMD_RX_PSPOLL,
172 pINTData->byRTSFail, pINTData->byACKFail, pINTData->byFCSErr ); 165 NULL);
173 STAvUpdateIsrStatCounter(&pDevice->scStatistic, pINTData->byISR0, pINTData->byISR1); 166 }
174 167 bScheduleCommand((void *) pDevice,
175 } 168 WLAN_CMD_BECON_SEND,
176 169 NULL);
177 if ( pINTData->byISR1 != 0 ) { 170 } /* if (pDevice->eOPMode == OP_MODE_AP) */
178 if (pINTData->byISR1 & ISR_GPIO3) { 171 pDevice->bBeaconSent = TRUE;
179 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_RADIO, NULL); 172 } else {
180 } 173 pDevice->bBeaconSent = FALSE;
181 } 174 }
182 pDevice->intBuf.uDataLen = 0; 175 if (pINTData->byISR0 & ISR_TBTT) {
183 pDevice->intBuf.bInUse = FALSE; 176 if (pDevice->bEnablePSMode)
184 177 bScheduleCommand((void *) pDevice,
185 pStats->tx_packets = pDevice->scStatistic.ullTsrOK; 178 WLAN_CMD_TBTT_WAKEUP,
186 pStats->tx_bytes = pDevice->scStatistic.ullTxDirectedBytes + 179 NULL);
187 pDevice->scStatistic.ullTxMulticastBytes + 180 if (pDevice->bChannelSwitch) {
188 pDevice->scStatistic.ullTxBroadcastBytes; 181 pDevice->byChannelSwitchCount--;
189 pStats->tx_errors = pDevice->scStatistic.dwTsrErr; 182 if (pDevice->byChannelSwitchCount == 0)
190 pStats->tx_dropped = pDevice->scStatistic.dwTsrErr; 183 bScheduleCommand((void *) pDevice,
191 184 WLAN_CMD_11H_CHSW,
192 return status; 185 NULL);
186 }
187 }
188 LODWORD(pDevice->qwCurrTSF) = pINTData->dwLoTSF;
189 HIDWORD(pDevice->qwCurrTSF) = pINTData->dwHiTSF;
190 /*DBG_PRN_GRP01(("ISR0 = %02x ,
191 LoTsf = %08x,
192 HiTsf = %08x\n",
193 pINTData->byISR0,
194 pINTData->dwLoTSF,
195 pINTData->dwHiTSF)); */
196
197 STAvUpdate802_11Counter(&pDevice->s802_11Counter,
198 &pDevice->scStatistic,
199 pINTData->byRTSSuccess,
200 pINTData->byRTSFail,
201 pINTData->byACKFail,
202 pINTData->byFCSErr);
203 STAvUpdateIsrStatCounter(&pDevice->scStatistic,
204 pINTData->byISR0,
205 pINTData->byISR1);
206 }
207
208 if (pINTData->byISR1 != 0)
209 if (pINTData->byISR1 & ISR_GPIO3)
210 bScheduleCommand((void *) pDevice,
211 WLAN_CMD_RADIO,
212 NULL);
213 pDevice->intBuf.uDataLen = 0;
214 pDevice->intBuf.bInUse = FALSE;
215
216 pStats->tx_packets = pDevice->scStatistic.ullTsrOK;
217 pStats->tx_bytes = pDevice->scStatistic.ullTxDirectedBytes +
218 pDevice->scStatistic.ullTxMulticastBytes +
219 pDevice->scStatistic.ullTxBroadcastBytes;
220 pStats->tx_errors = pDevice->scStatistic.dwTsrErr;
221 pStats->tx_dropped = pDevice->scStatistic.dwTsrErr;
222
223 return status;
193} 224}
diff --git a/drivers/staging/vt6656/int.h b/drivers/staging/vt6656/int.h
index 15e815a3596..cdf355130de 100644
--- a/drivers/staging/vt6656/int.h
+++ b/drivers/staging/vt6656/int.h
@@ -67,17 +67,11 @@ SINTData, *PSINTData;
67 67
68/*--------------------- Export Functions --------------------------*/ 68/*--------------------- Export Functions --------------------------*/
69 69
70VOID 70void INTvWorkItem(void *Context);
71INTvWorkItem(
72 PVOID Context
73 );
74 71
75NTSTATUS 72NTSTATUS
76INTnsProcessData( 73INTnsProcessData(
77 IN PSDevice pDevice 74 PSDevice pDevice
78 ); 75 );
79 76
80#endif // __INT_H__ 77#endif /* __INT_H__ */
81
82
83
diff --git a/drivers/staging/vt6656/iocmd.h b/drivers/staging/vt6656/iocmd.h
index 49bfe15f133..fbba1d53e49 100644
--- a/drivers/staging/vt6656/iocmd.h
+++ b/drivers/staging/vt6656/iocmd.h
@@ -37,12 +37,6 @@
37#define DEF 37#define DEF
38#endif 38#endif
39 39
40//typedef int BOOL;
41//typedef uint32_t u32;
42//typedef uint16_t u16;
43//typedef uint8_t u8;
44
45
46// ioctl Command code 40// ioctl Command code
47#define MAGIC_CODE 0x3142 41#define MAGIC_CODE 0x3142
48#define IOCTL_CMD_TEST (SIOCDEVPRIVATE + 0) 42#define IOCTL_CMD_TEST (SIOCDEVPRIVATE + 0)
@@ -50,7 +44,6 @@
50#define IOCTL_CMD_HOSTAPD (SIOCDEVPRIVATE + 2) 44#define IOCTL_CMD_HOSTAPD (SIOCDEVPRIVATE + 2)
51#define IOCTL_CMD_WPA (SIOCDEVPRIVATE + 3) 45#define IOCTL_CMD_WPA (SIOCDEVPRIVATE + 3)
52 46
53
54typedef enum tagWMAC_CMD { 47typedef enum tagWMAC_CMD {
55 48
56 WLAN_CMD_BSS_SCAN, 49 WLAN_CMD_BSS_SCAN,
@@ -90,7 +83,6 @@ typedef enum tagWZONETYPE {
90#define ADHOC_STARTED 1 83#define ADHOC_STARTED 1
91#define ADHOC_JOINTED 2 84#define ADHOC_JOINTED 2
92 85
93
94#define PHY80211a 0 86#define PHY80211a 0
95#define PHY80211b 1 87#define PHY80211b 1
96#define PHY80211g 2 88#define PHY80211g 2
@@ -109,10 +101,10 @@ typedef enum tagWZONETYPE {
109// 101//
110#pragma pack(1) 102#pragma pack(1)
111typedef struct tagSCmdRequest { 103typedef struct tagSCmdRequest {
112 U8 name[16]; 104 u8 name[16];
113 void *data; 105 void *data;
114 U16 wResult; 106 u16 wResult;
115 U16 wCmdCode; 107 u16 wCmdCode;
116} SCmdRequest, *PSCmdRequest; 108} SCmdRequest, *PSCmdRequest;
117 109
118// 110//
@@ -121,21 +113,20 @@ typedef struct tagSCmdRequest {
121 113
122typedef struct tagSCmdScan { 114typedef struct tagSCmdScan {
123 115
124 U8 ssid[SSID_MAXLEN + 2]; 116 u8 ssid[SSID_MAXLEN + 2];
125 117
126} SCmdScan, *PSCmdScan; 118} SCmdScan, *PSCmdScan;
127 119
128
129// 120//
130// BSS Join 121// BSS Join
131// 122//
132 123
133typedef struct tagSCmdBSSJoin { 124typedef struct tagSCmdBSSJoin {
134 125
135 U16 wBSSType; 126 u16 wBSSType;
136 U16 wBBPType; 127 u16 wBBPType;
137 U8 ssid[SSID_MAXLEN + 2]; 128 u8 ssid[SSID_MAXLEN + 2];
138 U32 uChannel; 129 u32 uChannel;
139 BOOL bPSEnable; 130 BOOL bPSEnable;
140 BOOL bShareKeyAuth; 131 BOOL bShareKeyAuth;
141 132
@@ -155,83 +146,80 @@ typedef struct tagSCmdZoneTypeSet {
155#ifdef WPA_SM_Transtatus 146#ifdef WPA_SM_Transtatus
156typedef struct tagSWPAResult { 147typedef struct tagSWPAResult {
157 char ifname[100]; 148 char ifname[100];
158 U8 proto; 149 u8 proto;
159 U8 key_mgmt; 150 u8 key_mgmt;
160 U8 eap_type; 151 u8 eap_type;
161 BOOL authenticated; 152 BOOL authenticated;
162} SWPAResult, *PSWPAResult; 153} SWPAResult, *PSWPAResult;
163#endif 154#endif
164 155
165typedef struct tagSCmdStartAP { 156typedef struct tagSCmdStartAP {
166 157
167 U16 wBSSType; 158 u16 wBSSType;
168 U16 wBBPType; 159 u16 wBBPType;
169 U8 ssid[SSID_MAXLEN + 2]; 160 u8 ssid[SSID_MAXLEN + 2];
170 U32 uChannel; 161 u32 uChannel;
171 U32 uBeaconInt; 162 u32 uBeaconInt;
172 BOOL bShareKeyAuth; 163 BOOL bShareKeyAuth;
173 U8 byBasicRate; 164 u8 byBasicRate;
174 165
175} SCmdStartAP, *PSCmdStartAP; 166} SCmdStartAP, *PSCmdStartAP;
176 167
177
178typedef struct tagSCmdSetWEP { 168typedef struct tagSCmdSetWEP {
179 169
180 BOOL bEnableWep; 170 BOOL bEnableWep;
181 U8 byKeyIndex; 171 u8 byKeyIndex;
182 U8 abyWepKey[WEP_NKEYS][WEP_KEYMAXLEN]; 172 u8 abyWepKey[WEP_NKEYS][WEP_KEYMAXLEN];
183 BOOL bWepKeyAvailable[WEP_NKEYS]; 173 BOOL bWepKeyAvailable[WEP_NKEYS];
184 U32 auWepKeyLength[WEP_NKEYS]; 174 u32 auWepKeyLength[WEP_NKEYS];
185 175
186} SCmdSetWEP, *PSCmdSetWEP; 176} SCmdSetWEP, *PSCmdSetWEP;
187 177
188
189
190typedef struct tagSBSSIDItem { 178typedef struct tagSBSSIDItem {
191 179
192 U32 uChannel; 180 u32 uChannel;
193 U8 abyBSSID[BSSID_LEN]; 181 u8 abyBSSID[BSSID_LEN];
194 U8 abySSID[SSID_MAXLEN + 1]; 182 u8 abySSID[SSID_MAXLEN + 1];
195 U16 wBeaconInterval; 183 u16 wBeaconInterval;
196 U16 wCapInfo; 184 u16 wCapInfo;
197 U8 byNetType; 185 u8 byNetType;
198 BOOL bWEPOn; 186 BOOL bWEPOn;
199 U32 uRSSI; 187 u32 uRSSI;
200 188
201} SBSSIDItem; 189} SBSSIDItem;
202 190
203 191
204typedef struct tagSBSSIDList { 192typedef struct tagSBSSIDList {
205 193
206 U32 uItem; 194 u32 uItem;
207 SBSSIDItem sBSSIDList[0]; 195 SBSSIDItem sBSSIDList[0];
208} SBSSIDList, *PSBSSIDList; 196} SBSSIDList, *PSBSSIDList;
209 197
210 198
211typedef struct tagSNodeItem { 199typedef struct tagSNodeItem {
212 // STA info 200 // STA info
213 U16 wAID; 201 u16 wAID;
214 U8 abyMACAddr[6]; 202 u8 abyMACAddr[6];
215 U16 wTxDataRate; 203 u16 wTxDataRate;
216 U16 wInActiveCount; 204 u16 wInActiveCount;
217 U16 wEnQueueCnt; 205 u16 wEnQueueCnt;
218 U16 wFlags; 206 u16 wFlags;
219 BOOL bPWBitOn; 207 BOOL bPWBitOn;
220 U8 byKeyIndex; 208 u8 byKeyIndex;
221 U16 wWepKeyLength; 209 u16 wWepKeyLength;
222 U8 abyWepKey[WEP_KEYMAXLEN]; 210 u8 abyWepKey[WEP_KEYMAXLEN];
223 // Auto rate fallback vars 211 // Auto rate fallback vars
224 BOOL bIsInFallback; 212 BOOL bIsInFallback;
225 U32 uTxFailures; 213 u32 uTxFailures;
226 U32 uTxAttempts; 214 u32 uTxAttempts;
227 U16 wFailureRatio; 215 u16 wFailureRatio;
228 216
229} SNodeItem; 217} SNodeItem;
230 218
231 219
232typedef struct tagSNodeList { 220typedef struct tagSNodeList {
233 221
234 U32 uItem; 222 u32 uItem;
235 SNodeItem sNodeList[0]; 223 SNodeItem sNodeList[0];
236 224
237} SNodeList, *PSNodeList; 225} SNodeList, *PSNodeList;
@@ -240,12 +228,12 @@ typedef struct tagSNodeList {
240typedef struct tagSCmdLinkStatus { 228typedef struct tagSCmdLinkStatus {
241 229
242 BOOL bLink; 230 BOOL bLink;
243 U16 wBSSType; 231 u16 wBSSType;
244 U8 byState; 232 u8 byState;
245 U8 abyBSSID[BSSID_LEN]; 233 u8 abyBSSID[BSSID_LEN];
246 U8 abySSID[SSID_MAXLEN + 2]; 234 u8 abySSID[SSID_MAXLEN + 2];
247 U32 uChannel; 235 u32 uChannel;
248 U32 uLinkRate; 236 u32 uLinkRate;
249 237
250} SCmdLinkStatus, *PSCmdLinkStatus; 238} SCmdLinkStatus, *PSCmdLinkStatus;
251 239
@@ -253,18 +241,18 @@ typedef struct tagSCmdLinkStatus {
253// 802.11 counter 241// 802.11 counter
254// 242//
255typedef struct tagSDot11MIBCount { 243typedef struct tagSDot11MIBCount {
256 U32 TransmittedFragmentCount; 244 u32 TransmittedFragmentCount;
257 U32 MulticastTransmittedFrameCount; 245 u32 MulticastTransmittedFrameCount;
258 U32 FailedCount; 246 u32 FailedCount;
259 U32 RetryCount; 247 u32 RetryCount;
260 U32 MultipleRetryCount; 248 u32 MultipleRetryCount;
261 U32 RTSSuccessCount; 249 u32 RTSSuccessCount;
262 U32 RTSFailureCount; 250 u32 RTSFailureCount;
263 U32 ACKFailureCount; 251 u32 ACKFailureCount;
264 U32 FrameDuplicateCount; 252 u32 FrameDuplicateCount;
265 U32 ReceivedFragmentCount; 253 u32 ReceivedFragmentCount;
266 U32 MulticastReceivedFrameCount; 254 u32 MulticastReceivedFrameCount;
267 U32 FCSErrorCount; 255 u32 FCSErrorCount;
268} SDot11MIBCount, *PSDot11MIBCount; 256} SDot11MIBCount, *PSDot11MIBCount;
269 257
270 258
@@ -276,119 +264,115 @@ typedef struct tagSStatMIBCount {
276 // 264 //
277 // ISR status count 265 // ISR status count
278 // 266 //
279 U32 dwIsrTx0OK; 267 u32 dwIsrTx0OK;
280 U32 dwIsrTx1OK; 268 u32 dwIsrTx1OK;
281 U32 dwIsrBeaconTxOK; 269 u32 dwIsrBeaconTxOK;
282 U32 dwIsrRxOK; 270 u32 dwIsrRxOK;
283 U32 dwIsrTBTTInt; 271 u32 dwIsrTBTTInt;
284 U32 dwIsrSTIMERInt; 272 u32 dwIsrSTIMERInt;
285 U32 dwIsrUnrecoverableError; 273 u32 dwIsrUnrecoverableError;
286 U32 dwIsrSoftInterrupt; 274 u32 dwIsrSoftInterrupt;
287 U32 dwIsrRxNoBuf; 275 u32 dwIsrRxNoBuf;
288 ///////////////////////////////////// 276 /////////////////////////////////////
289 277
290 U32 dwIsrUnknown; // unknown interrupt count 278 u32 dwIsrUnknown; /* unknown interrupt count */
291 279
292 // RSR status count 280 // RSR status count
293 // 281 //
294 U32 dwRsrFrmAlgnErr; 282 u32 dwRsrFrmAlgnErr;
295 U32 dwRsrErr; 283 u32 dwRsrErr;
296 U32 dwRsrCRCErr; 284 u32 dwRsrCRCErr;
297 U32 dwRsrCRCOk; 285 u32 dwRsrCRCOk;
298 U32 dwRsrBSSIDOk; 286 u32 dwRsrBSSIDOk;
299 U32 dwRsrADDROk; 287 u32 dwRsrADDROk;
300 U32 dwRsrICVOk; 288 u32 dwRsrICVOk;
301 U32 dwNewRsrShortPreamble; 289 u32 dwNewRsrShortPreamble;
302 U32 dwRsrLong; 290 u32 dwRsrLong;
303 U32 dwRsrRunt; 291 u32 dwRsrRunt;
304 292
305 U32 dwRsrRxControl; 293 u32 dwRsrRxControl;
306 U32 dwRsrRxData; 294 u32 dwRsrRxData;
307 U32 dwRsrRxManage; 295 u32 dwRsrRxManage;
308 296
309 U32 dwRsrRxPacket; 297 u32 dwRsrRxPacket;
310 U32 dwRsrRxOctet; 298 u32 dwRsrRxOctet;
311 U32 dwRsrBroadcast; 299 u32 dwRsrBroadcast;
312 U32 dwRsrMulticast; 300 u32 dwRsrMulticast;
313 U32 dwRsrDirected; 301 u32 dwRsrDirected;
314 // 64-bit OID 302 // 64-bit OID
315 U32 ullRsrOK; 303 u32 ullRsrOK;
316 304
317 // for some optional OIDs (64 bits) and DMI support 305 // for some optional OIDs (64 bits) and DMI support
318 U32 ullRxBroadcastBytes; 306 u32 ullRxBroadcastBytes;
319 U32 ullRxMulticastBytes; 307 u32 ullRxMulticastBytes;
320 U32 ullRxDirectedBytes; 308 u32 ullRxDirectedBytes;
321 U32 ullRxBroadcastFrames; 309 u32 ullRxBroadcastFrames;
322 U32 ullRxMulticastFrames; 310 u32 ullRxMulticastFrames;
323 U32 ullRxDirectedFrames; 311 u32 ullRxDirectedFrames;
324 312
325 U32 dwRsrRxFragment; 313 u32 dwRsrRxFragment;
326 U32 dwRsrRxFrmLen64; 314 u32 dwRsrRxFrmLen64;
327 U32 dwRsrRxFrmLen65_127; 315 u32 dwRsrRxFrmLen65_127;
328 U32 dwRsrRxFrmLen128_255; 316 u32 dwRsrRxFrmLen128_255;
329 U32 dwRsrRxFrmLen256_511; 317 u32 dwRsrRxFrmLen256_511;
330 U32 dwRsrRxFrmLen512_1023; 318 u32 dwRsrRxFrmLen512_1023;
331 U32 dwRsrRxFrmLen1024_1518; 319 u32 dwRsrRxFrmLen1024_1518;
332 320
333 // TSR0,1 status count 321 // TSR0,1 status count
334 // 322 //
335 U32 dwTsrTotalRetry[2]; // total collision retry count 323 u32 dwTsrTotalRetry[2]; /* total collision retry count */
336 U32 dwTsrOnceRetry[2]; // this packet only occur one collision 324 u32 dwTsrOnceRetry[2]; /* this packet had one collision */
337 U32 dwTsrMoreThanOnceRetry[2]; // this packet occur more than one collision 325 u32 dwTsrMoreThanOnceRetry[2]; /* this packet had many collisions */
338 U32 dwTsrRetry[2]; // this packet has ever occur collision, 326 u32 dwTsrRetry[2]; /* this packet has ever occur collision,
339 // that is (dwTsrOnceCollision0 + dwTsrMoreThanOnceCollision0) 327 * that is (dwTsrOnceCollision0 plus
340 U32 dwTsrACKData[2]; 328 * dwTsrMoreThanOnceCollision0) */
341 U32 dwTsrErr[2]; 329 u32 dwTsrACKData[2];
342 U32 dwAllTsrOK[2]; 330 u32 dwTsrErr[2];
343 U32 dwTsrRetryTimeout[2]; 331 u32 dwAllTsrOK[2];
344 U32 dwTsrTransmitTimeout[2]; 332 u32 dwTsrRetryTimeout[2];
345 333 u32 dwTsrTransmitTimeout[2];
346 U32 dwTsrTxPacket[2]; 334
347 U32 dwTsrTxOctet[2]; 335 u32 dwTsrTxPacket[2];
348 U32 dwTsrBroadcast[2]; 336 u32 dwTsrTxOctet[2];
349 U32 dwTsrMulticast[2]; 337 u32 dwTsrBroadcast[2];
350 U32 dwTsrDirected[2]; 338 u32 dwTsrMulticast[2];
339 u32 dwTsrDirected[2];
351 340
352 // RD/TD count 341 // RD/TD count
353 U32 dwCntRxFrmLength; 342 u32 dwCntRxFrmLength;
354 U32 dwCntTxBufLength; 343 u32 dwCntTxBufLength;
355 344
356 U8 abyCntRxPattern[16]; 345 u8 abyCntRxPattern[16];
357 U8 abyCntTxPattern[16]; 346 u8 abyCntTxPattern[16];
358 347
359 // Software check.... 348 /* Software check.... */
360 U32 dwCntRxDataErr; // rx buffer data software compare CRC err count 349 u32 dwCntRxDataErr; /* rx buffer data CRC err count */
361 U32 dwCntDecryptErr; // rx buffer data software compare CRC err count 350 u32 dwCntDecryptErr; /* rx buffer data CRC err count */
362 U32 dwCntRxICVErr; // rx buffer data software compare CRC err count 351 u32 dwCntRxICVErr; /* rx buffer data CRC err count */
363 U32 idxRxErrorDesc; // index for rx data error RD 352 u32 idxRxErrorDesc; /* index for rx data error RD */
364 353
365 // 64-bit OID 354 /* 64-bit OID */
366 U32 ullTsrOK[2]; 355 u32 ullTsrOK[2];
367 356
368 // for some optional OIDs (64 bits) and DMI support 357 // for some optional OIDs (64 bits) and DMI support
369 U32 ullTxBroadcastFrames[2]; 358 u32 ullTxBroadcastFrames[2];
370 U32 ullTxMulticastFrames[2]; 359 u32 ullTxMulticastFrames[2];
371 U32 ullTxDirectedFrames[2]; 360 u32 ullTxDirectedFrames[2];
372 U32 ullTxBroadcastBytes[2]; 361 u32 ullTxBroadcastBytes[2];
373 U32 ullTxMulticastBytes[2]; 362 u32 ullTxMulticastBytes[2];
374 U32 ullTxDirectedBytes[2]; 363 u32 ullTxDirectedBytes[2];
375} SStatMIBCount, *PSStatMIBCount; 364} SStatMIBCount, *PSStatMIBCount;
376 365
377
378
379
380typedef struct tagSCmdValue { 366typedef struct tagSCmdValue {
381 367
382 U32 dwValue; 368 u32 dwValue;
383 369
384} SCmdValue, *PSCmdValue; 370} SCmdValue, *PSCmdValue;
385 371
386
387// 372//
388// hostapd & viawget ioctl related 373// hostapd & viawget ioctl related
389// 374//
390 375
391
392// VIAGWET_IOCTL_HOSTAPD ioctl() cmd: 376// VIAGWET_IOCTL_HOSTAPD ioctl() cmd:
393enum { 377enum {
394 VIAWGET_HOSTAPD_FLUSH = 1, 378 VIAWGET_HOSTAPD_FLUSH = 1,
@@ -405,71 +389,62 @@ enum {
405 VIAWGET_HOSTAPD_STA_CLEAR_STATS = 12, 389 VIAWGET_HOSTAPD_STA_CLEAR_STATS = 12,
406}; 390};
407 391
408
409#define VIAWGET_HOSTAPD_GENERIC_ELEMENT_HDR_LEN \ 392#define VIAWGET_HOSTAPD_GENERIC_ELEMENT_HDR_LEN \
410((int) (&((struct viawget_hostapd_param *) 0)->u.generic_elem.data)) 393((int) (&((struct viawget_hostapd_param *) 0)->u.generic_elem.data))
411 394
412// Maximum length for algorithm names (-1 for nul termination) used in ioctl() 395// Maximum length for algorithm names (-1 for nul termination) used in ioctl()
413 396
414
415
416struct viawget_hostapd_param { 397struct viawget_hostapd_param {
417 U32 cmd; 398 u32 cmd;
418 U8 sta_addr[6]; 399 u8 sta_addr[6];
419 union { 400 union {
420 struct { 401 struct {
421 U16 aid; 402 u16 aid;
422 U16 capability; 403 u16 capability;
423 U8 tx_supp_rates; 404 u8 tx_supp_rates;
424 } add_sta; 405 } add_sta;
425 struct { 406 struct {
426 U32 inactive_sec; 407 u32 inactive_sec;
427 } get_info_sta; 408 } get_info_sta;
428 struct { 409 struct {
429 U8 alg; 410 u8 alg;
430 U32 flags; 411 u32 flags;
431 U32 err; 412 u32 err;
432 U8 idx; 413 u8 idx;
433 U8 seq[8]; 414 u8 seq[8];
434 U16 key_len; 415 u16 key_len;
435 U8 key[0]; 416 u8 key[0];
436 } crypt; 417 } crypt;
437 struct { 418 struct {
438 U32 flags_and; 419 u32 flags_and;
439 U32 flags_or; 420 u32 flags_or;
440 } set_flags_sta; 421 } set_flags_sta;
441 struct { 422 struct {
442 U16 rid; 423 u16 rid;
443 U16 len; 424 u16 len;
444 U8 data[0]; 425 u8 data[0];
445 } rid; 426 } rid;
446 struct { 427 struct {
447 U8 len; 428 u8 len;
448 U8 data[0]; 429 u8 data[0];
449 } generic_elem; 430 } generic_elem;
450 struct { 431 struct {
451 U16 cmd; 432 u16 cmd;
452 U16 reason_code; 433 u16 reason_code;
453 } mlme; 434 } mlme;
454 struct { 435 struct {
455 U8 ssid_len; 436 u8 ssid_len;
456 U8 ssid[32]; 437 u8 ssid[32];
457 } scan_req; 438 } scan_req;
458 } u; 439 } u;
459}; 440};
460 441
461
462
463/*--------------------- Export Classes ----------------------------*/ 442/*--------------------- Export Classes ----------------------------*/
464 443
465/*--------------------- Export Variables --------------------------*/ 444/*--------------------- Export Variables --------------------------*/
466 445
467
468/*--------------------- Export Types ------------------------------*/ 446/*--------------------- Export Types ------------------------------*/
469 447
470
471/*--------------------- Export Functions --------------------------*/ 448/*--------------------- Export Functions --------------------------*/
472 449
473 450#endif /* __IOCMD_H__ */
474
475#endif //__IOCMD_H__
diff --git a/drivers/staging/vt6656/ioctl.c b/drivers/staging/vt6656/ioctl.c
index 6f33005a615..19a84b66b09 100644
--- a/drivers/staging/vt6656/ioctl.c
+++ b/drivers/staging/vt6656/ioctl.c
@@ -72,16 +72,16 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
72 SNodeList sNodeList; 72 SNodeList sNodeList;
73 PSBSSIDList pList; 73 PSBSSIDList pList;
74 PSNodeList pNodeList; 74 PSNodeList pNodeList;
75 UINT cbListCount; 75 unsigned int cbListCount;
76 PKnownBSS pBSS; 76 PKnownBSS pBSS;
77 PKnownNodeDB pNode; 77 PKnownNodeDB pNode;
78 UINT ii, jj; 78 unsigned int ii, jj;
79 SCmdLinkStatus sLinkStatus; 79 SCmdLinkStatus sLinkStatus;
80 BYTE abySuppRates[] = {WLAN_EID_SUPP_RATES, 4, 0x02, 0x04, 0x0B, 0x16}; 80 BYTE abySuppRates[] = {WLAN_EID_SUPP_RATES, 4, 0x02, 0x04, 0x0B, 0x16};
81 BYTE abyNullAddr[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; 81 BYTE abyNullAddr[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
82 DWORD dwKeyIndex= 0; 82 DWORD dwKeyIndex= 0;
83 BYTE abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; 83 BYTE abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
84 LONG ldBm; 84 signed long ldBm;
85 85
86 pReq->wResult = 0; 86 pReq->wResult = 0;
87 87
@@ -100,16 +100,21 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
100 memcpy(abyScanSSID, pItemSSID, pItemSSID->len + WLAN_IEHDR_LEN); 100 memcpy(abyScanSSID, pItemSSID, pItemSSID->len + WLAN_IEHDR_LEN);
101 } 101 }
102 spin_lock_irq(&pDevice->lock); 102 spin_lock_irq(&pDevice->lock);
103 if (memcmp(pMgmt->abyCurrBSSID, &abyNullAddr[0], 6) == 0)
104 BSSvClearBSSList((HANDLE)pDevice, FALSE);
105 else
106 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass);
107 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "WLAN_CMD_BSS_SCAN..begin \n");
108 103
109 if (pItemSSID->len != 0) 104 if (memcmp(pMgmt->abyCurrBSSID, &abyNullAddr[0], 6) == 0)
110 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID); 105 BSSvClearBSSList((void *) pDevice, FALSE);
111 else 106 else
112 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); 107 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
108
109 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "WLAN_CMD_BSS_SCAN..begin\n");
110
111 if (pItemSSID->len != 0)
112 bScheduleCommand((void *) pDevice,
113 WLAN_CMD_BSSID_SCAN,
114 abyScanSSID);
115 else
116 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
117
113 spin_unlock_irq(&pDevice->lock); 118 spin_unlock_irq(&pDevice->lock);
114 break; 119 break;
115 120
@@ -207,8 +212,10 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
207 netif_stop_queue(pDevice->dev); 212 netif_stop_queue(pDevice->dev);
208 spin_lock_irq(&pDevice->lock); 213 spin_lock_irq(&pDevice->lock);
209 pMgmt->eCurrState = WMAC_STATE_IDLE; 214 pMgmt->eCurrState = WMAC_STATE_IDLE;
210 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 215 bScheduleCommand((void *) pDevice,
211 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); 216 WLAN_CMD_BSSID_SCAN,
217 pMgmt->abyDesireSSID);
218 bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
212 spin_unlock_irq(&pDevice->lock); 219 spin_unlock_irq(&pDevice->lock);
213 break; 220 break;
214 221
@@ -330,7 +337,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
330 pList->sBSSIDList[ii].wBeaconInterval = pBSS->wBeaconInterval; 337 pList->sBSSIDList[ii].wBeaconInterval = pBSS->wBeaconInterval;
331 pList->sBSSIDList[ii].wCapInfo = pBSS->wCapInfo; 338 pList->sBSSIDList[ii].wCapInfo = pBSS->wCapInfo;
332 RFvRSSITodBm(pDevice, (BYTE)(pBSS->uRSSI), &ldBm); 339 RFvRSSITodBm(pDevice, (BYTE)(pBSS->uRSSI), &ldBm);
333 pList->sBSSIDList[ii].uRSSI = (UINT)ldBm; 340 pList->sBSSIDList[ii].uRSSI = (unsigned int) ldBm;
334// pList->sBSSIDList[ii].uRSSI = pBSS->uRSSI; 341// pList->sBSSIDList[ii].uRSSI = pBSS->uRSSI;
335 memcpy(pList->sBSSIDList[ii].abyBSSID, pBSS->abyBSSID, WLAN_BSSID_LEN); 342 memcpy(pList->sBSSIDList[ii].abyBSSID, pBSS->abyBSSID, WLAN_BSSID_LEN);
336 pItemSSID = (PWLAN_IE_SSID)pBSS->abySSID; 343 pItemSSID = (PWLAN_IE_SSID)pBSS->abySSID;
@@ -412,7 +419,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
412 break; 419 break;
413 }; 420 };
414 if (sValue.dwValue == 1) { 421 if (sValue.dwValue == 1) {
415 if (hostap_set_hostapd(pDevice, 1, 1) == 0){ 422 if (vt6656_hostap_set_hostapd(pDevice, 1, 1) == 0){
416 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Enable HOSTAP\n"); 423 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Enable HOSTAP\n");
417 } 424 }
418 else { 425 else {
@@ -421,7 +428,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
421 } 428 }
422 } 429 }
423 else { 430 else {
424 hostap_set_hostapd(pDevice, 0, 1); 431 vt6656_hostap_set_hostapd(pDevice, 0, 1);
425 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Disable HOSTAP\n"); 432 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Disable HOSTAP\n");
426 } 433 }
427 434
@@ -480,7 +487,9 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
480 }; 487 };
481 if (sValue.dwValue == 1) { 488 if (sValue.dwValue == 1) {
482 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "up wpadev\n"); 489 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "up wpadev\n");
483 memcpy(pDevice->wpadev->dev_addr, pDevice->dev->dev_addr, U_ETHER_ADDR_LEN); 490 memcpy(pDevice->wpadev->dev_addr,
491 pDevice->dev->dev_addr,
492 ETH_ALEN);
484 pDevice->bWPADEVUp = TRUE; 493 pDevice->bWPADEVUp = TRUE;
485 } 494 }
486 else { 495 else {
@@ -574,7 +583,7 @@ int private_ioctl(PSDevice pDevice, struct ifreq *rq) {
574 583
575 netif_stop_queue(pDevice->dev); 584 netif_stop_queue(pDevice->dev);
576 spin_lock_irq(&pDevice->lock); 585 spin_lock_irq(&pDevice->lock);
577 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RUN_AP, NULL); 586 bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL);
578 spin_unlock_irq(&pDevice->lock); 587 spin_unlock_irq(&pDevice->lock);
579 break; 588 break;
580 589
diff --git a/drivers/staging/vt6656/ioctl.h b/drivers/staging/vt6656/ioctl.h
index 07d228399c3..caa4ac963d9 100644
--- a/drivers/staging/vt6656/ioctl.h
+++ b/drivers/staging/vt6656/ioctl.h
@@ -43,15 +43,12 @@
43int private_ioctl(PSDevice pDevice, struct ifreq *rq); 43int private_ioctl(PSDevice pDevice, struct ifreq *rq);
44 44
45/* 45/*
46VOID vConfigWEPKey ( 46void vConfigWEPKey (
47 IN PSDevice pDevice, 47 PSDevice pDevice,
48 IN DWORD dwKeyIndex, 48 DWORD dwKeyIndex,
49 IN PBYTE pbyKey, 49 PBYTE pbyKey,
50 IN ULONG uKeyLength 50 unsigned long uKeyLength
51 ); 51 );
52*/ 52*/
53 53
54#endif // __IOCTL_H__ 54#endif /* __IOCTL_H__ */
55
56
57
diff --git a/drivers/staging/vt6656/iowpa.h b/drivers/staging/vt6656/iowpa.h
index 5750b5b548e..da03edcbacb 100644
--- a/drivers/staging/vt6656/iowpa.h
+++ b/drivers/staging/vt6656/iowpa.h
@@ -153,6 +153,4 @@ struct viawget_scan_result {
153 153
154/*--------------------- Export Functions --------------------------*/ 154/*--------------------- Export Functions --------------------------*/
155 155
156 156#endif /* __IOWPA_H__ */
157
158#endif //__IOWPA_H__
diff --git a/drivers/staging/vt6656/iwctl.c b/drivers/staging/vt6656/iwctl.c
index b7c6a22fe32..fa40522d4a9 100644
--- a/drivers/staging/vt6656/iwctl.c
+++ b/drivers/staging/vt6656/iwctl.c
@@ -209,9 +209,9 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
209 209
210 spin_lock_irq(&pDevice->lock); 210 spin_lock_irq(&pDevice->lock);
211 211
212 #ifdef update_BssList 212#ifdef update_BssList
213 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 213 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
214 #endif 214#endif
215 215
216//mike add: active scan OR passive scan OR desire_ssid scan 216//mike add: active scan OR passive scan OR desire_ssid scan
217 if(wrq->length == sizeof(struct iw_scan_req)) { 217 if(wrq->length == sizeof(struct iw_scan_req)) {
@@ -229,7 +229,7 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
229 pMgmt->eScanType = WMAC_SCAN_PASSIVE; 229 pMgmt->eScanType = WMAC_SCAN_PASSIVE;
230 PRINT_K("SIOCSIWSCAN:[desired_ssid=%s,len=%d]\n",((PWLAN_IE_SSID)abyScanSSID)->abySSID, 230 PRINT_K("SIOCSIWSCAN:[desired_ssid=%s,len=%d]\n",((PWLAN_IE_SSID)abyScanSSID)->abySSID,
231 ((PWLAN_IE_SSID)abyScanSSID)->len); 231 ((PWLAN_IE_SSID)abyScanSSID)->len);
232 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID); 232 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, abyScanSSID);
233 spin_unlock_irq(&pDevice->lock); 233 spin_unlock_irq(&pDevice->lock);
234 234
235 return 0; 235 return 0;
@@ -244,7 +244,7 @@ if(pDevice->byReAssocCount > 0) { //reject scan when re-associating!
244 244
245 pMgmt->eScanType = WMAC_SCAN_PASSIVE; 245 pMgmt->eScanType = WMAC_SCAN_PASSIVE;
246 //printk("SIOCSIWSCAN:WLAN_CMD_BSSID_SCAN\n"); 246 //printk("SIOCSIWSCAN:WLAN_CMD_BSSID_SCAN\n");
247 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); 247 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
248 spin_unlock_irq(&pDevice->lock); 248 spin_unlock_irq(&pDevice->lock);
249 249
250 return 0; 250 return 0;
@@ -758,7 +758,6 @@ int iwctl_siwap(struct net_device *dev,
758 if (wrq->sa_family != ARPHRD_ETHER) 758 if (wrq->sa_family != ARPHRD_ETHER)
759 rc = -EINVAL; 759 rc = -EINVAL;
760 else { 760 else {
761 memset(pMgmt->abyDesireBSSID, 0xFF, 6);
762 memcpy(pMgmt->abyDesireBSSID, wrq->sa_data, 6); 761 memcpy(pMgmt->abyDesireBSSID, wrq->sa_data, 6);
763 762
764 //mike :add 763 //mike :add
@@ -770,7 +769,7 @@ int iwctl_siwap(struct net_device *dev,
770 //mike add: if desired AP is hidden ssid(there are two same BSSID in list), 769 //mike add: if desired AP is hidden ssid(there are two same BSSID in list),
771 // then ignore,because you don't known which one to be connect with?? 770 // then ignore,because you don't known which one to be connect with??
772 { 771 {
773 UINT ii , uSameBssidNum=0; 772 unsigned int ii, uSameBssidNum = 0;
774 for (ii = 0; ii < MAX_BSS_NUM; ii++) { 773 for (ii = 0; ii < MAX_BSS_NUM; ii++) {
775 if (pMgmt->sBSSList[ii].bActive && 774 if (pMgmt->sBSSList[ii].bActive &&
776 IS_ETH_ADDRESS_EQUAL(pMgmt->sBSSList[ii].abyBSSID,pMgmt->abyDesireBSSID)) { 775 IS_ETH_ADDRESS_EQUAL(pMgmt->sBSSList[ii].abyBSSID,pMgmt->abyDesireBSSID)) {
@@ -934,9 +933,8 @@ int iwctl_siwessid(struct net_device *dev,
934 { 933 {
935 PKnownBSS pCurr = NULL; 934 PKnownBSS pCurr = NULL;
936 BYTE abyTmpDesireSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; 935 BYTE abyTmpDesireSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
937 UINT ii , uSameBssidNum=0; 936 unsigned int ii, uSameBssidNum = 0;
938 937
939 memset(abyTmpDesireSSID,0,sizeof(abyTmpDesireSSID));
940 memcpy(abyTmpDesireSSID,pMgmt->abyDesireSSID,sizeof(abyTmpDesireSSID)); 938 memcpy(abyTmpDesireSSID,pMgmt->abyDesireSSID,sizeof(abyTmpDesireSSID));
941 pCurr = BSSpSearchBSSList(pDevice, 939 pCurr = BSSpSearchBSSList(pDevice,
942 NULL, 940 NULL,
@@ -946,10 +944,14 @@ int iwctl_siwessid(struct net_device *dev,
946 944
947 if (pCurr == NULL){ 945 if (pCurr == NULL){
948 PRINT_K("SIOCSIWESSID:hidden ssid site survey before associate.......\n"); 946 PRINT_K("SIOCSIWESSID:hidden ssid site survey before associate.......\n");
949 vResetCommandTimer((HANDLE) pDevice); 947 vResetCommandTimer((void *) pDevice);
950 pMgmt->eScanType = WMAC_SCAN_ACTIVE; 948 pMgmt->eScanType = WMAC_SCAN_ACTIVE;
951 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 949 bScheduleCommand((void *) pDevice,
952 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); 950 WLAN_CMD_BSSID_SCAN,
951 pMgmt->abyDesireSSID);
952 bScheduleCommand((void *) pDevice,
953 WLAN_CMD_SSID,
954 pMgmt->abyDesireSSID);
953 } 955 }
954 else { //mike:to find out if that desired SSID is a hidden-ssid AP , 956 else { //mike:to find out if that desired SSID is a hidden-ssid AP ,
955 // by means of judging if there are two same BSSID exist in list ? 957 // by means of judging if there are two same BSSID exist in list ?
@@ -961,10 +963,14 @@ int iwctl_siwessid(struct net_device *dev,
961 } 963 }
962 if(uSameBssidNum >= 2) { //hit: desired AP is in hidden ssid mode!!! 964 if(uSameBssidNum >= 2) { //hit: desired AP is in hidden ssid mode!!!
963 PRINT_K("SIOCSIWESSID:hidden ssid directly associate.......\n"); 965 PRINT_K("SIOCSIWESSID:hidden ssid directly associate.......\n");
964 vResetCommandTimer((HANDLE) pDevice); 966 vResetCommandTimer((void *) pDevice);
965 pMgmt->eScanType = WMAC_SCAN_PASSIVE; //this scan type,you'll submit scan result! 967 pMgmt->eScanType = WMAC_SCAN_PASSIVE; //this scan type,you'll submit scan result!
966 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 968 bScheduleCommand((void *) pDevice,
967 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, pMgmt->abyDesireSSID); 969 WLAN_CMD_BSSID_SCAN,
970 pMgmt->abyDesireSSID);
971 bScheduleCommand((void *) pDevice,
972 WLAN_CMD_SSID,
973 pMgmt->abyDesireSSID);
968 } 974 }
969 } 975 }
970 } 976 }
@@ -1434,7 +1440,7 @@ int iwctl_giwencode(struct net_device *dev,
1434 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1440 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
1435 int rc = 0; 1441 int rc = 0;
1436 char abyKey[WLAN_WEP232_KEYLEN]; 1442 char abyKey[WLAN_WEP232_KEYLEN];
1437 UINT index = (UINT)(wrq->flags & IW_ENCODE_INDEX); 1443 unsigned int index = (unsigned int)(wrq->flags & IW_ENCODE_INDEX);
1438 PSKeyItem pKey = NULL; 1444 PSKeyItem pKey = NULL;
1439 1445
1440 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCGIWENCODE\n"); 1446 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCGIWENCODE\n");
@@ -1480,7 +1486,7 @@ int iwctl_giwencode(struct net_device *dev,
1480 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1486 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
1481 char abyKey[WLAN_WEP232_KEYLEN]; 1487 char abyKey[WLAN_WEP232_KEYLEN];
1482 1488
1483 UINT index = (UINT)(wrq->flags & IW_ENCODE_INDEX); 1489 unsigned int index = (unsigned int)(wrq->flags & IW_ENCODE_INDEX);
1484 PSKeyItem pKey = NULL; 1490 PSKeyItem pKey = NULL;
1485 1491
1486 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCGIWENCODE\n"); 1492 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " SIOCGIWENCODE\n");
@@ -1556,11 +1562,11 @@ int iwctl_siwpower(struct net_device *dev,
1556 } 1562 }
1557 if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) { 1563 if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) {
1558 pDevice->ePSMode = WMAC_POWER_FAST; 1564 pDevice->ePSMode = WMAC_POWER_FAST;
1559 PSvEnablePowerSaving((HANDLE)pDevice, pMgmt->wListenInterval); 1565 PSvEnablePowerSaving((void *) pDevice, pMgmt->wListenInterval);
1560 1566
1561 } else if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_PERIOD) { 1567 } else if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_PERIOD) {
1562 pDevice->ePSMode = WMAC_POWER_FAST; 1568 pDevice->ePSMode = WMAC_POWER_FAST;
1563 PSvEnablePowerSaving((HANDLE)pDevice, pMgmt->wListenInterval); 1569 PSvEnablePowerSaving((void *) pDevice, pMgmt->wListenInterval);
1564 } 1570 }
1565 switch (wrq->flags & IW_POWER_MODE) { 1571 switch (wrq->flags & IW_POWER_MODE) {
1566 case IW_POWER_UNICAST_R: 1572 case IW_POWER_UNICAST_R:
@@ -2009,12 +2015,16 @@ int iwctl_siwmlme(struct net_device *dev,
2009 case IW_MLME_DEAUTH: 2015 case IW_MLME_DEAUTH:
2010 //this command seems to be not complete,please test it --einsnliu 2016 //this command seems to be not complete,please test it --einsnliu
2011 //printk("iwctl_siwmlme--->send DEAUTH\n"); 2017 //printk("iwctl_siwmlme--->send DEAUTH\n");
2012 //bScheduleCommand((HANDLE) pDevice, WLAN_CMD_DEAUTH, (PBYTE)&reason); 2018 /* bScheduleCommand((void *) pDevice,
2019 WLAN_CMD_DEAUTH,
2020 (PBYTE)&reason); */
2013 //break; 2021 //break;
2014 case IW_MLME_DISASSOC: 2022 case IW_MLME_DISASSOC:
2015 if(pDevice->bLinkPass == TRUE){ 2023 if(pDevice->bLinkPass == TRUE){
2016 PRINT_K("iwctl_siwmlme--->send DISASSOCIATE\n"); 2024 PRINT_K("iwctl_siwmlme--->send DISASSOCIATE\n");
2017 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL); 2025 bScheduleCommand((void *) pDevice,
2026 WLAN_CMD_DISASSOCIATE,
2027 NULL);
2018 } 2028 }
2019 break; 2029 break;
2020 default: 2030 default:
diff --git a/drivers/staging/vt6656/iwctl.h b/drivers/staging/vt6656/iwctl.h
index 3096de0ba1b..df9a4cf3baa 100644
--- a/drivers/staging/vt6656/iwctl.h
+++ b/drivers/staging/vt6656/iwctl.h
@@ -223,7 +223,4 @@ int iwctl_siwmlme(struct net_device *dev,
223extern const struct iw_handler_def iwctl_handler_def; 223extern const struct iw_handler_def iwctl_handler_def;
224extern const struct iw_priv_args iwctl_private_args; 224extern const struct iw_priv_args iwctl_private_args;
225 225
226#endif // __IWCTL_H__ 226#endif /* __IWCTL_H__ */
227
228
229
diff --git a/drivers/staging/vt6656/key.c b/drivers/staging/vt6656/key.c
index 13fc69a1a08..b0890c181e7 100644
--- a/drivers/staging/vt6656/key.c
+++ b/drivers/staging/vt6656/key.c
@@ -60,8 +60,8 @@ static int msglevel =MSG_LEVEL_INFO;
60/*--------------------- Static Variables --------------------------*/ 60/*--------------------- Static Variables --------------------------*/
61 61
62/*--------------------- Static Functions --------------------------*/ 62/*--------------------- Static Functions --------------------------*/
63static VOID 63static void s_vCheckKeyTableValid(void *pDeviceHandler,
64s_vCheckKeyTableValid (PVOID pDeviceHandler, PSKeyManagement pTable) 64 PSKeyManagement pTable)
65{ 65{
66 PSDevice pDevice = (PSDevice) pDeviceHandler; 66 PSDevice pDevice = (PSDevice) pDeviceHandler;
67 int i; 67 int i;
@@ -112,7 +112,7 @@ s_vCheckKeyTableValid (PVOID pDeviceHandler, PSKeyManagement pTable)
112 * Return Value: none 112 * Return Value: none
113 * 113 *
114 */ 114 */
115VOID KeyvInitTable(PVOID pDeviceHandler, PSKeyManagement pTable) 115void KeyvInitTable(void *pDeviceHandler, PSKeyManagement pTable)
116{ 116{
117 PSDevice pDevice = (PSDevice) pDeviceHandler; 117 PSDevice pDevice = (PSDevice) pDeviceHandler;
118 int i; 118 int i;
@@ -123,10 +123,12 @@ VOID KeyvInitTable(PVOID pDeviceHandler, PSKeyManagement pTable)
123 for (i=0;i<MAX_KEY_TABLE;i++) { 123 for (i=0;i<MAX_KEY_TABLE;i++) {
124 pTable->KeyTable[i].bInUse = FALSE; 124 pTable->KeyTable[i].bInUse = FALSE;
125 pTable->KeyTable[i].PairwiseKey.bKeyValid = FALSE; 125 pTable->KeyTable[i].PairwiseKey.bKeyValid = FALSE;
126 pTable->KeyTable[i].PairwiseKey.pvKeyTable = (PVOID)&pTable->KeyTable[i]; 126 pTable->KeyTable[i].PairwiseKey.pvKeyTable =
127 (void *)&pTable->KeyTable[i];
127 for (jj=0; jj < MAX_GROUP_KEY; jj++) { 128 for (jj=0; jj < MAX_GROUP_KEY; jj++) {
128 pTable->KeyTable[i].GroupKey[jj].bKeyValid = FALSE; 129 pTable->KeyTable[i].GroupKey[jj].bKeyValid = FALSE;
129 pTable->KeyTable[i].GroupKey[jj].pvKeyTable = (PVOID) &(pTable->KeyTable[i]); 130 pTable->KeyTable[i].GroupKey[jj].pvKeyTable =
131 (void *) &(pTable->KeyTable[i]);
130 } 132 }
131 pTable->KeyTable[i].wKeyCtl = 0; 133 pTable->KeyTable[i].wKeyCtl = 0;
132 pTable->KeyTable[i].dwGTKeyIndex = 0; 134 pTable->KeyTable[i].dwGTKeyIndex = 0;
@@ -162,12 +164,8 @@ VOID KeyvInitTable(PVOID pDeviceHandler, PSKeyManagement pTable)
162 * Return Value: TRUE if found otherwise FALSE 164 * Return Value: TRUE if found otherwise FALSE
163 * 165 *
164 */ 166 */
165BOOL KeybGetKey ( 167BOOL KeybGetKey(PSKeyManagement pTable, PBYTE pbyBSSID, DWORD dwKeyIndex,
166 IN PSKeyManagement pTable, 168 PSKeyItem *pKey)
167 IN PBYTE pbyBSSID,
168 IN DWORD dwKeyIndex,
169 OUT PSKeyItem *pKey
170 )
171{ 169{
172 int i; 170 int i;
173 171
@@ -220,12 +218,12 @@ BOOL KeybGetKey (
220 * Return Value: TRUE if success otherwise FALSE 218 * Return Value: TRUE if success otherwise FALSE
221 * 219 *
222 */ 220 */
223BOOL KeybSetKey ( 221BOOL KeybSetKey(
224 PVOID pDeviceHandler, 222 void *pDeviceHandler,
225 PSKeyManagement pTable, 223 PSKeyManagement pTable,
226 PBYTE pbyBSSID, 224 PBYTE pbyBSSID,
227 DWORD dwKeyIndex, 225 DWORD dwKeyIndex,
228 ULONG uKeyLength, 226 unsigned long uKeyLength,
229 PQWORD pKeyRSC, 227 PQWORD pKeyRSC,
230 PBYTE pbyKey, 228 PBYTE pbyKey,
231 BYTE byKeyDecMode 229 BYTE byKeyDecMode
@@ -233,9 +231,9 @@ BOOL KeybSetKey (
233{ 231{
234 PSDevice pDevice = (PSDevice) pDeviceHandler; 232 PSDevice pDevice = (PSDevice) pDeviceHandler;
235 int i,j; 233 int i,j;
236 UINT ii; 234 unsigned int ii;
237 PSKeyItem pKey; 235 PSKeyItem pKey;
238 UINT uKeyIdx; 236 unsigned int uKeyIdx;
239 237
240 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Enter KeybSetKey: %lX\n", dwKeyIndex); 238 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Enter KeybSetKey: %lX\n", dwKeyIndex);
241 239
@@ -312,7 +310,7 @@ BOOL KeybSetKey (
312 } 310 }
313 } 311 }
314 if (j < (MAX_KEY_TABLE-1)) { 312 if (j < (MAX_KEY_TABLE-1)) {
315 memcpy(pTable->KeyTable[j].abyBSSID,pbyBSSID,U_ETHER_ADDR_LEN); 313 memcpy(pTable->KeyTable[j].abyBSSID, pbyBSSID, ETH_ALEN);
316 pTable->KeyTable[j].bInUse = TRUE; 314 pTable->KeyTable[j].bInUse = TRUE;
317 if ((dwKeyIndex & PAIRWISE_KEY) != 0) { 315 if ((dwKeyIndex & PAIRWISE_KEY) != 0) {
318 // Pairwise key 316 // Pairwise key
@@ -393,8 +391,8 @@ BOOL KeybSetKey (
393 * Return Value: TRUE if success otherwise FALSE 391 * Return Value: TRUE if success otherwise FALSE
394 * 392 *
395 */ 393 */
396BOOL KeybRemoveKey ( 394BOOL KeybRemoveKey(
397 PVOID pDeviceHandler, 395 void *pDeviceHandler,
398 PSKeyManagement pTable, 396 PSKeyManagement pTable,
399 PBYTE pbyBSSID, 397 PBYTE pbyBSSID,
400 DWORD dwKeyIndex 398 DWORD dwKeyIndex
@@ -474,8 +472,8 @@ BOOL KeybRemoveKey (
474 * Return Value: TRUE if success otherwise FALSE 472 * Return Value: TRUE if success otherwise FALSE
475 * 473 *
476 */ 474 */
477BOOL KeybRemoveAllKey ( 475BOOL KeybRemoveAllKey(
478 PVOID pDeviceHandler, 476 void *pDeviceHandler,
479 PSKeyManagement pTable, 477 PSKeyManagement pTable,
480 PBYTE pbyBSSID 478 PBYTE pbyBSSID
481 ) 479 )
@@ -510,8 +508,8 @@ BOOL KeybRemoveAllKey (
510 * Return Value: TRUE if success otherwise FALSE 508 * Return Value: TRUE if success otherwise FALSE
511 * 509 *
512 */ 510 */
513VOID KeyvRemoveWEPKey ( 511void KeyvRemoveWEPKey(
514 PVOID pDeviceHandler, 512 void *pDeviceHandler,
515 PSKeyManagement pTable, 513 PSKeyManagement pTable,
516 DWORD dwKeyIndex 514 DWORD dwKeyIndex
517 ) 515 )
@@ -533,8 +531,8 @@ VOID KeyvRemoveWEPKey (
533 return; 531 return;
534} 532}
535 533
536VOID KeyvRemoveAllWEPKey ( 534void KeyvRemoveAllWEPKey(
537 PVOID pDeviceHandler, 535 void *pDeviceHandler,
538 PSKeyManagement pTable 536 PSKeyManagement pTable
539 ) 537 )
540{ 538{
@@ -561,12 +559,8 @@ VOID KeyvRemoveAllWEPKey (
561 * Return Value: TRUE if found otherwise FALSE 559 * Return Value: TRUE if found otherwise FALSE
562 * 560 *
563 */ 561 */
564BOOL KeybGetTransmitKey ( 562BOOL KeybGetTransmitKey(PSKeyManagement pTable, PBYTE pbyBSSID, DWORD dwKeyType,
565 IN PSKeyManagement pTable, 563 PSKeyItem *pKey)
566 IN PBYTE pbyBSSID,
567 IN DWORD dwKeyType,
568 OUT PSKeyItem *pKey
569 )
570{ 564{
571 int i, ii; 565 int i, ii;
572 566
@@ -641,10 +635,7 @@ BOOL KeybGetTransmitKey (
641 * Return Value: TRUE if found otherwise FALSE 635 * Return Value: TRUE if found otherwise FALSE
642 * 636 *
643 */ 637 */
644BOOL KeybCheckPairewiseKey ( 638BOOL KeybCheckPairewiseKey(PSKeyManagement pTable, PSKeyItem *pKey)
645 IN PSKeyManagement pTable,
646 OUT PSKeyItem *pKey
647 )
648{ 639{
649 int i; 640 int i;
650 641
@@ -675,23 +666,23 @@ BOOL KeybCheckPairewiseKey (
675 * Return Value: TRUE if success otherwise FALSE 666 * Return Value: TRUE if success otherwise FALSE
676 * 667 *
677 */ 668 */
678BOOL KeybSetDefaultKey ( 669BOOL KeybSetDefaultKey(
679 PVOID pDeviceHandler, 670 void *pDeviceHandler,
680 PSKeyManagement pTable, 671 PSKeyManagement pTable,
681 DWORD dwKeyIndex, 672 DWORD dwKeyIndex,
682 ULONG uKeyLength, 673 unsigned long uKeyLength,
683 PQWORD pKeyRSC, 674 PQWORD pKeyRSC,
684 PBYTE pbyKey, 675 PBYTE pbyKey,
685 BYTE byKeyDecMode 676 BYTE byKeyDecMode
686 ) 677 )
687{ 678{
688 PSDevice pDevice = (PSDevice) pDeviceHandler; 679 PSDevice pDevice = (PSDevice) pDeviceHandler;
689 UINT ii; 680 unsigned int ii;
690 PSKeyItem pKey; 681 PSKeyItem pKey;
691 UINT uKeyIdx; 682 unsigned int uKeyIdx;
692
693 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Enter KeybSetDefaultKey: %1x, %d \n", (int)dwKeyIndex, (int)uKeyLength);
694 683
684 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Enter KeybSetDefaultKey: %1x, %d\n",
685 (int) dwKeyIndex, (int) uKeyLength);
695 686
696 if ((dwKeyIndex & PAIRWISE_KEY) != 0) { // Pairwise key 687 if ((dwKeyIndex & PAIRWISE_KEY) != 0) { // Pairwise key
697 return (FALSE); 688 return (FALSE);
@@ -700,7 +691,7 @@ BOOL KeybSetDefaultKey (
700 } 691 }
701 692
702 pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = TRUE; 693 pTable->KeyTable[MAX_KEY_TABLE-1].bInUse = TRUE;
703 for(ii=0;ii<U_ETHER_ADDR_LEN;ii++) 694 for (ii = 0; ii < ETH_ALEN; ii++)
704 pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF; 695 pTable->KeyTable[MAX_KEY_TABLE-1].abyBSSID[ii] = 0xFF;
705 696
706 // Group key 697 // Group key
@@ -783,11 +774,11 @@ BOOL KeybSetDefaultKey (
783 * Return Value: TRUE if success otherwise FALSE 774 * Return Value: TRUE if success otherwise FALSE
784 * 775 *
785 */ 776 */
786BOOL KeybSetAllGroupKey ( 777BOOL KeybSetAllGroupKey(
787 PVOID pDeviceHandler, 778 void *pDeviceHandler,
788 PSKeyManagement pTable, 779 PSKeyManagement pTable,
789 DWORD dwKeyIndex, 780 DWORD dwKeyIndex,
790 ULONG uKeyLength, 781 unsigned long uKeyLength,
791 PQWORD pKeyRSC, 782 PQWORD pKeyRSC,
792 PBYTE pbyKey, 783 PBYTE pbyKey,
793 BYTE byKeyDecMode 784 BYTE byKeyDecMode
@@ -795,9 +786,9 @@ BOOL KeybSetAllGroupKey (
795{ 786{
796 PSDevice pDevice = (PSDevice) pDeviceHandler; 787 PSDevice pDevice = (PSDevice) pDeviceHandler;
797 int i; 788 int i;
798 UINT ii; 789 unsigned int ii;
799 PSKeyItem pKey; 790 PSKeyItem pKey;
800 UINT uKeyIdx; 791 unsigned int uKeyIdx;
801 792
802 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Enter KeybSetAllGroupKey: %lX\n", dwKeyIndex); 793 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Enter KeybSetAllGroupKey: %lX\n", dwKeyIndex);
803 794
diff --git a/drivers/staging/vt6656/key.h b/drivers/staging/vt6656/key.h
index b15a64cb386..f749c7a027d 100644
--- a/drivers/staging/vt6656/key.h
+++ b/drivers/staging/vt6656/key.h
@@ -58,7 +58,7 @@
58typedef struct tagSKeyItem 58typedef struct tagSKeyItem
59{ 59{
60 BOOL bKeyValid; 60 BOOL bKeyValid;
61 ULONG uKeyLength; 61 unsigned long uKeyLength;
62 BYTE abyKey[MAX_KEY_LEN]; 62 BYTE abyKey[MAX_KEY_LEN];
63 QWORD KeyRSC; 63 QWORD KeyRSC;
64 DWORD dwTSC47_16; 64 DWORD dwTSC47_16;
@@ -66,12 +66,12 @@ typedef struct tagSKeyItem
66 BYTE byCipherSuite; 66 BYTE byCipherSuite;
67 BYTE byReserved0; 67 BYTE byReserved0;
68 DWORD dwKeyIndex; 68 DWORD dwKeyIndex;
69 PVOID pvKeyTable; 69 void *pvKeyTable;
70} SKeyItem, *PSKeyItem; //64 70} SKeyItem, *PSKeyItem; //64
71 71
72typedef struct tagSKeyTable 72typedef struct tagSKeyTable
73{ 73{
74 BYTE abyBSSID[U_ETHER_ADDR_LEN]; //6 74 BYTE abyBSSID[ETH_ALEN]; /* 6 */
75 BYTE byReserved0[2]; //8 75 BYTE byReserved0[2]; //8
76 SKeyItem PairwiseKey; 76 SKeyItem PairwiseKey;
77 SKeyItem GroupKey[MAX_GROUP_KEY]; //64*5 = 320, 320+8=328 77 SKeyItem GroupKey[MAX_GROUP_KEY]; //64*5 = 320, 320+8=328
@@ -97,81 +97,69 @@ typedef struct tagSKeyManagement
97 97
98/*--------------------- Export Functions --------------------------*/ 98/*--------------------- Export Functions --------------------------*/
99 99
100VOID KeyvInitTable(PVOID pDeviceHandler, PSKeyManagement pTable); 100void KeyvInitTable(void *pDeviceHandler, PSKeyManagement pTable);
101 101
102BOOL KeybGetKey( 102BOOL KeybGetKey(PSKeyManagement pTable, PBYTE pbyBSSID, DWORD dwKeyIndex,
103 IN PSKeyManagement pTable, 103 PSKeyItem *pKey);
104 IN PBYTE pbyBSSID,
105 IN DWORD dwKeyIndex,
106 OUT PSKeyItem *pKey
107 );
108 104
109BOOL KeybSetKey( 105BOOL KeybSetKey(
110 PVOID pDeviceHandler, 106 void *pDeviceHandler,
111 PSKeyManagement pTable, 107 PSKeyManagement pTable,
112 PBYTE pbyBSSID, 108 PBYTE pbyBSSID,
113 DWORD dwKeyIndex, 109 DWORD dwKeyIndex,
114 ULONG uKeyLength, 110 unsigned long uKeyLength,
115 PQWORD pKeyRSC, 111 PQWORD pKeyRSC,
116 PBYTE pbyKey, 112 PBYTE pbyKey,
117 BYTE byKeyDecMode 113 BYTE byKeyDecMode
118 ); 114 );
119 115
120BOOL KeybRemoveKey( 116BOOL KeybRemoveKey(
121 PVOID pDeviceHandler, 117 void *pDeviceHandler,
122 PSKeyManagement pTable, 118 PSKeyManagement pTable,
123 PBYTE pbyBSSID, 119 PBYTE pbyBSSID,
124 DWORD dwKeyIndex 120 DWORD dwKeyIndex
125 ); 121 );
126 122
127BOOL KeybRemoveAllKey ( 123BOOL KeybRemoveAllKey(
128 PVOID pDeviceHandler, 124 void *pDeviceHandler,
129 PSKeyManagement pTable, 125 PSKeyManagement pTable,
130 PBYTE pbyBSSID 126 PBYTE pbyBSSID
131 ); 127 );
132 128
133VOID KeyvRemoveWEPKey( 129void KeyvRemoveWEPKey(
134 PVOID pDeviceHandler, 130 void *pDeviceHandler,
135 PSKeyManagement pTable, 131 PSKeyManagement pTable,
136 DWORD dwKeyIndex 132 DWORD dwKeyIndex
137 ); 133 );
138 134
139VOID KeyvRemoveAllWEPKey( 135void KeyvRemoveAllWEPKey(
140 PVOID pDeviceHandler, 136 void *pDeviceHandler,
141 PSKeyManagement pTable 137 PSKeyManagement pTable
142 ); 138 );
143 139
144BOOL KeybGetTransmitKey( 140BOOL KeybGetTransmitKey(PSKeyManagement pTable, PBYTE pbyBSSID, DWORD dwKeyType,
145 IN PSKeyManagement pTable, 141 PSKeyItem *pKey);
146 IN PBYTE pbyBSSID,
147 IN DWORD dwKeyType,
148 OUT PSKeyItem *pKey
149 );
150 142
151BOOL KeybCheckPairewiseKey( 143BOOL KeybCheckPairewiseKey(PSKeyManagement pTable, PSKeyItem *pKey);
152 IN PSKeyManagement pTable,
153 OUT PSKeyItem *pKey
154 );
155 144
156BOOL KeybSetDefaultKey ( 145BOOL KeybSetDefaultKey(
157 PVOID pDeviceHandler, 146 void *pDeviceHandler,
158 PSKeyManagement pTable, 147 PSKeyManagement pTable,
159 DWORD dwKeyIndex, 148 DWORD dwKeyIndex,
160 ULONG uKeyLength, 149 unsigned long uKeyLength,
161 PQWORD pKeyRSC, 150 PQWORD pKeyRSC,
162 PBYTE pbyKey, 151 PBYTE pbyKey,
163 BYTE byKeyDecMode 152 BYTE byKeyDecMode
164 ); 153 );
165 154
166BOOL KeybSetAllGroupKey ( 155BOOL KeybSetAllGroupKey(
167 PVOID pDeviceHandler, 156 void *pDeviceHandler,
168 PSKeyManagement pTable, 157 PSKeyManagement pTable,
169 DWORD dwKeyIndex, 158 DWORD dwKeyIndex,
170 ULONG uKeyLength, 159 unsigned long uKeyLength,
171 PQWORD pKeyRSC, 160 PQWORD pKeyRSC,
172 PBYTE pbyKey, 161 PBYTE pbyKey,
173 BYTE byKeyDecMode 162 BYTE byKeyDecMode
174 ); 163 );
175 164
176#endif // __KEY_H__ 165#endif /* __KEY_H__ */
177
diff --git a/drivers/staging/vt6656/mac.c b/drivers/staging/vt6656/mac.c
index 55a798668fa..0ab3db025f3 100644
--- a/drivers/staging/vt6656/mac.c
+++ b/drivers/staging/vt6656/mac.c
@@ -70,7 +70,7 @@ static int msglevel =MSG_LEVEL_INFO;
70 */ 70 */
71void MACvSetMultiAddrByHash (PSDevice pDevice, BYTE byHashIdx) 71void MACvSetMultiAddrByHash (PSDevice pDevice, BYTE byHashIdx)
72{ 72{
73 UINT uByteIdx; 73 unsigned int uByteIdx;
74 BYTE byBitMask; 74 BYTE byBitMask;
75 BYTE pbyData[2]; 75 BYTE pbyData[2];
76 76
@@ -110,7 +110,7 @@ void MACvSetMultiAddrByHash (PSDevice pDevice, BYTE byHashIdx)
110 * Return Value: none 110 * Return Value: none
111 * 111 *
112 */ 112 */
113VOID MACvWriteMultiAddr (PSDevice pDevice, UINT uByteIdx, BYTE byData) 113void MACvWriteMultiAddr(PSDevice pDevice, unsigned int uByteIdx, BYTE byData)
114{ 114{
115 BYTE byData1; 115 BYTE byData1;
116 116
@@ -199,7 +199,7 @@ BYTE pbyData[4];
199 * Return Value: none 199 * Return Value: none
200 * 200 *
201 */ 201 */
202void MACvDisableKeyEntry (PSDevice pDevice, UINT uEntryIdx) 202void MACvDisableKeyEntry(PSDevice pDevice, unsigned int uEntryIdx)
203{ 203{
204WORD wOffset; 204WORD wOffset;
205BYTE byData; 205BYTE byData;
@@ -239,7 +239,9 @@ BYTE byData;
239 * Return Value: none 239 * Return Value: none
240 * 240 *
241 */ 241 */
242void MACvSetKeyEntry (PSDevice pDevice, WORD wKeyCtl, UINT uEntryIdx, UINT uKeyIdx, PBYTE pbyAddr, PDWORD pdwKey) 242void MACvSetKeyEntry(PSDevice pDevice, WORD wKeyCtl,
243 unsigned int uEntryIdx, unsigned int uKeyIdx,
244 PBYTE pbyAddr, PDWORD pdwKey)
243{ 245{
244PBYTE pbyKey; 246PBYTE pbyKey;
245WORD wOffset; 247WORD wOffset;
@@ -247,10 +249,6 @@ DWORD dwData1,dwData2;
247int ii; 249int ii;
248BYTE pbyData[24]; 250BYTE pbyData[24];
249 251
250
251
252
253
254 if ( pDevice->byLocalID <= MAC_REVISION_A1 ) { 252 if ( pDevice->byLocalID <= MAC_REVISION_A1 ) {
255 if ( pDevice->sMgmtObj.byCSSPK == KEY_CTL_CCMP ) 253 if ( pDevice->sMgmtObj.byCSSPK == KEY_CTL_CCMP )
256 return; 254 return;
diff --git a/drivers/staging/vt6656/mac.h b/drivers/staging/vt6656/mac.h
index fe99e3df2a5..775c70928ec 100644
--- a/drivers/staging/vt6656/mac.h
+++ b/drivers/staging/vt6656/mac.h
@@ -421,12 +421,13 @@
421/*--------------------- Export Functions --------------------------*/ 421/*--------------------- Export Functions --------------------------*/
422 422
423void MACvSetMultiAddrByHash (PSDevice pDevice, BYTE byHashIdx); 423void MACvSetMultiAddrByHash (PSDevice pDevice, BYTE byHashIdx);
424VOID MACvWriteMultiAddr (PSDevice pDevice, UINT uByteIdx, BYTE byData); 424void MACvWriteMultiAddr(PSDevice pDevice, unsigned int uByteIdx, BYTE byData);
425BOOL MACbShutdown(PSDevice pDevice);; 425BOOL MACbShutdown(PSDevice pDevice);;
426void MACvSetBBType(PSDevice pDevice,BYTE byType); 426void MACvSetBBType(PSDevice pDevice,BYTE byType);
427void MACvSetMISCFifo (PSDevice pDevice, WORD wOffset, DWORD dwData); 427void MACvSetMISCFifo (PSDevice pDevice, WORD wOffset, DWORD dwData);
428void MACvDisableKeyEntry(PSDevice pDevice, UINT uEntryIdx); 428void MACvDisableKeyEntry(PSDevice pDevice, unsigned int uEntryIdx);
429void MACvSetKeyEntry(PSDevice pDevice, WORD wKeyCtl, UINT uEntryIdx, UINT uKeyIdx, PBYTE pbyAddr, PDWORD pdwKey); 429void MACvSetKeyEntry(PSDevice pDevice, WORD wKeyCtl, unsigned int uEntryIdx,
430 unsigned int uKeyIdx, PBYTE pbyAddr, PDWORD pdwKey);
430 431
431void MACvRegBitsOff(PSDevice pDevice, BYTE byRegOfs, BYTE byBits); 432void MACvRegBitsOff(PSDevice pDevice, BYTE byRegOfs, BYTE byBits);
432void MACvRegBitsOn(PSDevice pDevice, BYTE byRegOfs, BYTE byBits); 433void MACvRegBitsOn(PSDevice pDevice, BYTE byRegOfs, BYTE byBits);
@@ -439,4 +440,4 @@ void MACvEnableBarkerPreambleMd(PSDevice pDevice);
439void MACvDisableBarkerPreambleMd(PSDevice pDevice); 440void MACvDisableBarkerPreambleMd(PSDevice pDevice);
440void MACvWriteBeaconInterval(PSDevice pDevice, WORD wInterval); 441void MACvWriteBeaconInterval(PSDevice pDevice, WORD wInterval);
441 442
442#endif // __MAC_H__ 443#endif /* __MAC_H__ */
diff --git a/drivers/staging/vt6656/main_usb.c b/drivers/staging/vt6656/main_usb.c
index 49270db98fb..098b0455e32 100644
--- a/drivers/staging/vt6656/main_usb.c
+++ b/drivers/staging/vt6656/main_usb.c
@@ -26,7 +26,7 @@
26 * 26 *
27 * Functions: 27 * Functions:
28 * 28 *
29 * vntwusb_found1 - module initial (insmod) driver entry 29 * vt6656_probe - module initial (insmod) driver entry
30 * device_remove1 - module remove entry 30 * device_remove1 - module remove entry
31 * device_open - allocate dma/descripter resource & initial mac/bbp function 31 * device_open - allocate dma/descripter resource & initial mac/bbp function
32 * device_xmit - asynchrous data tx function 32 * device_xmit - asynchrous data tx function
@@ -222,15 +222,11 @@ DEVICE_PARAM(b80211hEnable, "802.11h mode");
222// Static vars definitions 222// Static vars definitions
223// 223//
224 224
225 225static struct usb_device_id vt6656_table[] __devinitdata = {
226
227static struct usb_device_id vntwusb_table[] = {
228 {USB_DEVICE(VNT_USB_VENDOR_ID, VNT_USB_PRODUCT_ID)}, 226 {USB_DEVICE(VNT_USB_VENDOR_ID, VNT_USB_PRODUCT_ID)},
229 {} 227 {}
230}; 228};
231 229
232
233
234// Frequency list (map channels to frequencies) 230// Frequency list (map channels to frequencies)
235/* 231/*
236static const long frequency_list[] = { 232static const long frequency_list[] = {
@@ -250,15 +246,17 @@ static const long frequency_list[] = {
250static const struct iw_handler_def iwctl_handler_def; 246static const struct iw_handler_def iwctl_handler_def;
251*/ 247*/
252 248
249/*--------------------- Static Functions --------------------------*/
253 250
251static int vt6656_probe(struct usb_interface *intf,
252 const struct usb_device_id *id);
253static void vt6656_disconnect(struct usb_interface *intf);
254 254
255/*--------------------- Static Functions --------------------------*/
256static int vntwusb_found1(struct usb_interface *intf, const struct usb_device_id *id);
257static void vntwusb_disconnect(struct usb_interface *intf);
258#ifdef CONFIG_PM /* Minimal support for suspend and resume */ 255#ifdef CONFIG_PM /* Minimal support for suspend and resume */
259static int vntwusb_suspend(struct usb_interface *intf, pm_message_t message); 256static int vt6656_suspend(struct usb_interface *intf, pm_message_t message);
260static int vntwusb_resume(struct usb_interface *intf); 257static int vt6656_resume(struct usb_interface *intf);
261#endif 258#endif /* CONFIG_PM */
259
262static struct net_device_stats *device_get_stats(struct net_device *dev); 260static struct net_device_stats *device_get_stats(struct net_device *dev);
263static int device_open(struct net_device *dev); 261static int device_open(struct net_device *dev);
264static int device_xmit(struct sk_buff *skb, struct net_device *dev); 262static int device_xmit(struct sk_buff *skb, struct net_device *dev);
@@ -279,8 +277,10 @@ static void device_free_frag_bufs(PSDevice pDevice);
279static BOOL device_alloc_bufs(PSDevice pDevice); 277static BOOL device_alloc_bufs(PSDevice pDevice);
280 278
281static int Read_config_file(PSDevice pDevice); 279static int Read_config_file(PSDevice pDevice);
282static UCHAR *Config_FileOperation(PSDevice pDevice); 280static unsigned char *Config_FileOperation(PSDevice pDevice);
283static int Config_FileGetParameter(UCHAR *string, UCHAR *dest,UCHAR *source); 281static int Config_FileGetParameter(unsigned char *string,
282 unsigned char *dest,
283 unsigned char *source);
284 284
285//2008-0714<Add>by Mike Liu 285//2008-0714<Add>by Mike Liu
286static BOOL device_release_WPADEV(PSDevice pDevice); 286static BOOL device_release_WPADEV(PSDevice pDevice);
@@ -297,14 +297,13 @@ static void usb_device_reset(PSDevice pDevice);
297static void 297static void
298device_set_options(PSDevice pDevice) { 298device_set_options(PSDevice pDevice) {
299 299
300 BYTE abyBroadcastAddr[U_ETHER_ADDR_LEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; 300 BYTE abyBroadcastAddr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
301 BYTE abySNAP_RFC1042[U_ETHER_ADDR_LEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00}; 301 BYTE abySNAP_RFC1042[ETH_ALEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00};
302 BYTE abySNAP_Bridgetunnel[U_ETHER_ADDR_LEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0xF8}; 302 u8 abySNAP_Bridgetunnel[ETH_ALEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0xF8};
303
304 303
305 memcpy(pDevice->abyBroadcastAddr, abyBroadcastAddr, U_ETHER_ADDR_LEN); 304 memcpy(pDevice->abyBroadcastAddr, abyBroadcastAddr, ETH_ALEN);
306 memcpy(pDevice->abySNAP_RFC1042, abySNAP_RFC1042, U_ETHER_ADDR_LEN); 305 memcpy(pDevice->abySNAP_RFC1042, abySNAP_RFC1042, ETH_ALEN);
307 memcpy(pDevice->abySNAP_Bridgetunnel, abySNAP_Bridgetunnel, U_ETHER_ADDR_LEN); 306 memcpy(pDevice->abySNAP_Bridgetunnel, abySNAP_Bridgetunnel, ETH_ALEN);
308 307
309 pDevice->cbTD = TX_DESC_DEF0; 308 pDevice->cbTD = TX_DESC_DEF0;
310 pDevice->cbRD = RX_DESC_DEF0; 309 pDevice->cbRD = RX_DESC_DEF0;
@@ -334,20 +333,20 @@ device_set_options(PSDevice pDevice) {
334} 333}
335 334
336 335
337static VOID device_init_diversity_timer(PSDevice pDevice) { 336static void device_init_diversity_timer(PSDevice pDevice)
338 337{
339 init_timer(&pDevice->TimerSQ3Tmax1); 338 init_timer(&pDevice->TimerSQ3Tmax1);
340 pDevice->TimerSQ3Tmax1.data = (ULONG)pDevice; 339 pDevice->TimerSQ3Tmax1.data = (unsigned long)pDevice;
341 pDevice->TimerSQ3Tmax1.function = (TimerFunction)TimerSQ3CallBack; 340 pDevice->TimerSQ3Tmax1.function = (TimerFunction)TimerSQ3CallBack;
342 pDevice->TimerSQ3Tmax1.expires = RUN_AT(HZ); 341 pDevice->TimerSQ3Tmax1.expires = RUN_AT(HZ);
343 342
344 init_timer(&pDevice->TimerSQ3Tmax2); 343 init_timer(&pDevice->TimerSQ3Tmax2);
345 pDevice->TimerSQ3Tmax2.data = (ULONG)pDevice; 344 pDevice->TimerSQ3Tmax2.data = (unsigned long)pDevice;
346 pDevice->TimerSQ3Tmax2.function = (TimerFunction)TimerSQ3CallBack; 345 pDevice->TimerSQ3Tmax2.function = (TimerFunction)TimerSQ3CallBack;
347 pDevice->TimerSQ3Tmax2.expires = RUN_AT(HZ); 346 pDevice->TimerSQ3Tmax2.expires = RUN_AT(HZ);
348 347
349 init_timer(&pDevice->TimerSQ3Tmax3); 348 init_timer(&pDevice->TimerSQ3Tmax3);
350 pDevice->TimerSQ3Tmax3.data = (ULONG)pDevice; 349 pDevice->TimerSQ3Tmax3.data = (unsigned long)pDevice;
351 pDevice->TimerSQ3Tmax3.function = (TimerFunction)TimerSQ3Tmax3CallBack; 350 pDevice->TimerSQ3Tmax3.function = (TimerFunction)TimerSQ3Tmax3CallBack;
352 pDevice->TimerSQ3Tmax3.expires = RUN_AT(HZ); 351 pDevice->TimerSQ3Tmax3.expires = RUN_AT(HZ);
353 352
@@ -361,11 +360,11 @@ static VOID device_init_diversity_timer(PSDevice pDevice) {
361 360
362static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType) 361static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType)
363{ 362{
364 BYTE abyBroadcastAddr[U_ETHER_ADDR_LEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; 363 u8 abyBroadcastAddr[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
365 BYTE abySNAP_RFC1042[U_ETHER_ADDR_LEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00}; 364 u8 abySNAP_RFC1042[ETH_ALEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00};
366 BYTE abySNAP_Bridgetunnel[U_ETHER_ADDR_LEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0xF8}; 365 u8 abySNAP_Bridgetunnel[ETH_ALEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0xF8};
367 BYTE byAntenna; 366 BYTE byAntenna;
368 UINT ii; 367 unsigned int ii;
369 CMD_CARD_INIT sInitCmd; 368 CMD_CARD_INIT sInitCmd;
370 NTSTATUS ntStatus = STATUS_SUCCESS; 369 NTSTATUS ntStatus = STATUS_SUCCESS;
371 RSP_CARD_INIT sInitRsp; 370 RSP_CARD_INIT sInitRsp;
@@ -377,10 +376,12 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType)
377 376
378 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "---->INIbInitAdapter. [%d][%d]\n", InitType, pDevice->byPacketType); 377 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "---->INIbInitAdapter. [%d][%d]\n", InitType, pDevice->byPacketType);
379 spin_lock_irq(&pDevice->lock); 378 spin_lock_irq(&pDevice->lock);
380 if (InitType == DEVICE_INIT_COLD) { 379 if (InitType == DEVICE_INIT_COLD) {
381 memcpy(pDevice->abyBroadcastAddr, abyBroadcastAddr, U_ETHER_ADDR_LEN); 380 memcpy(pDevice->abyBroadcastAddr, abyBroadcastAddr, ETH_ALEN);
382 memcpy(pDevice->abySNAP_RFC1042, abySNAP_RFC1042, U_ETHER_ADDR_LEN); 381 memcpy(pDevice->abySNAP_RFC1042, abySNAP_RFC1042, ETH_ALEN);
383 memcpy(pDevice->abySNAP_Bridgetunnel, abySNAP_Bridgetunnel, U_ETHER_ADDR_LEN); 382 memcpy(pDevice->abySNAP_Bridgetunnel,
383 abySNAP_Bridgetunnel,
384 ETH_ALEN);
384 385
385 if ( !FIRMWAREbCheckVersion(pDevice) ) { 386 if ( !FIRMWAREbCheckVersion(pDevice) ) {
386 if (FIRMWAREbDownload(pDevice) == TRUE) { 387 if (FIRMWAREbDownload(pDevice) == TRUE) {
@@ -605,7 +606,9 @@ static BOOL device_init_registers(PSDevice pDevice, DEVICE_INIT_TYPE InitType)
605 606
606 // get Permanent network address 607 // get Permanent network address
607 memcpy(pDevice->abyPermanentNetAddr,&(sInitRsp.byNetAddr[0]),6); 608 memcpy(pDevice->abyPermanentNetAddr,&(sInitRsp.byNetAddr[0]),6);
608 memcpy(pDevice->abyCurrentNetAddr, pDevice->abyPermanentNetAddr, U_ETHER_ADDR_LEN); 609 memcpy(pDevice->abyCurrentNetAddr,
610 pDevice->abyPermanentNetAddr,
611 ETH_ALEN);
609 612
610 // if exist SW network address, use SW network address. 613 // if exist SW network address, use SW network address.
611 614
@@ -712,7 +715,8 @@ static BOOL device_release_WPADEV(PSDevice pDevice)
712} 715}
713 716
714#ifdef CONFIG_PM /* Minimal support for suspend and resume */ 717#ifdef CONFIG_PM /* Minimal support for suspend and resume */
715static int vntwusb_suspend(struct usb_interface *intf, pm_message_t message) 718
719static int vt6656_suspend(struct usb_interface *intf, pm_message_t message)
716{ 720{
717 PSDevice pDevice = usb_get_intfdata(intf); 721 PSDevice pDevice = usb_get_intfdata(intf);
718 struct net_device *dev = pDevice->dev; 722 struct net_device *dev = pDevice->dev;
@@ -727,7 +731,7 @@ if(dev != NULL) {
727 return 0; 731 return 0;
728} 732}
729 733
730static int vntwusb_resume(struct usb_interface *intf) 734static int vt6656_resume(struct usb_interface *intf)
731{ 735{
732 PSDevice pDevice = usb_get_intfdata(intf); 736 PSDevice pDevice = usb_get_intfdata(intf);
733 struct net_device *dev = pDevice->dev; 737 struct net_device *dev = pDevice->dev;
@@ -742,8 +746,8 @@ static int vntwusb_resume(struct usb_interface *intf)
742 } 746 }
743 return 0; 747 return 0;
744} 748}
745#endif
746 749
750#endif /* CONFIG_PM */
747 751
748static const struct net_device_ops device_netdev_ops = { 752static const struct net_device_ops device_netdev_ops = {
749 .ndo_open = device_open, 753 .ndo_open = device_open,
@@ -755,10 +759,10 @@ static const struct net_device_ops device_netdev_ops = {
755}; 759};
756 760
757 761
758static int 762static int __devinit
759vntwusb_found1(struct usb_interface *intf, const struct usb_device_id *id) 763vt6656_probe(struct usb_interface *intf, const struct usb_device_id *id)
760{ 764{
761 BYTE fake_mac[U_ETHER_ADDR_LEN] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x01};//fake MAC address 765 u8 fake_mac[ETH_ALEN] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x01};
762 struct usb_device *udev = interface_to_usbdev(intf); 766 struct usb_device *udev = interface_to_usbdev(intf);
763 int rc = 0; 767 int rc = 0;
764 struct net_device *netdev = NULL; 768 struct net_device *netdev = NULL;
@@ -789,7 +793,7 @@ vntwusb_found1(struct usb_interface *intf, const struct usb_device_id *id)
789 spin_lock_init(&pDevice->lock); 793 spin_lock_init(&pDevice->lock);
790 794
791 pDevice->tx_80211 = device_dma0_tx_80211; 795 pDevice->tx_80211 = device_dma0_tx_80211;
792 pDevice->sMgmtObj.pAdapter = (PVOID)pDevice; 796 pDevice->sMgmtObj.pAdapter = (void *)pDevice;
793 797
794 netdev->netdev_ops = &device_netdev_ops; 798 netdev->netdev_ops = &device_netdev_ops;
795 799
@@ -799,7 +803,7 @@ vntwusb_found1(struct usb_interface *intf, const struct usb_device_id *id)
799 //2007-0821-01<Add>by MikeLiu 803 //2007-0821-01<Add>by MikeLiu
800 usb_set_intfdata(intf, pDevice); 804 usb_set_intfdata(intf, pDevice);
801 SET_NETDEV_DEV(netdev, &intf->dev); 805 SET_NETDEV_DEV(netdev, &intf->dev);
802 memcpy(pDevice->dev->dev_addr, fake_mac, U_ETHER_ADDR_LEN); //use fake mac address 806 memcpy(pDevice->dev->dev_addr, fake_mac, ETH_ALEN);
803 rc = register_netdev(netdev); 807 rc = register_netdev(netdev);
804 if (rc != 0) { 808 if (rc != 0) {
805 printk(KERN_ERR DEVICE_NAME " Failed to register netdev\n"); 809 printk(KERN_ERR DEVICE_NAME " Failed to register netdev\n");
@@ -841,7 +845,8 @@ err_nomem:
841} 845}
842 846
843 847
844static VOID device_free_tx_bufs(PSDevice pDevice) { 848static void device_free_tx_bufs(PSDevice pDevice)
849{
845 PUSB_SEND_CONTEXT pTxContext; 850 PUSB_SEND_CONTEXT pTxContext;
846 int ii; 851 int ii;
847 852
@@ -860,7 +865,8 @@ static VOID device_free_tx_bufs(PSDevice pDevice) {
860} 865}
861 866
862 867
863static VOID device_free_rx_bufs(PSDevice pDevice) { 868static void device_free_rx_bufs(PSDevice pDevice)
869{
864 PRCB pRCB; 870 PRCB pRCB;
865 int ii; 871 int ii;
866 872
@@ -892,8 +898,8 @@ static void usb_device_reset(PSDevice pDevice)
892 return ; 898 return ;
893} 899}
894 900
895static VOID device_free_int_bufs(PSDevice pDevice) { 901static void device_free_int_bufs(PSDevice pDevice)
896 902{
897 if (pDevice->intBuf.pDataBuf != NULL) 903 if (pDevice->intBuf.pDataBuf != NULL)
898 kfree(pDevice->intBuf.pDataBuf); 904 kfree(pDevice->intBuf.pDataBuf);
899 return; 905 return;
@@ -915,7 +921,7 @@ static BOOL device_alloc_bufs(PSDevice pDevice) {
915 goto free_tx; 921 goto free_tx;
916 } 922 }
917 pDevice->apTD[ii] = pTxContext; 923 pDevice->apTD[ii] = pTxContext;
918 pTxContext->pDevice = (PVOID) pDevice; 924 pTxContext->pDevice = (void *) pDevice;
919 //allocate URBs 925 //allocate URBs
920 pTxContext->pUrb = usb_alloc_urb(0, GFP_ATOMIC); 926 pTxContext->pUrb = usb_alloc_urb(0, GFP_ATOMIC);
921 if (pTxContext->pUrb == NULL) { 927 if (pTxContext->pUrb == NULL) {
@@ -944,7 +950,7 @@ static BOOL device_alloc_bufs(PSDevice pDevice) {
944 for (ii = 0; ii < pDevice->cbRD; ii++) { 950 for (ii = 0; ii < pDevice->cbRD; ii++) {
945 951
946 pDevice->apRCB[ii] = pRCB; 952 pDevice->apRCB[ii] = pRCB;
947 pRCB->pDevice = (PVOID) pDevice; 953 pRCB->pDevice = (void *) pDevice;
948 //allocate URBs 954 //allocate URBs
949 pRCB->pUrb = usb_alloc_urb(0, GFP_ATOMIC); 955 pRCB->pUrb = usb_alloc_urb(0, GFP_ATOMIC);
950 956
@@ -1102,8 +1108,8 @@ static int device_open(struct net_device *dev) {
1102 // Init for Key Management 1108 // Init for Key Management
1103 1109
1104 KeyvInitTable(pDevice,&pDevice->sKey); 1110 KeyvInitTable(pDevice,&pDevice->sKey);
1105 memcpy(pDevice->sMgmtObj.abyMACAddr, pDevice->abyCurrentNetAddr, U_ETHER_ADDR_LEN); 1111 memcpy(pDevice->sMgmtObj.abyMACAddr, pDevice->abyCurrentNetAddr, ETH_ALEN);
1106 memcpy(pDevice->dev->dev_addr, pDevice->abyCurrentNetAddr, U_ETHER_ADDR_LEN); 1112 memcpy(pDevice->dev->dev_addr, pDevice->abyCurrentNetAddr, ETH_ALEN);
1107 pDevice->bStopTx0Pkt = FALSE; 1113 pDevice->bStopTx0Pkt = FALSE;
1108 pDevice->bStopDataPkt = FALSE; 1114 pDevice->bStopDataPkt = FALSE;
1109 pDevice->bRoaming = FALSE; //DavidWang 1115 pDevice->bRoaming = FALSE; //DavidWang
@@ -1154,12 +1160,12 @@ static int device_open(struct net_device *dev) {
1154 } 1160 }
1155 1161
1156 if (pDevice->sMgmtObj.eConfigMode == WMAC_CONFIG_AP) { 1162 if (pDevice->sMgmtObj.eConfigMode == WMAC_CONFIG_AP) {
1157 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RUN_AP, NULL); 1163 bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL);
1158 } 1164 }
1159 else { 1165 else {
1160 //mike:mark@2008-11-10 1166 //mike:mark@2008-11-10
1161 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_BSSID_SCAN, NULL); 1167 bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL);
1162 //bScheduleCommand((HANDLE)pDevice, WLAN_CMD_SSID, NULL); 1168 /* bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL); */
1163 } 1169 }
1164 1170
1165 1171
@@ -1216,7 +1222,7 @@ static int device_close(struct net_device *dev) {
1216 1222
1217//2007-1121-02<Add>by EinsnLiu 1223//2007-1121-02<Add>by EinsnLiu
1218 if (pDevice->bLinkPass) { 1224 if (pDevice->bLinkPass) {
1219 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL); 1225 bScheduleCommand((void *) pDevice, WLAN_CMD_DISASSOCIATE, NULL);
1220 mdelay(30); 1226 mdelay(30);
1221 } 1227 }
1222//End Add 1228//End Add
@@ -1285,8 +1291,7 @@ device_release_WPADEV(pDevice);
1285} 1291}
1286 1292
1287 1293
1288static void vntwusb_disconnect(struct usb_interface *intf) 1294static void __devexit vt6656_disconnect(struct usb_interface *intf)
1289
1290{ 1295{
1291 1296
1292 PSDevice pDevice = usb_get_intfdata(intf); 1297 PSDevice pDevice = usb_get_intfdata(intf);
@@ -1333,7 +1338,7 @@ device_release_WPADEV(pDevice);
1333static int device_dma0_tx_80211(struct sk_buff *skb, struct net_device *dev) { 1338static int device_dma0_tx_80211(struct sk_buff *skb, struct net_device *dev) {
1334 PSDevice pDevice=netdev_priv(dev); 1339 PSDevice pDevice=netdev_priv(dev);
1335 PBYTE pbMPDU; 1340 PBYTE pbMPDU;
1336 UINT cbMPDULen = 0; 1341 unsigned int cbMPDULen = 0;
1337 1342
1338 1343
1339 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "device_dma0_tx_80211\n"); 1344 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "device_dma0_tx_80211\n");
@@ -1408,24 +1413,27 @@ static inline u32 ether_crc(int length, unsigned char *data)
1408} 1413}
1409 1414
1410//find out the start position of str2 from str1 1415//find out the start position of str2 from str1
1411static UCHAR *kstrstr(const UCHAR *str1,const UCHAR *str2) { 1416static unsigned char *kstrstr(const unsigned char *str1,
1412 int str1_len=strlen(str1); 1417 const unsigned char *str2) {
1413 int str2_len=strlen(str2); 1418 int str1_len = strlen(str1);
1419 int str2_len = strlen(str2);
1414 1420
1415 while (str1_len >= str2_len) { 1421 while (str1_len >= str2_len) {
1416 str1_len--; 1422 str1_len--;
1417 if(memcmp(str1,str2,str2_len)==0) 1423 if(memcmp(str1,str2,str2_len)==0)
1418 return (UCHAR *)str1; 1424 return (unsigned char *) str1;
1419 str1++; 1425 str1++;
1420 } 1426 }
1421 return NULL; 1427 return NULL;
1422} 1428}
1423 1429
1424static int Config_FileGetParameter(UCHAR *string, UCHAR *dest,UCHAR *source) 1430static int Config_FileGetParameter(unsigned char *string,
1431 unsigned char *dest,
1432 unsigned char *source)
1425{ 1433{
1426 UCHAR buf1[100]; 1434 unsigned char buf1[100];
1427 UCHAR buf2[100]; 1435 unsigned char buf2[100];
1428 UCHAR *start_p=NULL,*end_p=NULL,*tmp_p=NULL; 1436 unsigned char *start_p = NULL, *end_p = NULL, *tmp_p = NULL;
1429 int ii; 1437 int ii;
1430 1438
1431 memset(buf1,0,100); 1439 memset(buf1,0,100);
@@ -1434,7 +1442,8 @@ static int Config_FileGetParameter(UCHAR *string, UCHAR *dest,UCHAR *source)
1434 source+=strlen(buf1); 1442 source+=strlen(buf1);
1435 1443
1436//find target string start point 1444//find target string start point
1437 if((start_p = kstrstr(source,buf1))==NULL) 1445 start_p = kstrstr(source,buf1);
1446 if (start_p == NULL)
1438 return FALSE; 1447 return FALSE;
1439 1448
1440//check if current config line is marked by "#" ?? 1449//check if current config line is marked by "#" ??
@@ -1446,7 +1455,8 @@ for(ii=1;;ii++) {
1446} 1455}
1447 1456
1448//find target string end point 1457//find target string end point
1449 if((end_p = kstrstr(start_p,"\n"))==NULL) { //cann't find "\n",but don't care 1458 end_p = kstrstr(start_p,"\n");
1459 if (end_p == NULL) { //can't find "\n",but don't care
1450 end_p=start_p+strlen(start_p); //no include "\n" 1460 end_p=start_p+strlen(start_p); //no include "\n"
1451 } 1461 }
1452 1462
@@ -1455,7 +1465,8 @@ for(ii=1;;ii++) {
1455 buf2[end_p-start_p]='\0'; 1465 buf2[end_p-start_p]='\0';
1456 1466
1457 //find value 1467 //find value
1458 if((start_p = kstrstr(buf2,"="))==NULL) 1468 start_p = kstrstr(buf2,"=");
1469 if (start_p == NULL)
1459 return FALSE; 1470 return FALSE;
1460 memset(buf1,0,100); 1471 memset(buf1,0,100);
1461 strcpy(buf1,start_p+1); 1472 strcpy(buf1,start_p+1);
@@ -1474,13 +1485,14 @@ for(ii=1;;ii++) {
1474} 1485}
1475 1486
1476//if read fail,return NULL,or return data pointer; 1487//if read fail,return NULL,or return data pointer;
1477static UCHAR *Config_FileOperation(PSDevice pDevice) { 1488static unsigned char *Config_FileOperation(PSDevice pDevice)
1478 UCHAR *config_path=CONFIG_PATH; 1489{
1479 UCHAR *buffer=NULL; 1490 unsigned char *config_path = CONFIG_PATH;
1491 unsigned char *buffer = NULL;
1480 struct file *filp=NULL; 1492 struct file *filp=NULL;
1481 mm_segment_t old_fs = get_fs(); 1493 mm_segment_t old_fs = get_fs();
1482 //int oldfsuid=0,oldfsgid=0; 1494 //int oldfsuid=0,oldfsgid=0;
1483 int result=0; 1495 int result = 0;
1484 1496
1485 set_fs (KERNEL_DS); 1497 set_fs (KERNEL_DS);
1486 /* Can't do this anymore, so we rely on correct filesystem permissions: 1498 /* Can't do this anymore, so we rely on correct filesystem permissions:
@@ -1505,7 +1517,7 @@ static UCHAR *Config_FileOperation(PSDevice pDevice) {
1505 goto error1; 1517 goto error1;
1506 } 1518 }
1507 1519
1508 buffer = (UCHAR *)kmalloc(1024, GFP_KERNEL); 1520 buffer = kmalloc(1024, GFP_KERNEL);
1509 if(buffer==NULL) { 1521 if(buffer==NULL) {
1510 printk("alllocate mem for file fail?\n"); 1522 printk("alllocate mem for file fail?\n");
1511 result = -1; 1523 result = -1;
@@ -1539,16 +1551,17 @@ if(result!=0) {
1539 1551
1540//return --->-1:fail; >=0:successful 1552//return --->-1:fail; >=0:successful
1541static int Read_config_file(PSDevice pDevice) { 1553static int Read_config_file(PSDevice pDevice) {
1542 int result=0; 1554 int result = 0;
1543 UCHAR tmpbuffer[100]; 1555 unsigned char tmpbuffer[100];
1544 UCHAR *buffer=NULL; 1556 unsigned char *buffer = NULL;
1545 1557
1546 //init config setting 1558 //init config setting
1547 pDevice->config_file.ZoneType = -1; 1559 pDevice->config_file.ZoneType = -1;
1548 pDevice->config_file.eAuthenMode = -1; 1560 pDevice->config_file.eAuthenMode = -1;
1549 pDevice->config_file.eEncryptionStatus = -1; 1561 pDevice->config_file.eEncryptionStatus = -1;
1550 1562
1551 if((buffer=Config_FileOperation(pDevice)) ==NULL) { 1563 buffer = Config_FileOperation(pDevice);
1564 if (buffer == NULL) {
1552 result =-1; 1565 result =-1;
1553 return result; 1566 return result;
1554 } 1567 }
@@ -2064,7 +2077,7 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {
2064 rc = 0; 2077 rc = 0;
2065 } 2078 }
2066 2079
2067 rc = hostap_ioctl(pDevice, &wrq->u.data); 2080 rc = vt6656_hostap_ioctl(pDevice, &wrq->u.data);
2068 break; 2081 break;
2069 2082
2070 case IOCTL_CMD_WPA: 2083 case IOCTL_CMD_WPA:
@@ -2094,16 +2107,16 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {
2094 if (pMgmt->eConfigMode == WMAC_CONFIG_AP) { 2107 if (pMgmt->eConfigMode == WMAC_CONFIG_AP) {
2095 netif_stop_queue(pDevice->dev); 2108 netif_stop_queue(pDevice->dev);
2096 spin_lock_irq(&pDevice->lock); 2109 spin_lock_irq(&pDevice->lock);
2097 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_RUN_AP, NULL); 2110 bScheduleCommand((void *) pDevice, WLAN_CMD_RUN_AP, NULL);
2098 spin_unlock_irq(&pDevice->lock); 2111 spin_unlock_irq(&pDevice->lock);
2099 } 2112 }
2100 else { 2113 else {
2101 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Commit the settings\n"); 2114 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Commit the settings\n");
2102 spin_lock_irq(&pDevice->lock); 2115 spin_lock_irq(&pDevice->lock);
2103//2007-1121-01<Modify>by EinsnLiu 2116//2007-1121-01<Modify>by EinsnLiu
2104 if (pDevice->bLinkPass&& 2117 if (pDevice->bLinkPass &&
2105 memcmp(pMgmt->abyCurrSSID,pMgmt->abyDesireSSID,WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN)) { 2118 memcmp(pMgmt->abyCurrSSID,pMgmt->abyDesireSSID,WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN)) {
2106 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL); 2119 bScheduleCommand((void *) pDevice, WLAN_CMD_DISASSOCIATE, NULL);
2107 } else { 2120 } else {
2108 pDevice->bLinkPass = FALSE; 2121 pDevice->bLinkPass = FALSE;
2109 pMgmt->eCurrState = WMAC_STATE_IDLE; 2122 pMgmt->eCurrState = WMAC_STATE_IDLE;
@@ -2114,10 +2127,14 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) {
2114 netif_stop_queue(pDevice->dev); 2127 netif_stop_queue(pDevice->dev);
2115#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT 2128#ifdef WPA_SUPPLICANT_DRIVER_WEXT_SUPPORT
2116 pMgmt->eScanType = WMAC_SCAN_ACTIVE; 2129 pMgmt->eScanType = WMAC_SCAN_ACTIVE;
2117 if(pDevice->bWPASuppWextEnabled !=TRUE) 2130 if (!pDevice->bWPASuppWextEnabled)
2118#endif 2131#endif
2119 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 2132 bScheduleCommand((void *) pDevice,
2120 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); 2133 WLAN_CMD_BSSID_SCAN,
2134 pMgmt->abyDesireSSID);
2135 bScheduleCommand((void *) pDevice,
2136 WLAN_CMD_SSID,
2137 NULL);
2121 spin_unlock_irq(&pDevice->lock); 2138 spin_unlock_irq(&pDevice->lock);
2122 } 2139 }
2123 pDevice->bCommit = FALSE; 2140 pDevice->bCommit = FALSE;
@@ -2153,35 +2170,29 @@ static int ethtool_ioctl(struct net_device *dev, void *useraddr)
2153 2170
2154/*------------------------------------------------------------------*/ 2171/*------------------------------------------------------------------*/
2155 2172
2173MODULE_DEVICE_TABLE(usb, vt6656_table);
2156 2174
2157MODULE_DEVICE_TABLE(usb, vntwusb_table); 2175static struct usb_driver vt6656_driver = {
2158 2176 .name = DEVICE_NAME,
2159 2177 .probe = vt6656_probe,
2160static struct usb_driver vntwusb_driver = { 2178 .disconnect = vt6656_disconnect,
2161 .name = DEVICE_NAME, 2179 .id_table = vt6656_table,
2162 .probe = vntwusb_found1,
2163 .disconnect = vntwusb_disconnect,
2164 .id_table = vntwusb_table,
2165
2166//2008-0920-01<Add>by MikeLiu
2167//for supporting S3 & S4 function
2168#ifdef CONFIG_PM 2180#ifdef CONFIG_PM
2169 .suspend = vntwusb_suspend, 2181 .suspend = vt6656_suspend,
2170 .resume = vntwusb_resume, 2182 .resume = vt6656_resume,
2171#endif 2183#endif /* CONFIG_PM */
2172}; 2184};
2173 2185
2174static int __init vntwusb_init_module(void) 2186static int __init vt6656_init_module(void)
2175{ 2187{
2176 printk(KERN_NOTICE DEVICE_FULL_DRV_NAM " " DEVICE_VERSION); 2188 printk(KERN_NOTICE DEVICE_FULL_DRV_NAM " " DEVICE_VERSION);
2177 return usb_register(&vntwusb_driver); 2189 return usb_register(&vt6656_driver);
2178} 2190}
2179 2191
2180static void __exit vntwusb_cleanup_module(void) 2192static void __exit vt6656_cleanup_module(void)
2181{ 2193{
2182 usb_deregister(&vntwusb_driver); 2194 usb_deregister(&vt6656_driver);
2183} 2195}
2184 2196
2185module_init(vntwusb_init_module); 2197module_init(vt6656_init_module);
2186module_exit(vntwusb_cleanup_module); 2198module_exit(vt6656_cleanup_module);
2187
diff --git a/drivers/staging/vt6656/mib.c b/drivers/staging/vt6656/mib.c
index 910e610b7cc..b694fc86d74 100644
--- a/drivers/staging/vt6656/mib.c
+++ b/drivers/staging/vt6656/mib.c
@@ -152,33 +152,36 @@ void STAvUpdateIsrStatCounter (PSStatCounter pStatistic, BYTE byIsr0, BYTE byIsr
152 * Return Value: none 152 * Return Value: none
153 * 153 *
154 */ 154 */
155void STAvUpdateRDStatCounter (PSStatCounter pStatistic, 155void STAvUpdateRDStatCounter(PSStatCounter pStatistic,
156 BYTE byRSR, BYTE byNewRSR, BYTE byRxSts, BYTE byRxRate, 156 BYTE byRSR, BYTE byNewRSR,
157 PBYTE pbyBuffer, UINT cbFrameLength) 157 BYTE byRxSts, BYTE byRxRate,
158 PBYTE pbyBuffer, unsigned int cbFrameLength)
158{ 159{
159 //need change 160 /* need change */
160 PS802_11Header pHeader = (PS802_11Header)pbyBuffer; 161 PS802_11Header pHeader = (PS802_11Header)pbyBuffer;
161 162
162 if (byRSR & RSR_ADDROK) 163 if (byRSR & RSR_ADDROK)
163 pStatistic->dwRsrADDROk++; 164 pStatistic->dwRsrADDROk++;
164 if (byRSR & RSR_CRCOK) { 165 if (byRSR & RSR_CRCOK) {
165 pStatistic->dwRsrCRCOk++; 166 pStatistic->dwRsrCRCOk++;
167 pStatistic->ullRsrOK++;
166 168
167 pStatistic->ullRsrOK++; 169 if (cbFrameLength >= ETH_ALEN) {
168 170 /* update counters in case of successful transmission */
169 if (cbFrameLength >= U_ETHER_ADDR_LEN) {
170 // update counters in case that successful transmit
171 if (byRSR & RSR_ADDRBROAD) { 171 if (byRSR & RSR_ADDRBROAD) {
172 pStatistic->ullRxBroadcastFrames++; 172 pStatistic->ullRxBroadcastFrames++;
173 pStatistic->ullRxBroadcastBytes += (ULONGLONG)cbFrameLength; 173 pStatistic->ullRxBroadcastBytes +=
174 (unsigned long long) cbFrameLength;
174 } 175 }
175 else if (byRSR & RSR_ADDRMULTI) { 176 else if (byRSR & RSR_ADDRMULTI) {
176 pStatistic->ullRxMulticastFrames++; 177 pStatistic->ullRxMulticastFrames++;
177 pStatistic->ullRxMulticastBytes += (ULONGLONG)cbFrameLength; 178 pStatistic->ullRxMulticastBytes +=
179 (unsigned long long) cbFrameLength;
178 } 180 }
179 else { 181 else {
180 pStatistic->ullRxDirectedFrames++; 182 pStatistic->ullRxDirectedFrames++;
181 pStatistic->ullRxDirectedBytes += (ULONGLONG)cbFrameLength; 183 pStatistic->ullRxDirectedBytes +=
184 (unsigned long long) cbFrameLength;
182 } 185 }
183 } 186 }
184 } 187 }
@@ -188,87 +191,114 @@ void STAvUpdateRDStatCounter (PSStatCounter pStatistic,
188 if(byRSR & RSR_CRCOK) { 191 if(byRSR & RSR_CRCOK) {
189 pStatistic->CustomStat.ullRsr11MCRCOk++; 192 pStatistic->CustomStat.ullRsr11MCRCOk++;
190 } 193 }
191 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"11M: ALL[%d], OK[%d]:[%02x]\n", (INT)pStatistic->CustomStat.ullRsr11M, (INT)pStatistic->CustomStat.ullRsr11MCRCOk, byRSR); 194 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "11M: ALL[%d], OK[%d]:[%02x]\n",
195 (signed int) pStatistic->CustomStat.ullRsr11M,
196 (signed int) pStatistic->CustomStat.ullRsr11MCRCOk, byRSR);
192 } 197 }
193 else if(byRxRate==11) { 198 else if(byRxRate==11) {
194 pStatistic->CustomStat.ullRsr5M++; 199 pStatistic->CustomStat.ullRsr5M++;
195 if(byRSR & RSR_CRCOK) { 200 if(byRSR & RSR_CRCOK) {
196 pStatistic->CustomStat.ullRsr5MCRCOk++; 201 pStatistic->CustomStat.ullRsr5MCRCOk++;
197 } 202 }
198 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" 5M: ALL[%d], OK[%d]:[%02x]\n", (INT)pStatistic->CustomStat.ullRsr5M, (INT)pStatistic->CustomStat.ullRsr5MCRCOk, byRSR); 203 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " 5M: ALL[%d], OK[%d]:[%02x]\n",
204 (signed int) pStatistic->CustomStat.ullRsr5M,
205 (signed int) pStatistic->CustomStat.ullRsr5MCRCOk, byRSR);
199 } 206 }
200 else if(byRxRate==4) { 207 else if(byRxRate==4) {
201 pStatistic->CustomStat.ullRsr2M++; 208 pStatistic->CustomStat.ullRsr2M++;
202 if(byRSR & RSR_CRCOK) { 209 if(byRSR & RSR_CRCOK) {
203 pStatistic->CustomStat.ullRsr2MCRCOk++; 210 pStatistic->CustomStat.ullRsr2MCRCOk++;
204 } 211 }
205 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" 2M: ALL[%d], OK[%d]:[%02x]\n", (INT)pStatistic->CustomStat.ullRsr2M, (INT)pStatistic->CustomStat.ullRsr2MCRCOk, byRSR); 212 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " 2M: ALL[%d], OK[%d]:[%02x]\n",
213 (signed int) pStatistic->CustomStat.ullRsr2M,
214 (signed int) pStatistic->CustomStat.ullRsr2MCRCOk, byRSR);
206 } 215 }
207 else if(byRxRate==2){ 216 else if(byRxRate==2){
208 pStatistic->CustomStat.ullRsr1M++; 217 pStatistic->CustomStat.ullRsr1M++;
209 if(byRSR & RSR_CRCOK) { 218 if(byRSR & RSR_CRCOK) {
210 pStatistic->CustomStat.ullRsr1MCRCOk++; 219 pStatistic->CustomStat.ullRsr1MCRCOk++;
211 } 220 }
212 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" 1M: ALL[%d], OK[%d]:[%02x]\n", (INT)pStatistic->CustomStat.ullRsr1M, (INT)pStatistic->CustomStat.ullRsr1MCRCOk, byRSR); 221 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " 1M: ALL[%d], OK[%d]:[%02x]\n",
222 (signed int) pStatistic->CustomStat.ullRsr1M,
223 (signed int) pStatistic->CustomStat.ullRsr1MCRCOk, byRSR);
213 } 224 }
214 else if(byRxRate==12){ 225 else if(byRxRate==12){
215 pStatistic->CustomStat.ullRsr6M++; 226 pStatistic->CustomStat.ullRsr6M++;
216 if(byRSR & RSR_CRCOK) { 227 if(byRSR & RSR_CRCOK) {
217 pStatistic->CustomStat.ullRsr6MCRCOk++; 228 pStatistic->CustomStat.ullRsr6MCRCOk++;
218 } 229 }
219 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" 6M: ALL[%d], OK[%d]\n", (INT)pStatistic->CustomStat.ullRsr6M, (INT)pStatistic->CustomStat.ullRsr6MCRCOk); 230 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " 6M: ALL[%d], OK[%d]\n",
231 (signed int) pStatistic->CustomStat.ullRsr6M,
232 (signed int) pStatistic->CustomStat.ullRsr6MCRCOk);
220 } 233 }
221 else if(byRxRate==18){ 234 else if(byRxRate==18){
222 pStatistic->CustomStat.ullRsr9M++; 235 pStatistic->CustomStat.ullRsr9M++;
223 if(byRSR & RSR_CRCOK) { 236 if(byRSR & RSR_CRCOK) {
224 pStatistic->CustomStat.ullRsr9MCRCOk++; 237 pStatistic->CustomStat.ullRsr9MCRCOk++;
225 } 238 }
226 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" 9M: ALL[%d], OK[%d]\n", (INT)pStatistic->CustomStat.ullRsr9M, (INT)pStatistic->CustomStat.ullRsr9MCRCOk); 239 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " 9M: ALL[%d], OK[%d]\n",
240 (signed int) pStatistic->CustomStat.ullRsr9M,
241 (signed int) pStatistic->CustomStat.ullRsr9MCRCOk);
227 } 242 }
228 else if(byRxRate==24){ 243 else if(byRxRate==24){
229 pStatistic->CustomStat.ullRsr12M++; 244 pStatistic->CustomStat.ullRsr12M++;
230 if(byRSR & RSR_CRCOK) { 245 if(byRSR & RSR_CRCOK) {
231 pStatistic->CustomStat.ullRsr12MCRCOk++; 246 pStatistic->CustomStat.ullRsr12MCRCOk++;
232 } 247 }
233 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"12M: ALL[%d], OK[%d]\n", (INT)pStatistic->CustomStat.ullRsr12M, (INT)pStatistic->CustomStat.ullRsr12MCRCOk); 248 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "12M: ALL[%d], OK[%d]\n",
249 (signed int) pStatistic->CustomStat.ullRsr12M,
250 (signed int) pStatistic->CustomStat.ullRsr12MCRCOk);
234 } 251 }
235 else if(byRxRate==36){ 252 else if(byRxRate==36){
236 pStatistic->CustomStat.ullRsr18M++; 253 pStatistic->CustomStat.ullRsr18M++;
237 if(byRSR & RSR_CRCOK) { 254 if(byRSR & RSR_CRCOK) {
238 pStatistic->CustomStat.ullRsr18MCRCOk++; 255 pStatistic->CustomStat.ullRsr18MCRCOk++;
239 } 256 }
240 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"18M: ALL[%d], OK[%d]\n", (INT)pStatistic->CustomStat.ullRsr18M, (INT)pStatistic->CustomStat.ullRsr18MCRCOk); 257 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "18M: ALL[%d], OK[%d]\n",
258 (signed int) pStatistic->CustomStat.ullRsr18M,
259 (signed int) pStatistic->CustomStat.ullRsr18MCRCOk);
241 } 260 }
242 else if(byRxRate==48){ 261 else if(byRxRate==48){
243 pStatistic->CustomStat.ullRsr24M++; 262 pStatistic->CustomStat.ullRsr24M++;
244 if(byRSR & RSR_CRCOK) { 263 if(byRSR & RSR_CRCOK) {
245 pStatistic->CustomStat.ullRsr24MCRCOk++; 264 pStatistic->CustomStat.ullRsr24MCRCOk++;
246 } 265 }
247 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"24M: ALL[%d], OK[%d]\n", (INT)pStatistic->CustomStat.ullRsr24M, (INT)pStatistic->CustomStat.ullRsr24MCRCOk); 266 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "24M: ALL[%d], OK[%d]\n",
267 (signed int) pStatistic->CustomStat.ullRsr24M,
268 (signed int) pStatistic->CustomStat.ullRsr24MCRCOk);
248 } 269 }
249 else if(byRxRate==72){ 270 else if(byRxRate==72){
250 pStatistic->CustomStat.ullRsr36M++; 271 pStatistic->CustomStat.ullRsr36M++;
251 if(byRSR & RSR_CRCOK) { 272 if(byRSR & RSR_CRCOK) {
252 pStatistic->CustomStat.ullRsr36MCRCOk++; 273 pStatistic->CustomStat.ullRsr36MCRCOk++;
253 } 274 }
254 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"36M: ALL[%d], OK[%d]\n", (INT)pStatistic->CustomStat.ullRsr36M, (INT)pStatistic->CustomStat.ullRsr36MCRCOk); 275 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "36M: ALL[%d], OK[%d]\n",
276 (signed int) pStatistic->CustomStat.ullRsr36M,
277 (signed int) pStatistic->CustomStat.ullRsr36MCRCOk);
255 } 278 }
256 else if(byRxRate==96){ 279 else if(byRxRate==96){
257 pStatistic->CustomStat.ullRsr48M++; 280 pStatistic->CustomStat.ullRsr48M++;
258 if(byRSR & RSR_CRCOK) { 281 if(byRSR & RSR_CRCOK) {
259 pStatistic->CustomStat.ullRsr48MCRCOk++; 282 pStatistic->CustomStat.ullRsr48MCRCOk++;
260 } 283 }
261 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"48M: ALL[%d], OK[%d]\n", (INT)pStatistic->CustomStat.ullRsr48M, (INT)pStatistic->CustomStat.ullRsr48MCRCOk); 284 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "48M: ALL[%d], OK[%d]\n",
285 (signed int) pStatistic->CustomStat.ullRsr48M,
286 (signed int) pStatistic->CustomStat.ullRsr48MCRCOk);
262 } 287 }
263 else if(byRxRate==108){ 288 else if(byRxRate==108){
264 pStatistic->CustomStat.ullRsr54M++; 289 pStatistic->CustomStat.ullRsr54M++;
265 if(byRSR & RSR_CRCOK) { 290 if(byRSR & RSR_CRCOK) {
266 pStatistic->CustomStat.ullRsr54MCRCOk++; 291 pStatistic->CustomStat.ullRsr54MCRCOk++;
267 } 292 }
268 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"54M: ALL[%d], OK[%d]\n", (INT)pStatistic->CustomStat.ullRsr54M, (INT)pStatistic->CustomStat.ullRsr54MCRCOk); 293 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "54M: ALL[%d], OK[%d]\n",
294 (signed int) pStatistic->CustomStat.ullRsr54M,
295 (signed int) pStatistic->CustomStat.ullRsr54MCRCOk);
269 } 296 }
270 else { 297 else {
271 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Unknown: Total[%d], CRCOK[%d]\n", (INT)pStatistic->dwRsrRxPacket+1, (INT)pStatistic->dwRsrCRCOk); 298 DBG_PRT(MSG_LEVEL_DEBUG,
299 KERN_INFO "Unknown: Total[%d], CRCOK[%d]\n",
300 (signed int) pStatistic->dwRsrRxPacket+1,
301 (signed int)pStatistic->dwRsrCRCOk);
272 } 302 }
273 303
274 if (byRSR & RSR_BSSIDOK) 304 if (byRSR & RSR_BSSIDOK)
@@ -370,7 +400,7 @@ STAvUpdateRDStatCounterEx (
370 BYTE byRxSts, 400 BYTE byRxSts,
371 BYTE byRxRate, 401 BYTE byRxRate,
372 PBYTE pbyBuffer, 402 PBYTE pbyBuffer,
373 UINT cbFrameLength 403 unsigned int cbFrameLength
374 ) 404 )
375{ 405{
376 STAvUpdateRDStatCounter( 406 STAvUpdateRDStatCounter(
@@ -510,19 +540,22 @@ STAvUpdate802_11Counter(
510 ) 540 )
511{ 541{
512 //p802_11Counter->TransmittedFragmentCount 542 //p802_11Counter->TransmittedFragmentCount
513 p802_11Counter->MulticastTransmittedFrameCount = (ULONGLONG) (pStatistic->dwTsrBroadcast + 543 p802_11Counter->MulticastTransmittedFrameCount =
514 pStatistic->dwTsrMulticast); 544 (unsigned long long) (pStatistic->dwTsrBroadcast +
515 p802_11Counter->FailedCount = (ULONGLONG) (pStatistic->dwTsrErr); 545 pStatistic->dwTsrMulticast);
516 p802_11Counter->RetryCount = (ULONGLONG) (pStatistic->dwTsrRetry); 546 p802_11Counter->FailedCount = (unsigned long long) (pStatistic->dwTsrErr);
517 p802_11Counter->MultipleRetryCount = (ULONGLONG) (pStatistic->dwTsrMoreThanOnceRetry); 547 p802_11Counter->RetryCount = (unsigned long long) (pStatistic->dwTsrRetry);
548 p802_11Counter->MultipleRetryCount =
549 (unsigned long long) (pStatistic->dwTsrMoreThanOnceRetry);
518 //p802_11Counter->FrameDuplicateCount 550 //p802_11Counter->FrameDuplicateCount
519 p802_11Counter->RTSSuccessCount += (ULONGLONG) byRTSSuccess; 551 p802_11Counter->RTSSuccessCount += (unsigned long long) byRTSSuccess;
520 p802_11Counter->RTSFailureCount += (ULONGLONG) byRTSFail; 552 p802_11Counter->RTSFailureCount += (unsigned long long) byRTSFail;
521 p802_11Counter->ACKFailureCount += (ULONGLONG) byACKFail; 553 p802_11Counter->ACKFailureCount += (unsigned long long) byACKFail;
522 p802_11Counter->FCSErrorCount += (ULONGLONG) byFCSErr; 554 p802_11Counter->FCSErrorCount += (unsigned long long) byFCSErr;
523 //p802_11Counter->ReceivedFragmentCount 555 //p802_11Counter->ReceivedFragmentCount
524 p802_11Counter->MulticastReceivedFrameCount = (ULONGLONG) (pStatistic->dwRsrBroadcast + 556 p802_11Counter->MulticastReceivedFrameCount =
525 pStatistic->dwRsrMulticast); 557 (unsigned long long) (pStatistic->dwRsrBroadcast +
558 pStatistic->dwRsrMulticast);
526} 559}
527 560
528/* 561/*
diff --git a/drivers/staging/vt6656/mib.h b/drivers/staging/vt6656/mib.h
index ac996d2cd91..0455ec9d327 100644
--- a/drivers/staging/vt6656/mib.h
+++ b/drivers/staging/vt6656/mib.h
@@ -52,32 +52,34 @@ typedef struct tagSUSBCounter {
52 52
53 53
54typedef struct tagSDot11Counters { 54typedef struct tagSDot11Counters {
55// ULONG Length; // Length of structure 55 /* unsigned long Length; // Length of structure */
56 ULONGLONG TransmittedFragmentCount; 56 unsigned long long TransmittedFragmentCount;
57 ULONGLONG MulticastTransmittedFrameCount; 57 unsigned long long MulticastTransmittedFrameCount;
58 ULONGLONG FailedCount; 58 unsigned long long FailedCount;
59 ULONGLONG RetryCount; 59 unsigned long long RetryCount;
60 ULONGLONG MultipleRetryCount; 60 unsigned long long MultipleRetryCount;
61 ULONGLONG RTSSuccessCount; 61 unsigned long long RTSSuccessCount;
62 ULONGLONG RTSFailureCount; 62 unsigned long long RTSFailureCount;
63 ULONGLONG ACKFailureCount; 63 unsigned long long ACKFailureCount;
64 ULONGLONG FrameDuplicateCount; 64 unsigned long long FrameDuplicateCount;
65 ULONGLONG ReceivedFragmentCount; 65 unsigned long long ReceivedFragmentCount;
66 ULONGLONG MulticastReceivedFrameCount; 66 unsigned long long MulticastReceivedFrameCount;
67 ULONGLONG FCSErrorCount; 67 unsigned long long FCSErrorCount;
68 ULONGLONG TKIPLocalMICFailures; 68 unsigned long long TKIPLocalMICFailures;
69 ULONGLONG TKIPRemoteMICFailures; 69 unsigned long long TKIPRemoteMICFailures;
70 ULONGLONG TKIPICVErrors; 70 unsigned long long TKIPICVErrors;
71 ULONGLONG TKIPCounterMeasuresInvoked; 71 unsigned long long TKIPCounterMeasuresInvoked;
72 ULONGLONG TKIPReplays; 72 unsigned long long TKIPReplays;
73 ULONGLONG CCMPFormatErrors; 73 unsigned long long CCMPFormatErrors;
74 ULONGLONG CCMPReplays; 74 unsigned long long CCMPReplays;
75 ULONGLONG CCMPDecryptErrors; 75 unsigned long long CCMPDecryptErrors;
76 ULONGLONG FourWayHandshakeFailures; 76 unsigned long long FourWayHandshakeFailures;
77// ULONGLONG WEPUndecryptableCount; 77 /*
78// ULONGLONG WEPICVErrorCount; 78 * unsigned long long WEPUndecryptableCount;
79// ULONGLONG DecryptSuccessCount; 79 * unsigned long long WEPICVErrorCount;
80// ULONGLONG DecryptFailureCount; 80 * unsigned long long DecryptSuccessCount;
81 * unsigned long long DecryptFailureCount;
82 */
81} SDot11Counters, *PSDot11Counters; 83} SDot11Counters, *PSDot11Counters;
82 84
83 85
@@ -85,15 +87,15 @@ typedef struct tagSDot11Counters {
85// MIB2 counter 87// MIB2 counter
86// 88//
87typedef struct tagSMib2Counter { 89typedef struct tagSMib2Counter {
88 LONG ifIndex; 90 signed long ifIndex;
89 char ifDescr[256]; // max size 255 plus zero ending 91 char ifDescr[256]; // max size 255 plus zero ending
90 // e.g. "interface 1" 92 // e.g. "interface 1"
91 LONG ifType; 93 signed long ifType;
92 LONG ifMtu; 94 signed long ifMtu;
93 DWORD ifSpeed; 95 DWORD ifSpeed;
94 BYTE ifPhysAddress[U_ETHER_ADDR_LEN]; 96 BYTE ifPhysAddress[ETH_ALEN];
95 LONG ifAdminStatus; 97 signed long ifAdminStatus;
96 LONG ifOperStatus; 98 signed long ifOperStatus;
97 DWORD ifLastChange; 99 DWORD ifLastChange;
98 DWORD ifInOctets; 100 DWORD ifInOctets;
99 DWORD ifInUcastPkts; 101 DWORD ifInUcastPkts;
@@ -124,7 +126,7 @@ typedef struct tagSMib2Counter {
124// RMON counter 126// RMON counter
125// 127//
126typedef struct tagSRmonCounter { 128typedef struct tagSRmonCounter {
127 LONG etherStatsIndex; 129 signed long etherStatsIndex;
128 DWORD etherStatsDataSource; 130 DWORD etherStatsDataSource;
129 DWORD etherStatsDropEvents; 131 DWORD etherStatsDropEvents;
130 DWORD etherStatsOctets; 132 DWORD etherStatsOctets;
@@ -151,37 +153,37 @@ typedef struct tagSRmonCounter {
151// Custom counter 153// Custom counter
152// 154//
153typedef struct tagSCustomCounters { 155typedef struct tagSCustomCounters {
154 ULONG Length; 156 unsigned long Length;
155 157
156 ULONGLONG ullTsrAllOK; 158 unsigned long long ullTsrAllOK;
157 159
158 ULONGLONG ullRsr11M; 160 unsigned long long ullRsr11M;
159 ULONGLONG ullRsr5M; 161 unsigned long long ullRsr5M;
160 ULONGLONG ullRsr2M; 162 unsigned long long ullRsr2M;
161 ULONGLONG ullRsr1M; 163 unsigned long long ullRsr1M;
162 164
163 ULONGLONG ullRsr11MCRCOk; 165 unsigned long long ullRsr11MCRCOk;
164 ULONGLONG ullRsr5MCRCOk; 166 unsigned long long ullRsr5MCRCOk;
165 ULONGLONG ullRsr2MCRCOk; 167 unsigned long long ullRsr2MCRCOk;
166 ULONGLONG ullRsr1MCRCOk; 168 unsigned long long ullRsr1MCRCOk;
167 169
168 ULONGLONG ullRsr54M; 170 unsigned long long ullRsr54M;
169 ULONGLONG ullRsr48M; 171 unsigned long long ullRsr48M;
170 ULONGLONG ullRsr36M; 172 unsigned long long ullRsr36M;
171 ULONGLONG ullRsr24M; 173 unsigned long long ullRsr24M;
172 ULONGLONG ullRsr18M; 174 unsigned long long ullRsr18M;
173 ULONGLONG ullRsr12M; 175 unsigned long long ullRsr12M;
174 ULONGLONG ullRsr9M; 176 unsigned long long ullRsr9M;
175 ULONGLONG ullRsr6M; 177 unsigned long long ullRsr6M;
176 178
177 ULONGLONG ullRsr54MCRCOk; 179 unsigned long long ullRsr54MCRCOk;
178 ULONGLONG ullRsr48MCRCOk; 180 unsigned long long ullRsr48MCRCOk;
179 ULONGLONG ullRsr36MCRCOk; 181 unsigned long long ullRsr36MCRCOk;
180 ULONGLONG ullRsr24MCRCOk; 182 unsigned long long ullRsr24MCRCOk;
181 ULONGLONG ullRsr18MCRCOk; 183 unsigned long long ullRsr18MCRCOk;
182 ULONGLONG ullRsr12MCRCOk; 184 unsigned long long ullRsr12MCRCOk;
183 ULONGLONG ullRsr9MCRCOk; 185 unsigned long long ullRsr9MCRCOk;
184 ULONGLONG ullRsr6MCRCOk; 186 unsigned long long ullRsr6MCRCOk;
185 187
186} SCustomCounters, *PSCustomCounters; 188} SCustomCounters, *PSCustomCounters;
187 189
@@ -190,7 +192,7 @@ typedef struct tagSCustomCounters {
190// Custom counter 192// Custom counter
191// 193//
192typedef struct tagSISRCounters { 194typedef struct tagSISRCounters {
193 ULONG Length; 195 unsigned long Length;
194 196
195 DWORD dwIsrTx0OK; 197 DWORD dwIsrTx0OK;
196 DWORD dwIsrAC0TxOK; 198 DWORD dwIsrAC0TxOK;
@@ -231,7 +233,7 @@ typedef struct tagSTxPktInfo {
231 BYTE byBroadMultiUni; 233 BYTE byBroadMultiUni;
232 WORD wLength; 234 WORD wLength;
233 WORD wFIFOCtl; 235 WORD wFIFOCtl;
234 BYTE abyDestAddr[U_ETHER_ADDR_LEN]; 236 BYTE abyDestAddr[ETH_ALEN];
235} STxPktInfo, *PSTxPktInfo; 237} STxPktInfo, *PSTxPktInfo;
236 238
237 239
@@ -277,15 +279,15 @@ typedef struct tagSStatCounter {
277 DWORD dwRsrMulticast; 279 DWORD dwRsrMulticast;
278 DWORD dwRsrDirected; 280 DWORD dwRsrDirected;
279 // 64-bit OID 281 // 64-bit OID
280 ULONGLONG ullRsrOK; 282 unsigned long long ullRsrOK;
281 283
282 // for some optional OIDs (64 bits) and DMI support 284 // for some optional OIDs (64 bits) and DMI support
283 ULONGLONG ullRxBroadcastBytes; 285 unsigned long long ullRxBroadcastBytes;
284 ULONGLONG ullRxMulticastBytes; 286 unsigned long long ullRxMulticastBytes;
285 ULONGLONG ullRxDirectedBytes; 287 unsigned long long ullRxDirectedBytes;
286 ULONGLONG ullRxBroadcastFrames; 288 unsigned long long ullRxBroadcastFrames;
287 ULONGLONG ullRxMulticastFrames; 289 unsigned long long ullRxMulticastFrames;
288 ULONGLONG ullRxDirectedFrames; 290 unsigned long long ullRxDirectedFrames;
289 291
290 DWORD dwRsrRxFragment; 292 DWORD dwRsrRxFragment;
291 DWORD dwRsrRxFrmLen64; 293 DWORD dwRsrRxFrmLen64;
@@ -330,15 +332,15 @@ typedef struct tagSStatCounter {
330 332
331 333
332 // 64-bit OID 334 // 64-bit OID
333 ULONGLONG ullTsrOK; 335 unsigned long long ullTsrOK;
334 336
335 // for some optional OIDs (64 bits) and DMI support 337 // for some optional OIDs (64 bits) and DMI support
336 ULONGLONG ullTxBroadcastFrames; 338 unsigned long long ullTxBroadcastFrames;
337 ULONGLONG ullTxMulticastFrames; 339 unsigned long long ullTxMulticastFrames;
338 ULONGLONG ullTxDirectedFrames; 340 unsigned long long ullTxDirectedFrames;
339 ULONGLONG ullTxBroadcastBytes; 341 unsigned long long ullTxBroadcastBytes;
340 ULONGLONG ullTxMulticastBytes; 342 unsigned long long ullTxMulticastBytes;
341 ULONGLONG ullTxDirectedBytes; 343 unsigned long long ullTxDirectedBytes;
342 344
343 // for autorate 345 // for autorate
344 DWORD dwTxOk[MAX_RATE+1]; 346 DWORD dwTxOk[MAX_RATE+1];
@@ -356,15 +358,15 @@ typedef struct tagSStatCounter {
356 358
357 #ifdef Calcu_LinkQual 359 #ifdef Calcu_LinkQual
358 //Tx count: 360 //Tx count:
359 ULONG TxNoRetryOkCount; //success tx no retry ! 361 unsigned long TxNoRetryOkCount; /* success tx no retry ! */
360 ULONG TxRetryOkCount; //success tx but retry ! 362 unsigned long TxRetryOkCount; /* success tx but retry ! */
361 ULONG TxFailCount; //fail tx ? 363 unsigned long TxFailCount; /* fail tx ? */
362 //Rx count: 364 //Rx count:
363 ULONG RxOkCnt; //success rx ! 365 unsigned long RxOkCnt; /* success rx ! */
364 ULONG RxFcsErrCnt; //fail rx ? 366 unsigned long RxFcsErrCnt; /* fail rx ? */
365 //statistic 367 //statistic
366 ULONG SignalStren; 368 unsigned long SignalStren;
367 ULONG LinkQuality; 369 unsigned long LinkQuality;
368 #endif 370 #endif
369 371
370} SStatCounter, *PSStatCounter; 372} SStatCounter, *PSStatCounter;
@@ -382,13 +384,14 @@ void STAvClearAllCounter(PSStatCounter pStatistic);
382void STAvUpdateIsrStatCounter (PSStatCounter pStatistic, BYTE byIsr0, BYTE byIsr1); 384void STAvUpdateIsrStatCounter (PSStatCounter pStatistic, BYTE byIsr0, BYTE byIsr1);
383 385
384void STAvUpdateRDStatCounter(PSStatCounter pStatistic, 386void STAvUpdateRDStatCounter(PSStatCounter pStatistic,
385 BYTE byRSR, BYTE byNewRSR, BYTE byRxSts, BYTE byRxRate, 387 BYTE byRSR, BYTE byNewRSR, BYTE byRxSts,
386 PBYTE pbyBuffer, UINT cbFrameLength); 388 BYTE byRxRate, PBYTE pbyBuffer,
389 unsigned int cbFrameLength);
387 390
388void STAvUpdateRDStatCounterEx(PSStatCounter pStatistic, 391void STAvUpdateRDStatCounterEx(PSStatCounter pStatistic,
389 BYTE byRSR, BYTE byNewRSR, BYTE byRxSts, BYTE byRxRate, 392 BYTE byRSR, BYTE byNewRSR, BYTE byRxSts,
390 PBYTE pbyBuffer, UINT cbFrameLength); 393 BYTE byRxRate, PBYTE pbyBuffer,
391 394 unsigned int cbFrameLength);
392 395
393void 396void
394STAvUpdateTDStatCounter ( 397STAvUpdateTDStatCounter (
@@ -417,7 +420,4 @@ STAvUpdateUSBCounter(
417 NTSTATUS ntStatus 420 NTSTATUS ntStatus
418 ); 421 );
419 422
420#endif // __MIB_H__ 423#endif /* __MIB_H__ */
421
422
423
diff --git a/drivers/staging/vt6656/michael.c b/drivers/staging/vt6656/michael.c
index c930e0cdb85..671a8cf33e2 100644
--- a/drivers/staging/vt6656/michael.c
+++ b/drivers/staging/vt6656/michael.c
@@ -48,20 +48,23 @@
48 48
49/*--------------------- Static Functions --------------------------*/ 49/*--------------------- Static Functions --------------------------*/
50/* 50/*
51static DWORD s_dwGetUINT32(BYTE * p); // Get DWORD from 4 bytes LSByte first 51 * static DWORD s_dwGetUINT32(BYTE * p); Get DWORD from
52static VOID s_vPutUINT32(BYTE* p, DWORD val); // Put DWORD into 4 bytes LSByte first 52 * 4 bytes LSByte first
53*/ 53 * static void s_vPutUINT32(BYTE* p, DWORD val); Put DWORD into
54static VOID s_vClear(void); // Clear the internal message, 54 * 4 bytes LSByte first
55 // resets the object to the state just after construction. 55 */
56static VOID s_vSetKey(DWORD dwK0, DWORD dwK1); 56static void s_vClear(void); /* Clear the internal message,
57static VOID s_vAppendByte(BYTE b); // Add a single byte to the internal message 57 * resets the object to the
58 * state just after construction. */
59static void s_vSetKey(DWORD dwK0, DWORD dwK1);
60static void s_vAppendByte(BYTE b); /* Add a single byte to the internal
61 * message */
58 62
59/*--------------------- Export Variables --------------------------*/ 63/*--------------------- Export Variables --------------------------*/
60static DWORD L, R; // Current state 64static DWORD L, R; /* Current state */
61 65static DWORD K0, K1; /* Key */
62static DWORD K0, K1; // Key 66static DWORD M; /* Message accumulator (single word) */
63static DWORD M; // Message accumulator (single word) 67static unsigned int nBytesInM; /* # bytes in M */
64static UINT nBytesInM; // # bytes in M
65 68
66/*--------------------- Export Functions --------------------------*/ 69/*--------------------- Export Functions --------------------------*/
67 70
@@ -69,113 +72,105 @@ static UINT nBytesInM; // # bytes in M
69static DWORD s_dwGetUINT32 (BYTE * p) 72static DWORD s_dwGetUINT32 (BYTE * p)
70// Convert from BYTE[] to DWORD in a portable way 73// Convert from BYTE[] to DWORD in a portable way
71{ 74{
72 DWORD res = 0; 75 DWORD res = 0;
73 UINT i; 76 unsigned int i;
74 for(i=0; i<4; i++ ) 77 for(i=0; i<4; i++ )
75 { 78 res |= (*p++) << (8*i);
76 res |= (*p++) << (8*i); 79 return res;
77 }
78 return res;
79} 80}
80 81
81static VOID s_vPutUINT32 (BYTE* p, DWORD val) 82static void s_vPutUINT32(BYTE *p, DWORD val)
82// Convert from DWORD to BYTE[] in a portable way 83// Convert from DWORD to BYTE[] in a portable way
83{ 84{
84 UINT i; 85 unsigned int i;
85 for(i=0; i<4; i++ ) 86 for(i=0; i<4; i++ ) {
86 { 87 *p++ = (BYTE) (val & 0xff);
87 *p++ = (BYTE) (val & 0xff); 88 val >>= 8;
88 val >>= 8; 89 }
89 }
90} 90}
91*/ 91*/
92 92
93static VOID s_vClear (void) 93static void s_vClear(void)
94{ 94{
95 // Reset the state to the empty message. 95 /* Reset the state to the empty message. */
96 L = K0; 96 L = K0;
97 R = K1; 97 R = K1;
98 nBytesInM = 0; 98 nBytesInM = 0;
99 M = 0; 99 M = 0;
100} 100}
101 101
102static VOID s_vSetKey (DWORD dwK0, DWORD dwK1) 102static void s_vSetKey(DWORD dwK0, DWORD dwK1)
103{ 103{
104 // Set the key 104 /* Set the key */
105 K0 = dwK0; 105 K0 = dwK0;
106 K1 = dwK1; 106 K1 = dwK1;
107 // and reset the message 107 /* and reset the message */
108 s_vClear(); 108 s_vClear();
109} 109}
110 110
111static VOID s_vAppendByte (BYTE b) 111static void s_vAppendByte(BYTE b)
112{ 112{
113 // Append the byte to our word-sized buffer 113 /* Append the byte to our word-sized buffer */
114 M |= b << (8*nBytesInM); 114 M |= b << (8*nBytesInM);
115 nBytesInM++; 115 nBytesInM++;
116 // Process the word if it is full. 116 /* Process the word if it is full. */
117 if( nBytesInM >= 4 ) 117 if (nBytesInM >= 4) {
118 { 118 L ^= M;
119 L ^= M; 119 R ^= ROL32(L, 17);
120 R ^= ROL32( L, 17 ); 120 L += R;
121 L += R; 121 R ^= ((L & 0xff00ff00) >> 8) | ((L & 0x00ff00ff) << 8);
122 R ^= ((L & 0xff00ff00) >> 8) | ((L & 0x00ff00ff) << 8); 122 L += R;
123 L += R; 123 R ^= ROL32(L, 3);
124 R ^= ROL32( L, 3 ); 124 L += R;
125 L += R; 125 R ^= ROR32(L, 2);
126 R ^= ROR32( L, 2 ); 126 L += R;
127 L += R; 127 /* Clear the buffer */
128 // Clear the buffer 128 M = 0;
129 M = 0; 129 nBytesInM = 0;
130 nBytesInM = 0; 130 }
131 }
132} 131}
133 132
134VOID MIC_vInit (DWORD dwK0, DWORD dwK1) 133void MIC_vInit(DWORD dwK0, DWORD dwK1)
135{ 134{
136 // Set the key 135 /* Set the key */
137 s_vSetKey(dwK0, dwK1); 136 s_vSetKey(dwK0, dwK1);
138} 137}
139 138
140 139
141VOID MIC_vUnInit (void) 140void MIC_vUnInit(void)
142{ 141{
143 // Wipe the key material 142 /* Wipe the key material */
144 K0 = 0; 143 K0 = 0;
145 K1 = 0; 144 K1 = 0;
146 145
147 // And the other fields as well. 146 /* And the other fields as well. */
148 //Note that this sets (L,R) to (K0,K1) which is just fine. 147 /* Note that this sets (L,R) to (K0,K1) which is just fine. */
149 s_vClear(); 148 s_vClear();
150} 149}
151 150
152VOID MIC_vAppend (PBYTE src, UINT nBytes) 151void MIC_vAppend(PBYTE src, unsigned int nBytes)
153{ 152{
154 // This is simple 153 /* This is simple */
155 while (nBytes > 0) 154 while (nBytes > 0) {
156 { 155 s_vAppendByte(*src++);
157 s_vAppendByte(*src++); 156 nBytes--;
158 nBytes--; 157 }
159 }
160} 158}
161 159
162VOID MIC_vGetMIC (PDWORD pdwL, PDWORD pdwR) 160void MIC_vGetMIC(PDWORD pdwL, PDWORD pdwR)
163{ 161{
164 // Append the minimum padding 162 /* Append the minimum padding */
165 s_vAppendByte(0x5a); 163 s_vAppendByte(0x5a);
166 s_vAppendByte(0); 164 s_vAppendByte(0);
167 s_vAppendByte(0); 165 s_vAppendByte(0);
168 s_vAppendByte(0); 166 s_vAppendByte(0);
169 s_vAppendByte(0); 167 s_vAppendByte(0);
170 // and then zeroes until the length is a multiple of 4 168 /* and then zeroes until the length is a multiple of 4 */
171 while( nBytesInM != 0 ) 169 while (nBytesInM != 0)
172 { 170 s_vAppendByte(0);
173 s_vAppendByte(0); 171 /* The s_vAppendByte function has already computed the result. */
174 } 172 *pdwL = L;
175 // The s_vAppendByte function has already computed the result. 173 *pdwR = R;
176 *pdwL = L; 174 /* Reset to the empty message. */
177 *pdwR = R; 175 s_vClear();
178 // Reset to the empty message.
179 s_vClear();
180} 176}
181
diff --git a/drivers/staging/vt6656/michael.h b/drivers/staging/vt6656/michael.h
index 3f79b52832d..3ab60928ef3 100644
--- a/drivers/staging/vt6656/michael.h
+++ b/drivers/staging/vt6656/michael.h
@@ -35,16 +35,16 @@
35 35
36/*--------------------- Export Types ------------------------------*/ 36/*--------------------- Export Types ------------------------------*/
37 37
38VOID MIC_vInit(DWORD dwK0, DWORD dwK1); 38void MIC_vInit(DWORD dwK0, DWORD dwK1);
39 39
40VOID MIC_vUnInit(void); 40void MIC_vUnInit(void);
41 41
42// Append bytes to the message to be MICed 42// Append bytes to the message to be MICed
43VOID MIC_vAppend(PBYTE src, UINT nBytes); 43void MIC_vAppend(PBYTE src, unsigned int nBytes);
44 44
45// Get the MIC result. Destination should accept 8 bytes of result. 45// Get the MIC result. Destination should accept 8 bytes of result.
46// This also resets the message to empty. 46// This also resets the message to empty.
47VOID MIC_vGetMIC(PDWORD pdwL, PDWORD pdwR); 47void MIC_vGetMIC(PDWORD pdwL, PDWORD pdwR);
48 48
49/*--------------------- Export Macros ------------------------------*/ 49/*--------------------- Export Macros ------------------------------*/
50 50
@@ -53,6 +53,4 @@ VOID MIC_vGetMIC(PDWORD pdwL, PDWORD pdwR);
53 ( ((A) << (n)) | ( ((A)>>(32-(n))) & ( (1UL << (n)) - 1 ) ) ) 53 ( ((A) << (n)) | ( ((A)>>(32-(n))) & ( (1UL << (n)) - 1 ) ) )
54#define ROR32( A, n ) ROL32( (A), 32-(n) ) 54#define ROR32( A, n ) ROL32( (A), 32-(n) )
55 55
56#endif //__MICHAEL_H__ 56#endif /* __MICHAEL_H__ */
57
58
diff --git a/drivers/staging/vt6656/power.c b/drivers/staging/vt6656/power.c
index b5702b098e1..766c5be6fd2 100644
--- a/drivers/staging/vt6656/power.c
+++ b/drivers/staging/vt6656/power.c
@@ -50,19 +50,14 @@
50 50
51/*--------------------- Static Definitions -------------------------*/ 51/*--------------------- Static Definitions -------------------------*/
52 52
53
54
55
56/*--------------------- Static Classes ----------------------------*/ 53/*--------------------- Static Classes ----------------------------*/
57 54
58/*--------------------- Static Variables --------------------------*/ 55/*--------------------- Static Variables --------------------------*/
59static int msglevel =MSG_LEVEL_INFO; 56static int msglevel =MSG_LEVEL_INFO;
60/*--------------------- Static Functions --------------------------*/ 57/*--------------------- Static Functions --------------------------*/
61 58
62
63/*--------------------- Export Variables --------------------------*/ 59/*--------------------- Export Variables --------------------------*/
64 60
65
66/*--------------------- Export Functions --------------------------*/ 61/*--------------------- Export Functions --------------------------*/
67 62
68/*+ 63/*+
@@ -75,12 +70,8 @@ static int msglevel =MSG_LEVEL_INFO;
75 * 70 *
76-*/ 71-*/
77 72
78 73void PSvEnablePowerSaving(void *hDeviceContext,
79VOID 74 WORD wListenInterval)
80PSvEnablePowerSaving(
81 IN HANDLE hDeviceContext,
82 IN WORD wListenInterval
83 )
84{ 75{
85 PSDevice pDevice = (PSDevice)hDeviceContext; 76 PSDevice pDevice = (PSDevice)hDeviceContext;
86 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 77 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -128,7 +119,7 @@ PSvEnablePowerSaving(
128 pDevice->bEnablePSMode = TRUE; 119 pDevice->bEnablePSMode = TRUE;
129 120
130 if (pDevice->eOPMode == OP_MODE_ADHOC) { 121 if (pDevice->eOPMode == OP_MODE_ADHOC) {
131// bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt); 122 /* bMgrPrepareBeaconToSend((void *) pDevice, pMgmt); */
132 } 123 }
133 // We don't send null pkt in ad hoc mode since beacon will handle this. 124 // We don't send null pkt in ad hoc mode since beacon will handle this.
134 else if (pDevice->eOPMode == OP_MODE_INFRASTRUCTURE) { 125 else if (pDevice->eOPMode == OP_MODE_INFRASTRUCTURE) {
@@ -139,11 +130,6 @@ PSvEnablePowerSaving(
139 return; 130 return;
140} 131}
141 132
142
143
144
145
146
147/*+ 133/*+
148 * 134 *
149 * Routine Description: 135 * Routine Description:
@@ -154,10 +140,7 @@ PSvEnablePowerSaving(
154 * 140 *
155-*/ 141-*/
156 142
157VOID 143void PSvDisablePowerSaving(void *hDeviceContext)
158PSvDisablePowerSaving(
159 IN HANDLE hDeviceContext
160 )
161{ 144{
162 PSDevice pDevice = (PSDevice)hDeviceContext; 145 PSDevice pDevice = (PSDevice)hDeviceContext;
163// PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 146// PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -187,7 +170,6 @@ PSvDisablePowerSaving(
187 return; 170 return;
188} 171}
189 172
190
191/*+ 173/*+
192 * 174 *
193 * Routine Description: 175 * Routine Description:
@@ -198,13 +180,9 @@ PSvDisablePowerSaving(
198 * FALSE, if fail 180 * FALSE, if fail
199-*/ 181-*/
200 182
201 183BOOL PSbConsiderPowerDown(void *hDeviceContext,
202BOOL 184 BOOL bCheckRxDMA,
203PSbConsiderPowerDown( 185 BOOL bCheckCountToWakeUp)
204 IN HANDLE hDeviceContext,
205 IN BOOL bCheckRxDMA,
206 IN BOOL bCheckCountToWakeUp
207 )
208{ 186{
209 PSDevice pDevice = (PSDevice)hDeviceContext; 187 PSDevice pDevice = (PSDevice)hDeviceContext;
210 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 188 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -248,8 +226,6 @@ PSbConsiderPowerDown(
248 return TRUE; 226 return TRUE;
249} 227}
250 228
251
252
253/*+ 229/*+
254 * 230 *
255 * Routine Description: 231 * Routine Description:
@@ -260,12 +236,7 @@ PSbConsiderPowerDown(
260 * 236 *
261-*/ 237-*/
262 238
263 239void PSvSendPSPOLL(void *hDeviceContext)
264
265VOID
266PSvSendPSPOLL(
267 IN HANDLE hDeviceContext
268 )
269{ 240{
270 PSDevice pDevice = (PSDevice)hDeviceContext; 241 PSDevice pDevice = (PSDevice)hDeviceContext;
271 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 242 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -297,8 +268,6 @@ PSvSendPSPOLL(
297 return; 268 return;
298} 269}
299 270
300
301
302/*+ 271/*+
303 * 272 *
304 * Routine Description: 273 * Routine Description:
@@ -308,10 +277,8 @@ PSvSendPSPOLL(
308 * None. 277 * None.
309 * 278 *
310-*/ 279-*/
311BOOL 280
312PSbSendNullPacket( 281BOOL PSbSendNullPacket(void *hDeviceContext)
313 IN HANDLE hDeviceContext
314 )
315{ 282{
316 PSDevice pDevice = (PSDevice)hDeviceContext; 283 PSDevice pDevice = (PSDevice)hDeviceContext;
317 PSTxMgmtPacket pTxPacket = NULL; 284 PSTxMgmtPacket pTxPacket = NULL;
@@ -388,10 +355,7 @@ PSbSendNullPacket(
388 * 355 *
389-*/ 356-*/
390 357
391BOOL 358BOOL PSbIsNextTBTTWakeUp(void *hDeviceContext)
392PSbIsNextTBTTWakeUp(
393 IN HANDLE hDeviceContext
394 )
395{ 359{
396 360
397 PSDevice pDevice = (PSDevice)hDeviceContext; 361 PSDevice pDevice = (PSDevice)hDeviceContext;
diff --git a/drivers/staging/vt6656/power.h b/drivers/staging/vt6656/power.h
index c33c93a86f5..50792bb8c97 100644
--- a/drivers/staging/vt6656/power.h
+++ b/drivers/staging/vt6656/power.h
@@ -45,40 +45,17 @@
45 45
46/*--------------------- Export Functions --------------------------*/ 46/*--------------------- Export Functions --------------------------*/
47 47
48// IN PSDevice pDevice 48/* PSDevice pDevice */
49// IN PSDevice hDeviceContext 49/* PSDevice hDeviceContext */
50 50
51BOOL 51BOOL PSbConsiderPowerDown(void *hDeviceContext,
52PSbConsiderPowerDown( 52 BOOL bCheckRxDMA,
53 IN HANDLE hDeviceContext, 53 BOOL bCheckCountToWakeUp);
54 IN BOOL bCheckRxDMA,
55 IN BOOL bCheckCountToWakeUp
56 );
57 54
58VOID 55void PSvDisablePowerSaving(void *hDeviceContext);
59PSvDisablePowerSaving( 56void PSvEnablePowerSaving(void *hDeviceContext, WORD wListenInterval);
60 IN HANDLE hDeviceContext 57void PSvSendPSPOLL(void *hDeviceContext);
61 ); 58BOOL PSbSendNullPacket(void *hDeviceContext);
59BOOL PSbIsNextTBTTWakeUp(void *hDeviceContext);
62 60
63VOID 61#endif /* __POWER_H__ */
64PSvEnablePowerSaving(
65 IN HANDLE hDeviceContext,
66 IN WORD wListenInterval
67 );
68
69VOID
70PSvSendPSPOLL(
71 IN HANDLE hDeviceContext
72 );
73
74BOOL
75PSbSendNullPacket(
76 IN HANDLE hDeviceContext
77 );
78
79BOOL
80PSbIsNextTBTTWakeUp(
81 IN HANDLE hDeviceContext
82 );
83
84#endif //__POWER_H__
diff --git a/drivers/staging/vt6656/rc4.c b/drivers/staging/vt6656/rc4.c
index e6c61312fd2..5c3c2d0552b 100644
--- a/drivers/staging/vt6656/rc4.c
+++ b/drivers/staging/vt6656/rc4.c
@@ -32,56 +32,56 @@
32 32
33#include "rc4.h" 33#include "rc4.h"
34 34
35VOID rc4_init(PRC4Ext pRC4, PBYTE pbyKey, UINT cbKey_len) 35void rc4_init(PRC4Ext pRC4, PBYTE pbyKey, unsigned int cbKey_len)
36{ 36{
37 UINT ust1, ust2; 37 unsigned int ust1, ust2;
38 UINT keyindex; 38 unsigned int keyindex;
39 UINT stateindex; 39 unsigned int stateindex;
40 PBYTE pbyst; 40 PBYTE pbyst;
41 UINT idx; 41 unsigned int idx;
42 42
43 pbyst = pRC4->abystate; 43 pbyst = pRC4->abystate;
44 pRC4->ux = 0; 44 pRC4->ux = 0;
45 pRC4->uy = 0; 45 pRC4->uy = 0;
46 for (idx = 0; idx < 256; idx++) 46 for (idx = 0; idx < 256; idx++)
47 pbyst[idx] = (BYTE)idx; 47 pbyst[idx] = (BYTE)idx;
48 keyindex = 0; 48 keyindex = 0;
49 stateindex = 0; 49 stateindex = 0;
50 for (idx = 0; idx < 256; idx++) { 50 for (idx = 0; idx < 256; idx++) {
51 ust1 = pbyst[idx]; 51 ust1 = pbyst[idx];
52 stateindex = (stateindex + pbyKey[keyindex] + ust1) & 0xff; 52 stateindex = (stateindex + pbyKey[keyindex] + ust1) & 0xff;
53 ust2 = pbyst[stateindex]; 53 ust2 = pbyst[stateindex];
54 pbyst[stateindex] = (BYTE)ust1; 54 pbyst[stateindex] = (BYTE)ust1;
55 pbyst[idx] = (BYTE)ust2; 55 pbyst[idx] = (BYTE)ust2;
56 if (++keyindex >= cbKey_len) 56 if (++keyindex >= cbKey_len)
57 keyindex = 0; 57 keyindex = 0;
58 } 58 }
59} 59}
60 60
61UINT rc4_byte(PRC4Ext pRC4) 61unsigned int rc4_byte(PRC4Ext pRC4)
62{ 62{
63 UINT ux; 63 unsigned int ux;
64 UINT uy; 64 unsigned int uy;
65 UINT ustx, usty; 65 unsigned int ustx, usty;
66 PBYTE pbyst; 66 PBYTE pbyst;
67 67
68 pbyst = pRC4->abystate; 68 pbyst = pRC4->abystate;
69 ux = (pRC4->ux + 1) & 0xff; 69 ux = (pRC4->ux + 1) & 0xff;
70 ustx = pbyst[ux]; 70 ustx = pbyst[ux];
71 uy = (ustx + pRC4->uy) & 0xff; 71 uy = (ustx + pRC4->uy) & 0xff;
72 usty = pbyst[uy]; 72 usty = pbyst[uy];
73 pRC4->ux = ux; 73 pRC4->ux = ux;
74 pRC4->uy = uy; 74 pRC4->uy = uy;
75 pbyst[uy] = (BYTE)ustx; 75 pbyst[uy] = (BYTE)ustx;
76 pbyst[ux] = (BYTE)usty; 76 pbyst[ux] = (BYTE)usty;
77 77
78 return pbyst[(ustx + usty) & 0xff]; 78 return pbyst[(ustx + usty) & 0xff];
79} 79}
80 80
81VOID rc4_encrypt(PRC4Ext pRC4, PBYTE pbyDest, 81void rc4_encrypt(PRC4Ext pRC4, PBYTE pbyDest,
82 PBYTE pbySrc, UINT cbData_len) 82 PBYTE pbySrc, unsigned int cbData_len)
83{ 83{
84 UINT ii; 84 unsigned int ii;
85 for (ii = 0; ii < cbData_len; ii++) 85 for (ii = 0; ii < cbData_len; ii++)
86 pbyDest[ii] = (BYTE)(pbySrc[ii] ^ rc4_byte(pRC4)); 86 pbyDest[ii] = (BYTE)(pbySrc[ii] ^ rc4_byte(pRC4));
87} 87}
diff --git a/drivers/staging/vt6656/rc4.h b/drivers/staging/vt6656/rc4.h
index bf607c9d446..d447879c8f9 100644
--- a/drivers/staging/vt6656/rc4.h
+++ b/drivers/staging/vt6656/rc4.h
@@ -35,13 +35,14 @@
35/*--------------------- Export Definitions -------------------------*/ 35/*--------------------- Export Definitions -------------------------*/
36/*--------------------- Export Types ------------------------------*/ 36/*--------------------- Export Types ------------------------------*/
37typedef struct { 37typedef struct {
38 UINT ux; 38 unsigned int ux;
39 UINT uy; 39 unsigned int uy;
40 BYTE abystate[256]; 40 BYTE abystate[256];
41} RC4Ext, *PRC4Ext; 41} RC4Ext, *PRC4Ext;
42 42
43VOID rc4_init(PRC4Ext pRC4, PBYTE pbyKey, UINT cbKey_len); 43void rc4_init(PRC4Ext pRC4, PBYTE pbyKey, unsigned int cbKey_len);
44UINT rc4_byte(PRC4Ext pRC4); 44unsigned int rc4_byte(PRC4Ext pRC4);
45void rc4_encrypt(PRC4Ext pRC4, PBYTE pbyDest, PBYTE pbySrc, UINT cbData_len); 45void rc4_encrypt(PRC4Ext pRC4, PBYTE pbyDest, PBYTE pbySrc,
46 unsigned int cbData_len);
46 47
47#endif //__RC4_H__ 48#endif /* __RC4_H__ */
diff --git a/drivers/staging/vt6656/rf.c b/drivers/staging/vt6656/rf.c
index 405c4f71b5f..3fd0478a9a5 100644
--- a/drivers/staging/vt6656/rf.c
+++ b/drivers/staging/vt6656/rf.c
@@ -757,9 +757,9 @@ BOOL IFRFbWriteEmbeded (PSDevice pDevice, DWORD dwData)
757 * 757 *
758 */ 758 */
759BOOL RFbSetPower ( 759BOOL RFbSetPower (
760 IN PSDevice pDevice, 760 PSDevice pDevice,
761 IN UINT uRATE, 761 unsigned int uRATE,
762 IN UINT uCH 762 unsigned int uCH
763 ) 763 )
764{ 764{
765BOOL bResult = TRUE; 765BOOL bResult = TRUE;
@@ -811,9 +811,9 @@ BYTE byPwr = pDevice->byCCKPwr;
811 * 811 *
812 */ 812 */
813BOOL RFbRawSetPower ( 813BOOL RFbRawSetPower (
814 IN PSDevice pDevice, 814 PSDevice pDevice,
815 IN BYTE byPwr, 815 BYTE byPwr,
816 IN UINT uRATE 816 unsigned int uRATE
817 ) 817 )
818{ 818{
819BOOL bResult = TRUE; 819BOOL bResult = TRUE;
@@ -954,16 +954,16 @@ BOOL bResult = TRUE;
954 * Return Value: none 954 * Return Value: none
955 * 955 *
956-*/ 956-*/
957VOID 957void
958RFvRSSITodBm ( 958RFvRSSITodBm (
959 IN PSDevice pDevice, 959 PSDevice pDevice,
960 IN BYTE byCurrRSSI, 960 BYTE byCurrRSSI,
961 long * pldBm 961 long * pldBm
962 ) 962 )
963{ 963{
964 BYTE byIdx = (((byCurrRSSI & 0xC0) >> 6) & 0x03); 964 BYTE byIdx = (((byCurrRSSI & 0xC0) >> 6) & 0x03);
965 LONG b = (byCurrRSSI & 0x3F); 965 signed long b = (byCurrRSSI & 0x3F);
966 LONG a = 0; 966 signed long a = 0;
967 BYTE abyAIROHARF[4] = {0, 18, 0, 40}; 967 BYTE abyAIROHARF[4] = {0, 18, 0, 40};
968 968
969 switch (pDevice->byRFType) { 969 switch (pDevice->byRFType) {
@@ -984,9 +984,9 @@ RFvRSSITodBm (
984 984
985 985
986 986
987VOID 987void
988RFbRFTableDownload ( 988RFbRFTableDownload (
989 IN PSDevice pDevice 989 PSDevice pDevice
990 ) 990 )
991{ 991{
992WORD wLength1 = 0,wLength2 = 0 ,wLength3 = 0; 992WORD wLength1 = 0,wLength2 = 0 ,wLength3 = 0;
@@ -1133,9 +1133,9 @@ BYTE abyArray[256];
1133 1133
1134// RobertYu:20060412, TWIF1.11 adjust LO Current for 11b mode 1134// RobertYu:20060412, TWIF1.11 adjust LO Current for 11b mode
1135BOOL s_bVT3226D0_11bLoCurrentAdjust( 1135BOOL s_bVT3226D0_11bLoCurrentAdjust(
1136 IN PSDevice pDevice, 1136 PSDevice pDevice,
1137 IN BYTE byChannel, 1137 BYTE byChannel,
1138 IN BOOL b11bMode ) 1138 BOOL b11bMode)
1139{ 1139{
1140 BOOL bResult; 1140 BOOL bResult;
1141 1141
diff --git a/drivers/staging/vt6656/rf.h b/drivers/staging/vt6656/rf.h
index 55d882f78f2..d4f8b94132b 100644
--- a/drivers/staging/vt6656/rf.h
+++ b/drivers/staging/vt6656/rf.h
@@ -65,36 +65,33 @@ extern const BYTE RFaby11aChannelIndex[200];
65 65
66BOOL IFRFbWriteEmbeded(PSDevice pDevice, DWORD dwData); 66BOOL IFRFbWriteEmbeded(PSDevice pDevice, DWORD dwData);
67BOOL RFbSetPower ( 67BOOL RFbSetPower (
68 IN PSDevice pDevice, 68 PSDevice pDevice,
69 IN UINT uRATE, 69 unsigned int uRATE,
70 IN UINT uCH 70 unsigned int uCH
71 ); 71 );
72 72
73BOOL RFbRawSetPower( 73BOOL RFbRawSetPower(
74 IN PSDevice pDevice, 74 PSDevice pDevice,
75 IN BYTE byPwr, 75 BYTE byPwr,
76 IN UINT uRATE 76 unsigned int uRATE
77 ); 77 );
78 78
79VOID 79void
80RFvRSSITodBm ( 80RFvRSSITodBm (
81 IN PSDevice pDevice, 81 PSDevice pDevice,
82 IN BYTE byCurrRSSI, 82 BYTE byCurrRSSI,
83 long * pldBm 83 long * pldBm
84 ); 84 );
85 85
86VOID 86void
87RFbRFTableDownload ( 87RFbRFTableDownload (
88 IN PSDevice pDevice 88 PSDevice pDevice
89 ); 89 );
90 90
91BOOL s_bVT3226D0_11bLoCurrentAdjust( 91BOOL s_bVT3226D0_11bLoCurrentAdjust(
92 IN PSDevice pDevice, 92 PSDevice pDevice,
93 IN BYTE byChannel, 93 BYTE byChannel,
94 IN BOOL b11bMode 94 BOOL b11bMode
95 ); 95 );
96 96
97#endif // __RF_H__ 97#endif /* __RF_H__ */
98
99
100
diff --git a/drivers/staging/vt6656/rndis.h b/drivers/staging/vt6656/rndis.h
index 1d32d81079b..ac842dd13a6 100644
--- a/drivers/staging/vt6656/rndis.h
+++ b/drivers/staging/vt6656/rndis.h
@@ -158,5 +158,4 @@ typedef struct _CMD_CHANGE_BBTYPE
158 158
159/*--------------------- Export Functions --------------------------*/ 159/*--------------------- Export Functions --------------------------*/
160 160
161 161#endif /* _RNDIS_H_ */
162#endif // _RNDIS_H_
diff --git a/drivers/staging/vt6656/rxtx.c b/drivers/staging/vt6656/rxtx.c
index a2ce6fad8ee..3e7e56649a5 100644
--- a/drivers/staging/vt6656/rxtx.c
+++ b/drivers/staging/vt6656/rxtx.c
@@ -113,181 +113,173 @@ const WORD wFB_Opt1[2][5] = {
113/*--------------------- Static Functions --------------------------*/ 113/*--------------------- Static Functions --------------------------*/
114 114
115static 115static
116VOID 116void
117s_vSaveTxPktInfo( 117s_vSaveTxPktInfo(
118 IN PSDevice pDevice, 118 PSDevice pDevice,
119 IN BYTE byPktNum, 119 BYTE byPktNum,
120 IN PBYTE pbyDestAddr, 120 PBYTE pbyDestAddr,
121 IN WORD wPktLength, 121 WORD wPktLength,
122 IN WORD wFIFOCtl 122 WORD wFIFOCtl
123); 123);
124 124
125static 125static
126PVOID 126void *
127s_vGetFreeContext( 127s_vGetFreeContext(
128 PSDevice pDevice 128 PSDevice pDevice
129 ); 129 );
130 130
131 131
132static 132static
133VOID 133void
134s_vGenerateTxParameter( 134s_vGenerateTxParameter(
135 IN PSDevice pDevice, 135 PSDevice pDevice,
136 IN BYTE byPktType, 136 BYTE byPktType,
137 IN WORD wCurrentRate, 137 WORD wCurrentRate,
138 IN PVOID pTxBufHead, 138 void *pTxBufHead,
139 IN PVOID pvRrvTime, 139 void *pvRrvTime,
140 IN PVOID pvRTS, 140 void *pvRTS,
141 IN PVOID pvCTS, 141 void *pvCTS,
142 IN UINT cbFrameSize, 142 unsigned int cbFrameSize,
143 IN BOOL bNeedACK, 143 BOOL bNeedACK,
144 IN UINT uDMAIdx, 144 unsigned int uDMAIdx,
145 IN PSEthernetHeader psEthHeader 145 PSEthernetHeader psEthHeader
146 ); 146 );
147 147
148 148
149static 149static unsigned int s_uFillDataHead(
150UINT 150 PSDevice pDevice,
151s_uFillDataHead ( 151 BYTE byPktType,
152 IN PSDevice pDevice, 152 WORD wCurrentRate,
153 IN BYTE byPktType, 153 void *pTxDataHead,
154 IN WORD wCurrentRate, 154 unsigned int cbFrameLength,
155 IN PVOID pTxDataHead, 155 unsigned int uDMAIdx,
156 IN UINT cbFrameLength, 156 BOOL bNeedAck,
157 IN UINT uDMAIdx, 157 unsigned int uFragIdx,
158 IN BOOL bNeedAck, 158 unsigned int cbLastFragmentSize,
159 IN UINT uFragIdx, 159 unsigned int uMACfragNum,
160 IN UINT cbLastFragmentSize, 160 BYTE byFBOption
161 IN UINT uMACfragNum,
162 IN BYTE byFBOption
163 ); 161 );
164 162
165 163
166 164
167 165
168static 166static
169VOID 167void
170s_vGenerateMACHeader ( 168s_vGenerateMACHeader (
171 IN PSDevice pDevice, 169 PSDevice pDevice,
172 IN PBYTE pbyBufferAddr, 170 PBYTE pbyBufferAddr,
173 IN WORD wDuration, 171 WORD wDuration,
174 IN PSEthernetHeader psEthHeader, 172 PSEthernetHeader psEthHeader,
175 IN BOOL bNeedEncrypt, 173 BOOL bNeedEncrypt,
176 IN WORD wFragType, 174 WORD wFragType,
177 IN UINT uDMAIdx, 175 unsigned int uDMAIdx,
178 IN UINT uFragIdx 176 unsigned int uFragIdx
179 ); 177 );
180 178
181static 179static
182VOID 180void
183s_vFillTxKey( 181s_vFillTxKey(
184 IN PSDevice pDevice, 182 PSDevice pDevice,
185 IN PBYTE pbyBuf, 183 PBYTE pbyBuf,
186 IN PBYTE pbyIVHead, 184 PBYTE pbyIVHead,
187 IN PSKeyItem pTransmitKey, 185 PSKeyItem pTransmitKey,
188 IN PBYTE pbyHdrBuf, 186 PBYTE pbyHdrBuf,
189 IN WORD wPayloadLen, 187 WORD wPayloadLen,
190 OUT PBYTE pMICHDR 188 PBYTE pMICHDR
191 ); 189 );
192 190
193static 191static
194VOID 192void
195s_vSWencryption ( 193s_vSWencryption (
196 IN PSDevice pDevice, 194 PSDevice pDevice,
197 IN PSKeyItem pTransmitKey, 195 PSKeyItem pTransmitKey,
198 IN PBYTE pbyPayloadHead, 196 PBYTE pbyPayloadHead,
199 IN WORD wPayloadSize 197 WORD wPayloadSize
200 ); 198 );
201 199
202static 200static unsigned int s_uGetTxRsvTime(
203UINT 201 PSDevice pDevice,
204s_uGetTxRsvTime ( 202 BYTE byPktType,
205 IN PSDevice pDevice, 203 unsigned int cbFrameLength,
206 IN BYTE byPktType, 204 WORD wRate,
207 IN UINT cbFrameLength, 205 BOOL bNeedAck
208 IN WORD wRate,
209 IN BOOL bNeedAck
210 ); 206 );
211 207
212 208
213static 209static unsigned int s_uGetRTSCTSRsvTime(
214UINT 210 PSDevice pDevice,
215s_uGetRTSCTSRsvTime ( 211 BYTE byRTSRsvType,
216 IN PSDevice pDevice, 212 BYTE byPktType,
217 IN BYTE byRTSRsvType, 213 unsigned int cbFrameLength,
218 IN BYTE byPktType, 214 WORD wCurrentRate
219 IN UINT cbFrameLength,
220 IN WORD wCurrentRate
221 ); 215 );
222 216
223static 217static
224VOID 218void
225s_vFillCTSHead ( 219s_vFillCTSHead (
226 IN PSDevice pDevice, 220 PSDevice pDevice,
227 IN UINT uDMAIdx, 221 unsigned int uDMAIdx,
228 IN BYTE byPktType, 222 BYTE byPktType,
229 IN PVOID pvCTS, 223 void *pvCTS,
230 IN UINT cbFrameLength, 224 unsigned int cbFrameLength,
231 IN BOOL bNeedAck, 225 BOOL bNeedAck,
232 IN BOOL bDisCRC, 226 BOOL bDisCRC,
233 IN WORD wCurrentRate, 227 WORD wCurrentRate,
234 IN BYTE byFBOption 228 BYTE byFBOption
235 ); 229 );
236 230
237static 231static
238VOID 232void
239s_vFillRTSHead( 233s_vFillRTSHead(
240 IN PSDevice pDevice, 234 PSDevice pDevice,
241 IN BYTE byPktType, 235 BYTE byPktType,
242 IN PVOID pvRTS, 236 void *pvRTS,
243 IN UINT cbFrameLength, 237 unsigned int cbFrameLength,
244 IN BOOL bNeedAck, 238 BOOL bNeedAck,
245 IN BOOL bDisCRC, 239 BOOL bDisCRC,
246 IN PSEthernetHeader psEthHeader, 240 PSEthernetHeader psEthHeader,
247 IN WORD wCurrentRate, 241 WORD wCurrentRate,
248 IN BYTE byFBOption 242 BYTE byFBOption
249 ); 243 );
250 244
251static 245static unsigned int s_uGetDataDuration(
252UINT 246 PSDevice pDevice,
253s_uGetDataDuration ( 247 BYTE byDurType,
254 IN PSDevice pDevice, 248 unsigned int cbFrameLength,
255 IN BYTE byDurType, 249 BYTE byPktType,
256 IN UINT cbFrameLength, 250 WORD wRate,
257 IN BYTE byPktType, 251 BOOL bNeedAck,
258 IN WORD wRate, 252 unsigned int uFragIdx,
259 IN BOOL bNeedAck, 253 unsigned int cbLastFragmentSize,
260 IN UINT uFragIdx, 254 unsigned int uMACfragNum,
261 IN UINT cbLastFragmentSize, 255 BYTE byFBOption
262 IN UINT uMACfragNum,
263 IN BYTE byFBOption
264 ); 256 );
265 257
266 258
267static 259static
268UINT 260unsigned int
269s_uGetRTSCTSDuration ( 261s_uGetRTSCTSDuration (
270 IN PSDevice pDevice, 262 PSDevice pDevice,
271 IN BYTE byDurType, 263 BYTE byDurType,
272 IN UINT cbFrameLength, 264 unsigned int cbFrameLength,
273 IN BYTE byPktType, 265 BYTE byPktType,
274 IN WORD wRate, 266 WORD wRate,
275 IN BOOL bNeedAck, 267 BOOL bNeedAck,
276 IN BYTE byFBOption 268 BYTE byFBOption
277 ); 269 );
278 270
279 271
280/*--------------------- Export Variables --------------------------*/ 272/*--------------------- Export Variables --------------------------*/
281 273
282static 274static
283PVOID 275void *
284s_vGetFreeContext( 276s_vGetFreeContext(
285 PSDevice pDevice 277 PSDevice pDevice
286 ) 278 )
287{ 279{
288 PUSB_SEND_CONTEXT pContext = NULL; 280 PUSB_SEND_CONTEXT pContext = NULL;
289 PUSB_SEND_CONTEXT pReturnContext = NULL; 281 PUSB_SEND_CONTEXT pReturnContext = NULL;
290 UINT ii; 282 unsigned int ii;
291 283
292 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"GetFreeContext()\n"); 284 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"GetFreeContext()\n");
293 285
@@ -302,12 +294,12 @@ s_vGetFreeContext(
302 if ( ii == pDevice->cbTD ) { 294 if ( ii == pDevice->cbTD ) {
303 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"No Free Tx Context\n"); 295 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"No Free Tx Context\n");
304 } 296 }
305 return ((PVOID) pReturnContext); 297 return (void *) pReturnContext;
306} 298}
307 299
308 300
309static 301static
310VOID 302void
311s_vSaveTxPktInfo(PSDevice pDevice, BYTE byPktNum, PBYTE pbyDestAddr, WORD wPktLength, WORD wFIFOCtl) 303s_vSaveTxPktInfo(PSDevice pDevice, BYTE byPktNum, PBYTE pbyDestAddr, WORD wPktLength, WORD wFIFOCtl)
312{ 304{
313 PSStatCounter pStatistic=&(pDevice->scStatistic); 305 PSStatCounter pStatistic=&(pDevice->scStatistic);
@@ -322,22 +314,24 @@ s_vSaveTxPktInfo(PSDevice pDevice, BYTE byPktNum, PBYTE pbyDestAddr, WORD wPktLe
322 314
323 pStatistic->abyTxPktInfo[byPktNum].wLength = wPktLength; 315 pStatistic->abyTxPktInfo[byPktNum].wLength = wPktLength;
324 pStatistic->abyTxPktInfo[byPktNum].wFIFOCtl = wFIFOCtl; 316 pStatistic->abyTxPktInfo[byPktNum].wFIFOCtl = wFIFOCtl;
325 memcpy(pStatistic->abyTxPktInfo[byPktNum].abyDestAddr, pbyDestAddr, U_ETHER_ADDR_LEN); 317 memcpy(pStatistic->abyTxPktInfo[byPktNum].abyDestAddr,
318 pbyDestAddr,
319 ETH_ALEN);
326} 320}
327 321
328 322
329 323
330 324
331static 325static
332VOID 326void
333s_vFillTxKey ( 327s_vFillTxKey (
334 IN PSDevice pDevice, 328 PSDevice pDevice,
335 IN PBYTE pbyBuf, 329 PBYTE pbyBuf,
336 IN PBYTE pbyIVHead, 330 PBYTE pbyIVHead,
337 IN PSKeyItem pTransmitKey, 331 PSKeyItem pTransmitKey,
338 IN PBYTE pbyHdrBuf, 332 PBYTE pbyHdrBuf,
339 IN WORD wPayloadLen, 333 WORD wPayloadLen,
340 OUT PBYTE pMICHDR 334 PBYTE pMICHDR
341 ) 335 )
342{ 336{
343 PDWORD pdwIV = (PDWORD) pbyIVHead; 337 PDWORD pdwIV = (PDWORD) pbyIVHead;
@@ -446,15 +440,15 @@ s_vFillTxKey (
446 440
447 441
448static 442static
449VOID 443void
450s_vSWencryption ( 444s_vSWencryption (
451 IN PSDevice pDevice, 445 PSDevice pDevice,
452 IN PSKeyItem pTransmitKey, 446 PSKeyItem pTransmitKey,
453 IN PBYTE pbyPayloadHead, 447 PBYTE pbyPayloadHead,
454 IN WORD wPayloadSize 448 WORD wPayloadSize
455 ) 449 )
456{ 450{
457 UINT cbICVlen = 4; 451 unsigned int cbICVlen = 4;
458 DWORD dwICV = 0xFFFFFFFFL; 452 DWORD dwICV = 0xFFFFFFFFL;
459 PDWORD pdwICV; 453 PDWORD pdwICV;
460 454
@@ -495,16 +489,16 @@ s_vSWencryption (
495 PK_TYPE_11GA 3 489 PK_TYPE_11GA 3
496*/ 490*/
497static 491static
498UINT 492unsigned int
499s_uGetTxRsvTime ( 493s_uGetTxRsvTime (
500 IN PSDevice pDevice, 494 PSDevice pDevice,
501 IN BYTE byPktType, 495 BYTE byPktType,
502 IN UINT cbFrameLength, 496 unsigned int cbFrameLength,
503 IN WORD wRate, 497 WORD wRate,
504 IN BOOL bNeedAck 498 BOOL bNeedAck
505 ) 499 )
506{ 500{
507 UINT uDataTime, uAckTime; 501 unsigned int uDataTime, uAckTime;
508 502
509 uDataTime = BBuGetFrameTime(pDevice->byPreambleType, byPktType, cbFrameLength, wRate); 503 uDataTime = BBuGetFrameTime(pDevice->byPreambleType, byPktType, cbFrameLength, wRate);
510 if (byPktType == PK_TYPE_11B) {//llb,CCK mode 504 if (byPktType == PK_TYPE_11B) {//llb,CCK mode
@@ -523,16 +517,16 @@ s_uGetTxRsvTime (
523 517
524//byFreqType: 0=>5GHZ 1=>2.4GHZ 518//byFreqType: 0=>5GHZ 1=>2.4GHZ
525static 519static
526UINT 520unsigned int
527s_uGetRTSCTSRsvTime ( 521s_uGetRTSCTSRsvTime (
528 IN PSDevice pDevice, 522 PSDevice pDevice,
529 IN BYTE byRTSRsvType, 523 BYTE byRTSRsvType,
530 IN BYTE byPktType, 524 BYTE byPktType,
531 IN UINT cbFrameLength, 525 unsigned int cbFrameLength,
532 IN WORD wCurrentRate 526 WORD wCurrentRate
533 ) 527 )
534{ 528{
535 UINT uRrvTime , uRTSTime, uCTSTime, uAckTime, uDataTime; 529 unsigned int uRrvTime , uRTSTime, uCTSTime, uAckTime, uDataTime;
536 530
537 uRrvTime = uRTSTime = uCTSTime = uAckTime = uDataTime = 0; 531 uRrvTime = uRTSTime = uCTSTime = uAckTime = uDataTime = 0;
538 532
@@ -565,23 +559,22 @@ s_uGetRTSCTSRsvTime (
565 559
566//byFreqType 0: 5GHz, 1:2.4Ghz 560//byFreqType 0: 5GHz, 1:2.4Ghz
567static 561static
568UINT 562unsigned int
569s_uGetDataDuration ( 563s_uGetDataDuration (
570 IN PSDevice pDevice, 564 PSDevice pDevice,
571 IN BYTE byDurType, 565 BYTE byDurType,
572 IN UINT cbFrameLength, 566 unsigned int cbFrameLength,
573 IN BYTE byPktType, 567 BYTE byPktType,
574 IN WORD wRate, 568 WORD wRate,
575 IN BOOL bNeedAck, 569 BOOL bNeedAck,
576 IN UINT uFragIdx, 570 unsigned int uFragIdx,
577 IN UINT cbLastFragmentSize, 571 unsigned int cbLastFragmentSize,
578 IN UINT uMACfragNum, 572 unsigned int uMACfragNum,
579 IN BYTE byFBOption 573 BYTE byFBOption
580 ) 574 )
581{ 575{
582 BOOL bLastFrag = 0; 576 BOOL bLastFrag = 0;
583 UINT uAckTime =0, uNextPktTime = 0; 577 unsigned int uAckTime = 0, uNextPktTime = 0;
584
585 578
586 if (uFragIdx == (uMACfragNum-1)) { 579 if (uFragIdx == (uMACfragNum-1)) {
587 bLastFrag = 1; 580 bLastFrag = 1;
@@ -735,18 +728,18 @@ s_uGetDataDuration (
735 728
736//byFreqType: 0=>5GHZ 1=>2.4GHZ 729//byFreqType: 0=>5GHZ 1=>2.4GHZ
737static 730static
738UINT 731unsigned int
739s_uGetRTSCTSDuration ( 732s_uGetRTSCTSDuration (
740 IN PSDevice pDevice, 733 PSDevice pDevice,
741 IN BYTE byDurType, 734 BYTE byDurType,
742 IN UINT cbFrameLength, 735 unsigned int cbFrameLength,
743 IN BYTE byPktType, 736 BYTE byPktType,
744 IN WORD wRate, 737 WORD wRate,
745 IN BOOL bNeedAck, 738 BOOL bNeedAck,
746 IN BYTE byFBOption 739 BYTE byFBOption
747 ) 740 )
748{ 741{
749 UINT uCTSTime = 0, uDurTime = 0; 742 unsigned int uCTSTime = 0, uDurTime = 0;
750 743
751 744
752 switch (byDurType) { 745 switch (byDurType) {
@@ -834,19 +827,19 @@ s_uGetRTSCTSDuration (
834 827
835 828
836static 829static
837UINT 830unsigned int
838s_uFillDataHead ( 831s_uFillDataHead (
839 IN PSDevice pDevice, 832 PSDevice pDevice,
840 IN BYTE byPktType, 833 BYTE byPktType,
841 IN WORD wCurrentRate, 834 WORD wCurrentRate,
842 IN PVOID pTxDataHead, 835 void *pTxDataHead,
843 IN UINT cbFrameLength, 836 unsigned int cbFrameLength,
844 IN UINT uDMAIdx, 837 unsigned int uDMAIdx,
845 IN BOOL bNeedAck, 838 BOOL bNeedAck,
846 IN UINT uFragIdx, 839 unsigned int uFragIdx,
847 IN UINT cbLastFragmentSize, 840 unsigned int cbLastFragmentSize,
848 IN UINT uMACfragNum, 841 unsigned int uMACfragNum,
849 IN BYTE byFBOption 842 BYTE byFBOption
850 ) 843 )
851{ 844{
852 845
@@ -979,20 +972,20 @@ s_uFillDataHead (
979 972
980 973
981static 974static
982VOID 975void
983s_vFillRTSHead ( 976s_vFillRTSHead (
984 IN PSDevice pDevice, 977 PSDevice pDevice,
985 IN BYTE byPktType, 978 BYTE byPktType,
986 IN PVOID pvRTS, 979 void *pvRTS,
987 IN UINT cbFrameLength, 980 unsigned int cbFrameLength,
988 IN BOOL bNeedAck, 981 BOOL bNeedAck,
989 IN BOOL bDisCRC, 982 BOOL bDisCRC,
990 IN PSEthernetHeader psEthHeader, 983 PSEthernetHeader psEthHeader,
991 IN WORD wCurrentRate, 984 WORD wCurrentRate,
992 IN BYTE byFBOption 985 BYTE byFBOption
993 ) 986 )
994{ 987{
995 UINT uRTSFrameLen = 20; 988 unsigned int uRTSFrameLen = 20;
996 WORD wLen = 0x0000; 989 WORD wLen = 0x0000;
997 990
998 if (pvRTS == NULL) 991 if (pvRTS == NULL)
@@ -1026,18 +1019,27 @@ s_vFillRTSHead (
1026 pBuf->Data.wDurationID = pBuf->wDuration_aa; 1019 pBuf->Data.wDurationID = pBuf->wDuration_aa;
1027 //Get RTS Frame body 1020 //Get RTS Frame body
1028 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4 1021 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
1029 if ((pDevice->eOPMode == OP_MODE_ADHOC) || 1022
1030 (pDevice->eOPMode == OP_MODE_AP)) { 1023 if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
1031 memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN); 1024 (pDevice->eOPMode == OP_MODE_AP)) {
1032 } 1025 memcpy(&(pBuf->Data.abyRA[0]),
1026 &(psEthHeader->abyDstAddr[0]),
1027 ETH_ALEN);
1028 }
1033 else { 1029 else {
1034 memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1030 memcpy(&(pBuf->Data.abyRA[0]),
1035 } 1031 &(pDevice->abyBSSID[0]),
1036 if (pDevice->eOPMode == OP_MODE_AP) { 1032 ETH_ALEN);
1037 memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1033 }
1038 } 1034 if (pDevice->eOPMode == OP_MODE_AP) {
1035 memcpy(&(pBuf->Data.abyTA[0]),
1036 &(pDevice->abyBSSID[0]),
1037 ETH_ALEN);
1038 }
1039 else { 1039 else {
1040 memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN); 1040 memcpy(&(pBuf->Data.abyTA[0]),
1041 &(psEthHeader->abySrcAddr[0]),
1042 ETH_ALEN);
1041 } 1043 }
1042 } 1044 }
1043 else { 1045 else {
@@ -1063,19 +1065,27 @@ s_vFillRTSHead (
1063 //Get RTS Frame body 1065 //Get RTS Frame body
1064 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4 1066 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
1065 1067
1066 if ((pDevice->eOPMode == OP_MODE_ADHOC) || 1068 if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
1067 (pDevice->eOPMode == OP_MODE_AP)) { 1069 (pDevice->eOPMode == OP_MODE_AP)) {
1068 memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN); 1070 memcpy(&(pBuf->Data.abyRA[0]),
1069 } 1071 &(psEthHeader->abyDstAddr[0]),
1072 ETH_ALEN);
1073 }
1070 else { 1074 else {
1071 memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1075 memcpy(&(pBuf->Data.abyRA[0]),
1076 &(pDevice->abyBSSID[0]),
1077 ETH_ALEN);
1072 } 1078 }
1073 1079
1074 if (pDevice->eOPMode == OP_MODE_AP) { 1080 if (pDevice->eOPMode == OP_MODE_AP) {
1075 memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1081 memcpy(&(pBuf->Data.abyTA[0]),
1076 } 1082 &(pDevice->abyBSSID[0]),
1083 ETH_ALEN);
1084 }
1077 else { 1085 else {
1078 memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN); 1086 memcpy(&(pBuf->Data.abyTA[0]),
1087 &(psEthHeader->abySrcAddr[0]),
1088 ETH_ALEN);
1079 } 1089 }
1080 1090
1081 } // if (byFBOption == AUTO_FB_NONE) 1091 } // if (byFBOption == AUTO_FB_NONE)
@@ -1094,20 +1104,26 @@ s_vFillRTSHead (
1094 //Get RTS Frame body 1104 //Get RTS Frame body
1095 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4 1105 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
1096 1106
1097 if ((pDevice->eOPMode == OP_MODE_ADHOC) || 1107 if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
1098 (pDevice->eOPMode == OP_MODE_AP)) { 1108 (pDevice->eOPMode == OP_MODE_AP)) {
1099 memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN); 1109 memcpy(&(pBuf->Data.abyRA[0]),
1100 } 1110 &(psEthHeader->abyDstAddr[0]),
1101 else { 1111 ETH_ALEN);
1102 memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1112 } else {
1103 } 1113 memcpy(&(pBuf->Data.abyRA[0]),
1104 1114 &(pDevice->abyBSSID[0]),
1105 if (pDevice->eOPMode == OP_MODE_AP) { 1115 ETH_ALEN);
1106 memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1116 }
1107 } 1117
1108 else { 1118 if (pDevice->eOPMode == OP_MODE_AP) {
1109 memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN); 1119 memcpy(&(pBuf->Data.abyTA[0]),
1110 } 1120 &(pDevice->abyBSSID[0]),
1121 ETH_ALEN);
1122 } else {
1123 memcpy(&(pBuf->Data.abyTA[0]),
1124 &(psEthHeader->abySrcAddr[0]),
1125 ETH_ALEN);
1126 }
1111 1127
1112 } 1128 }
1113 else { 1129 else {
@@ -1125,19 +1141,25 @@ s_vFillRTSHead (
1125 //Get RTS Frame body 1141 //Get RTS Frame body
1126 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4 1142 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
1127 1143
1128 if ((pDevice->eOPMode == OP_MODE_ADHOC) || 1144 if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
1129 (pDevice->eOPMode == OP_MODE_AP)) { 1145 (pDevice->eOPMode == OP_MODE_AP)) {
1130 memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN); 1146 memcpy(&(pBuf->Data.abyRA[0]),
1131 } 1147 &(psEthHeader->abyDstAddr[0]),
1132 else { 1148 ETH_ALEN);
1133 memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1149 } else {
1134 } 1150 memcpy(&(pBuf->Data.abyRA[0]),
1135 if (pDevice->eOPMode == OP_MODE_AP) { 1151 &(pDevice->abyBSSID[0]),
1136 memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1152 ETH_ALEN);
1137 } 1153 }
1138 else { 1154 if (pDevice->eOPMode == OP_MODE_AP) {
1139 memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN); 1155 memcpy(&(pBuf->Data.abyTA[0]),
1140 } 1156 &(pDevice->abyBSSID[0]),
1157 ETH_ALEN);
1158 } else {
1159 memcpy(&(pBuf->Data.abyTA[0]),
1160 &(psEthHeader->abySrcAddr[0]),
1161 ETH_ALEN);
1162 }
1141 } 1163 }
1142 } 1164 }
1143 else if (byPktType == PK_TYPE_11B) { 1165 else if (byPktType == PK_TYPE_11B) {
@@ -1153,39 +1175,45 @@ s_vFillRTSHead (
1153 //Get RTS Frame body 1175 //Get RTS Frame body
1154 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4 1176 pBuf->Data.wFrameControl = TYPE_CTL_RTS;//0x00B4
1155 1177
1156 1178 if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
1157 if ((pDevice->eOPMode == OP_MODE_ADHOC) ||
1158 (pDevice->eOPMode == OP_MODE_AP)) { 1179 (pDevice->eOPMode == OP_MODE_AP)) {
1159 memcpy(&(pBuf->Data.abyRA[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN); 1180 memcpy(&(pBuf->Data.abyRA[0]),
1181 &(psEthHeader->abyDstAddr[0]),
1182 ETH_ALEN);
1160 } 1183 }
1161 else { 1184 else {
1162 memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1185 memcpy(&(pBuf->Data.abyRA[0]),
1186 &(pDevice->abyBSSID[0]),
1187 ETH_ALEN);
1163 } 1188 }
1164 1189
1165 if (pDevice->eOPMode == OP_MODE_AP) { 1190 if (pDevice->eOPMode == OP_MODE_AP) {
1166 memcpy(&(pBuf->Data.abyTA[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1191 memcpy(&(pBuf->Data.abyTA[0]),
1167 } 1192 &(pDevice->abyBSSID[0]),
1168 else { 1193 ETH_ALEN);
1169 memcpy(&(pBuf->Data.abyTA[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN); 1194 } else {
1195 memcpy(&(pBuf->Data.abyTA[0]),
1196 &(psEthHeader->abySrcAddr[0]),
1197 ETH_ALEN);
1170 } 1198 }
1171 } 1199 }
1172} 1200}
1173 1201
1174static 1202static
1175VOID 1203void
1176s_vFillCTSHead ( 1204s_vFillCTSHead (
1177 IN PSDevice pDevice, 1205 PSDevice pDevice,
1178 IN UINT uDMAIdx, 1206 unsigned int uDMAIdx,
1179 IN BYTE byPktType, 1207 BYTE byPktType,
1180 IN PVOID pvCTS, 1208 void *pvCTS,
1181 IN UINT cbFrameLength, 1209 unsigned int cbFrameLength,
1182 IN BOOL bNeedAck, 1210 BOOL bNeedAck,
1183 IN BOOL bDisCRC, 1211 BOOL bDisCRC,
1184 IN WORD wCurrentRate, 1212 WORD wCurrentRate,
1185 IN BYTE byFBOption 1213 BYTE byFBOption
1186 ) 1214 )
1187{ 1215{
1188 UINT uCTSFrameLen = 14; 1216 unsigned int uCTSFrameLen = 14;
1189 WORD wLen = 0x0000; 1217 WORD wLen = 0x0000;
1190 1218
1191 if (pvCTS == NULL) { 1219 if (pvCTS == NULL) {
@@ -1222,7 +1250,9 @@ s_vFillCTSHead (
1222 pBuf->Data.wDurationID = pBuf->wDuration_ba; 1250 pBuf->Data.wDurationID = pBuf->wDuration_ba;
1223 pBuf->Data.wFrameControl = TYPE_CTL_CTS;//0x00C4 1251 pBuf->Data.wFrameControl = TYPE_CTL_CTS;//0x00C4
1224 pBuf->Data.wReserved = 0x0000; 1252 pBuf->Data.wReserved = 0x0000;
1225 memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyCurrentNetAddr[0]), U_ETHER_ADDR_LEN); 1253 memcpy(&(pBuf->Data.abyRA[0]),
1254 &(pDevice->abyCurrentNetAddr[0]),
1255 ETH_ALEN);
1226 } else { //if (byFBOption != AUTO_FB_NONE && uDMAIdx != TYPE_ATIMDMA && uDMAIdx != TYPE_BEACONDMA) 1256 } else { //if (byFBOption != AUTO_FB_NONE && uDMAIdx != TYPE_ATIMDMA && uDMAIdx != TYPE_BEACONDMA)
1227 PSCTS pBuf = (PSCTS)pvCTS; 1257 PSCTS pBuf = (PSCTS)pvCTS;
1228 //Get SignalField,ServiceField,Length 1258 //Get SignalField,ServiceField,Length
@@ -1239,16 +1269,13 @@ s_vFillCTSHead (
1239 pBuf->Data.wDurationID = pBuf->wDuration_ba; 1269 pBuf->Data.wDurationID = pBuf->wDuration_ba;
1240 pBuf->Data.wFrameControl = TYPE_CTL_CTS;//0x00C4 1270 pBuf->Data.wFrameControl = TYPE_CTL_CTS;//0x00C4
1241 pBuf->Data.wReserved = 0x0000; 1271 pBuf->Data.wReserved = 0x0000;
1242 memcpy(&(pBuf->Data.abyRA[0]), &(pDevice->abyCurrentNetAddr[0]), U_ETHER_ADDR_LEN); 1272 memcpy(&(pBuf->Data.abyRA[0]),
1273 &(pDevice->abyCurrentNetAddr[0]),
1274 ETH_ALEN);
1243 } 1275 }
1244 } 1276 }
1245} 1277}
1246 1278
1247
1248
1249
1250
1251
1252/*+ 1279/*+
1253 * 1280 *
1254 * Description: 1281 * Description:
@@ -1271,24 +1298,24 @@ s_vFillCTSHead (
1271 * Return Value: none 1298 * Return Value: none
1272 * 1299 *
1273-*/ 1300-*/
1274// UINT cbFrameSize,//Hdr+Payload+FCS 1301
1275static 1302static
1276VOID 1303void
1277s_vGenerateTxParameter ( 1304s_vGenerateTxParameter (
1278 IN PSDevice pDevice, 1305 PSDevice pDevice,
1279 IN BYTE byPktType, 1306 BYTE byPktType,
1280 IN WORD wCurrentRate, 1307 WORD wCurrentRate,
1281 IN PVOID pTxBufHead, 1308 void *pTxBufHead,
1282 IN PVOID pvRrvTime, 1309 void *pvRrvTime,
1283 IN PVOID pvRTS, 1310 void *pvRTS,
1284 IN PVOID pvCTS, 1311 void *pvCTS,
1285 IN UINT cbFrameSize, 1312 unsigned int cbFrameSize,
1286 IN BOOL bNeedACK, 1313 BOOL bNeedACK,
1287 IN UINT uDMAIdx, 1314 unsigned int uDMAIdx,
1288 IN PSEthernetHeader psEthHeader 1315 PSEthernetHeader psEthHeader
1289 ) 1316 )
1290{ 1317{
1291 UINT cbMACHdLen = WLAN_HDR_ADDR3_LEN; //24 1318 unsigned int cbMACHdLen = WLAN_HDR_ADDR3_LEN; /* 24 */
1292 WORD wFifoCtl; 1319 WORD wFifoCtl;
1293 BOOL bDisCRC = FALSE; 1320 BOOL bDisCRC = FALSE;
1294 BYTE byFBOption = AUTO_FB_NONE; 1321 BYTE byFBOption = AUTO_FB_NONE;
@@ -1386,44 +1413,45 @@ s_vGenerateTxParameter (
1386/* 1413/*
1387 PBYTE pbyBuffer,//point to pTxBufHead 1414 PBYTE pbyBuffer,//point to pTxBufHead
1388 WORD wFragType,//00:Non-Frag, 01:Start, 02:Mid, 03:Last 1415 WORD wFragType,//00:Non-Frag, 01:Start, 02:Mid, 03:Last
1389 UINT cbFragmentSize,//Hdr+payoad+FCS 1416 unsigned int cbFragmentSize,//Hdr+payoad+FCS
1390*/ 1417*/
1391 1418
1392 1419
1393BOOL 1420BOOL
1394s_bPacketToWirelessUsb( 1421s_bPacketToWirelessUsb(
1395 IN PSDevice pDevice, 1422 PSDevice pDevice,
1396 IN BYTE byPktType, 1423 BYTE byPktType,
1397 IN PBYTE usbPacketBuf, 1424 PBYTE usbPacketBuf,
1398 IN BOOL bNeedEncryption, 1425 BOOL bNeedEncryption,
1399 IN UINT uSkbPacketLen, 1426 unsigned int uSkbPacketLen,
1400 IN UINT uDMAIdx, 1427 unsigned int uDMAIdx,
1401 IN PSEthernetHeader psEthHeader, 1428 PSEthernetHeader psEthHeader,
1402 IN PBYTE pPacket, 1429 PBYTE pPacket,
1403 IN PSKeyItem pTransmitKey, 1430 PSKeyItem pTransmitKey,
1404 IN UINT uNodeIndex, 1431 unsigned int uNodeIndex,
1405 IN WORD wCurrentRate, 1432 WORD wCurrentRate,
1406 OUT UINT *pcbHeaderLen, 1433 unsigned int *pcbHeaderLen,
1407 OUT UINT *pcbTotalLen 1434 unsigned int *pcbTotalLen
1408 ) 1435 )
1409{ 1436{
1410 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1437 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
1411 UINT cbFrameSize,cbFrameBodySize; 1438 unsigned int cbFrameSize, cbFrameBodySize;
1412 PTX_BUFFER pTxBufHead; 1439 PTX_BUFFER pTxBufHead;
1413 UINT cb802_1_H_len; 1440 unsigned int cb802_1_H_len;
1414 UINT cbIVlen=0,cbICVlen=0,cbMIClen=0,cbMACHdLen=0,cbFCSlen=4; 1441 unsigned int cbIVlen = 0, cbICVlen = 0, cbMIClen = 0,
1415 UINT cbMICHDR = 0; 1442 cbMACHdLen = 0, cbFCSlen = 4;
1443 unsigned int cbMICHDR = 0;
1416 BOOL bNeedACK,bRTS; 1444 BOOL bNeedACK,bRTS;
1417 PBYTE pbyType,pbyMacHdr,pbyIVHead,pbyPayloadHead,pbyTxBufferAddr; 1445 PBYTE pbyType,pbyMacHdr,pbyIVHead,pbyPayloadHead,pbyTxBufferAddr;
1418 BYTE abySNAP_RFC1042[6] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00}; 1446 BYTE abySNAP_RFC1042[ETH_ALEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0x00};
1419 BYTE abySNAP_Bridgetunnel[6] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0xF8}; 1447 BYTE abySNAP_Bridgetunnel[ETH_ALEN] = {0xAA, 0xAA, 0x03, 0x00, 0x00, 0xF8};
1420 UINT uDuration; 1448 unsigned int uDuration;
1421 UINT cbHeaderLength= 0,uPadding = 0; 1449 unsigned int cbHeaderLength = 0, uPadding = 0;
1422 PVOID pvRrvTime; 1450 void *pvRrvTime;
1423 PSMICHDRHead pMICHDR; 1451 PSMICHDRHead pMICHDR;
1424 PVOID pvRTS; 1452 void *pvRTS;
1425 PVOID pvCTS; 1453 void *pvCTS;
1426 PVOID pvTxDataHd; 1454 void *pvTxDataHd;
1427 BYTE byFBOption = AUTO_FB_NONE,byFragType; 1455 BYTE byFBOption = AUTO_FB_NONE,byFragType;
1428 WORD wTxBufSize; 1456 WORD wTxBufSize;
1429 DWORD dwMICKey0,dwMICKey1,dwMIC_Priority,dwCRC; 1457 DWORD dwMICKey0,dwMICKey1,dwMIC_Priority,dwCRC;
@@ -1455,7 +1483,7 @@ s_bPacketToWirelessUsb(
1455 cb802_1_H_len = 0; 1483 cb802_1_H_len = 0;
1456 } 1484 }
1457 1485
1458 cbFrameBodySize = uSkbPacketLen - U_HEADER_LEN + cb802_1_H_len; 1486 cbFrameBodySize = uSkbPacketLen - ETH_HLEN + cb802_1_H_len;
1459 1487
1460 //Set packet type 1488 //Set packet type
1461 pTxBufHead->wFIFOCtl |= (WORD)(byPktType<<8); 1489 pTxBufHead->wFIFOCtl |= (WORD)(byPktType<<8);
@@ -1658,7 +1686,8 @@ s_bPacketToWirelessUsb(
1658 1686
1659 1687
1660 //Fill FIFO,RrvTime,RTS,and CTS 1688 //Fill FIFO,RrvTime,RTS,and CTS
1661 s_vGenerateTxParameter(pDevice, byPktType, wCurrentRate, (PVOID)pbyTxBufferAddr, pvRrvTime, pvRTS, pvCTS, 1689 s_vGenerateTxParameter(pDevice, byPktType, wCurrentRate,
1690 (void *)pbyTxBufferAddr, pvRrvTime, pvRTS, pvCTS,
1662 cbFrameSize, bNeedACK, uDMAIdx, psEthHeader); 1691 cbFrameSize, bNeedACK, uDMAIdx, psEthHeader);
1663 //Fill DataHead 1692 //Fill DataHead
1664 uDuration = s_uFillDataHead(pDevice, byPktType, wCurrentRate, pvTxDataHd, cbFrameSize, uDMAIdx, bNeedACK, 1693 uDuration = s_uFillDataHead(pDevice, byPktType, wCurrentRate, pvTxDataHd, cbFrameSize, uDMAIdx, bNeedACK,
@@ -1700,13 +1729,13 @@ s_bPacketToWirelessUsb(
1700 if (pPacket != NULL) { 1729 if (pPacket != NULL) {
1701 // Copy the Packet into a tx Buffer 1730 // Copy the Packet into a tx Buffer
1702 memcpy((pbyPayloadHead + cb802_1_H_len), 1731 memcpy((pbyPayloadHead + cb802_1_H_len),
1703 (pPacket + U_HEADER_LEN), 1732 (pPacket + ETH_HLEN),
1704 uSkbPacketLen - U_HEADER_LEN 1733 uSkbPacketLen - ETH_HLEN
1705 ); 1734 );
1706 1735
1707 } else { 1736 } else {
1708 // while bRelayPacketSend psEthHeader is point to header+payload 1737 // while bRelayPacketSend psEthHeader is point to header+payload
1709 memcpy((pbyPayloadHead + cb802_1_H_len), ((PBYTE)psEthHeader)+U_HEADER_LEN, uSkbPacketLen - U_HEADER_LEN); 1738 memcpy((pbyPayloadHead + cb802_1_H_len), ((PBYTE)psEthHeader) + ETH_HLEN, uSkbPacketLen - ETH_HLEN);
1710 } 1739 }
1711 1740
1712 ASSERT(uLength == cbNdisBodySize); 1741 ASSERT(uLength == cbNdisBodySize);
@@ -1772,7 +1801,7 @@ s_bPacketToWirelessUsb(
1772 } 1801 }
1773 1802
1774 if (pDevice->bSoftwareGenCrcErr == TRUE) { 1803 if (pDevice->bSoftwareGenCrcErr == TRUE) {
1775 UINT cbLen; 1804 unsigned int cbLen;
1776 PDWORD pdwCRC; 1805 PDWORD pdwCRC;
1777 1806
1778 dwCRC = 0xFFFFFFFFL; 1807 dwCRC = 0xFFFFFFFFL;
@@ -1820,16 +1849,16 @@ s_bPacketToWirelessUsb(
1820 * 1849 *
1821-*/ 1850-*/
1822 1851
1823VOID 1852void
1824s_vGenerateMACHeader ( 1853s_vGenerateMACHeader (
1825 IN PSDevice pDevice, 1854 PSDevice pDevice,
1826 IN PBYTE pbyBufferAddr, 1855 PBYTE pbyBufferAddr,
1827 IN WORD wDuration, 1856 WORD wDuration,
1828 IN PSEthernetHeader psEthHeader, 1857 PSEthernetHeader psEthHeader,
1829 IN BOOL bNeedEncrypt, 1858 BOOL bNeedEncrypt,
1830 IN WORD wFragType, 1859 WORD wFragType,
1831 IN UINT uDMAIdx, 1860 unsigned int uDMAIdx,
1832 IN UINT uFragIdx 1861 unsigned int uFragIdx
1833 ) 1862 )
1834{ 1863{
1835 PS802_11Header pMACHeader = (PS802_11Header)pbyBufferAddr; 1864 PS802_11Header pMACHeader = (PS802_11Header)pbyBufferAddr;
@@ -1843,21 +1872,35 @@ s_vGenerateMACHeader (
1843 } 1872 }
1844 1873
1845 if (pDevice->eOPMode == OP_MODE_AP) { 1874 if (pDevice->eOPMode == OP_MODE_AP) {
1846 memcpy(&(pMACHeader->abyAddr1[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN); 1875 memcpy(&(pMACHeader->abyAddr1[0]),
1847 memcpy(&(pMACHeader->abyAddr2[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1876 &(psEthHeader->abyDstAddr[0]),
1848 memcpy(&(pMACHeader->abyAddr3[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN); 1877 ETH_ALEN);
1878 memcpy(&(pMACHeader->abyAddr2[0]), &(pDevice->abyBSSID[0]), ETH_ALEN);
1879 memcpy(&(pMACHeader->abyAddr3[0]),
1880 &(psEthHeader->abySrcAddr[0]),
1881 ETH_ALEN);
1849 pMACHeader->wFrameCtl |= FC_FROMDS; 1882 pMACHeader->wFrameCtl |= FC_FROMDS;
1850 } 1883 } else {
1851 else { 1884 if (pDevice->eOPMode == OP_MODE_ADHOC) {
1852 if (pDevice->eOPMode == OP_MODE_ADHOC) { 1885 memcpy(&(pMACHeader->abyAddr1[0]),
1853 memcpy(&(pMACHeader->abyAddr1[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN); 1886 &(psEthHeader->abyDstAddr[0]),
1854 memcpy(&(pMACHeader->abyAddr2[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN); 1887 ETH_ALEN);
1855 memcpy(&(pMACHeader->abyAddr3[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1888 memcpy(&(pMACHeader->abyAddr2[0]),
1856 } 1889 &(psEthHeader->abySrcAddr[0]),
1857 else { 1890 ETH_ALEN);
1858 memcpy(&(pMACHeader->abyAddr3[0]), &(psEthHeader->abyDstAddr[0]), U_ETHER_ADDR_LEN); 1891 memcpy(&(pMACHeader->abyAddr3[0]),
1859 memcpy(&(pMACHeader->abyAddr2[0]), &(psEthHeader->abySrcAddr[0]), U_ETHER_ADDR_LEN); 1892 &(pDevice->abyBSSID[0]),
1860 memcpy(&(pMACHeader->abyAddr1[0]), &(pDevice->abyBSSID[0]), U_ETHER_ADDR_LEN); 1893 ETH_ALEN);
1894 } else {
1895 memcpy(&(pMACHeader->abyAddr3[0]),
1896 &(psEthHeader->abyDstAddr[0]),
1897 ETH_ALEN);
1898 memcpy(&(pMACHeader->abyAddr2[0]),
1899 &(psEthHeader->abySrcAddr[0]),
1900 ETH_ALEN);
1901 memcpy(&(pMACHeader->abyAddr1[0]),
1902 &(pDevice->abyBSSID[0]),
1903 ETH_ALEN);
1861 pMACHeader->wFrameCtl |= FC_TODS; 1904 pMACHeader->wFrameCtl |= FC_TODS;
1862 } 1905 }
1863 } 1906 }
@@ -1908,34 +1951,34 @@ s_vGenerateMACHeader (
1908-*/ 1951-*/
1909 1952
1910CMD_STATUS csMgmt_xmit( 1953CMD_STATUS csMgmt_xmit(
1911 IN PSDevice pDevice, 1954 PSDevice pDevice,
1912 IN PSTxMgmtPacket pPacket 1955 PSTxMgmtPacket pPacket
1913 ) 1956 )
1914{ 1957{
1915 BYTE byPktType; 1958 BYTE byPktType;
1916 PBYTE pbyTxBufferAddr; 1959 PBYTE pbyTxBufferAddr;
1917 PVOID pvRTS; 1960 void *pvRTS;
1918 PSCTS pCTS; 1961 PSCTS pCTS;
1919 PVOID pvTxDataHd; 1962 void *pvTxDataHd;
1920 UINT uDuration; 1963 unsigned int uDuration;
1921 UINT cbReqCount; 1964 unsigned int cbReqCount;
1922 PS802_11Header pMACHeader; 1965 PS802_11Header pMACHeader;
1923 UINT cbHeaderSize; 1966 unsigned int cbHeaderSize;
1924 UINT cbFrameBodySize; 1967 unsigned int cbFrameBodySize;
1925 BOOL bNeedACK; 1968 BOOL bNeedACK;
1926 BOOL bIsPSPOLL = FALSE; 1969 BOOL bIsPSPOLL = FALSE;
1927 PSTxBufHead pTxBufHead; 1970 PSTxBufHead pTxBufHead;
1928 UINT cbFrameSize; 1971 unsigned int cbFrameSize;
1929 UINT cbIVlen = 0; 1972 unsigned int cbIVlen = 0;
1930 UINT cbICVlen = 0; 1973 unsigned int cbICVlen = 0;
1931 UINT cbMIClen = 0; 1974 unsigned int cbMIClen = 0;
1932 UINT cbFCSlen = 4; 1975 unsigned int cbFCSlen = 4;
1933 UINT uPadding = 0; 1976 unsigned int uPadding = 0;
1934 WORD wTxBufSize; 1977 WORD wTxBufSize;
1935 UINT cbMacHdLen; 1978 unsigned int cbMacHdLen;
1936 SEthernetHeader sEthHeader; 1979 SEthernetHeader sEthHeader;
1937 PVOID pvRrvTime; 1980 void *pvRrvTime;
1938 PVOID pMICHDR; 1981 void *pMICHDR;
1939 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1982 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
1940 WORD wCurrentRate = RATE_1M; 1983 WORD wCurrentRate = RATE_1M;
1941 PTX_BUFFER pTX_Buffer; 1984 PTX_BUFFER pTX_Buffer;
@@ -2087,10 +2130,15 @@ CMD_STATUS csMgmt_xmit(
2087 cbHeaderSize = wTxBufSize + sizeof(SRrvTime_ab) + sizeof(STxDataHead_ab); 2130 cbHeaderSize = wTxBufSize + sizeof(SRrvTime_ab) + sizeof(STxDataHead_ab);
2088 } 2131 }
2089 2132
2090 memset((PVOID)(pbyTxBufferAddr + wTxBufSize), 0, (cbHeaderSize - wTxBufSize)); 2133 memset((void *)(pbyTxBufferAddr + wTxBufSize), 0,
2134 (cbHeaderSize - wTxBufSize));
2091 2135
2092 memcpy(&(sEthHeader.abyDstAddr[0]), &(pPacket->p80211Header->sA3.abyAddr1[0]), U_ETHER_ADDR_LEN); 2136 memcpy(&(sEthHeader.abyDstAddr[0]),
2093 memcpy(&(sEthHeader.abySrcAddr[0]), &(pPacket->p80211Header->sA3.abyAddr2[0]), U_ETHER_ADDR_LEN); 2137 &(pPacket->p80211Header->sA3.abyAddr1[0]),
2138 ETH_ALEN);
2139 memcpy(&(sEthHeader.abySrcAddr[0]),
2140 &(pPacket->p80211Header->sA3.abyAddr2[0]),
2141 ETH_ALEN);
2094 //========================= 2142 //=========================
2095 // No Fragmentation 2143 // No Fragmentation
2096 //========================= 2144 //=========================
@@ -2197,20 +2245,20 @@ CMD_STATUS csMgmt_xmit(
2197 2245
2198CMD_STATUS 2246CMD_STATUS
2199csBeacon_xmit( 2247csBeacon_xmit(
2200 IN PSDevice pDevice, 2248 PSDevice pDevice,
2201 IN PSTxMgmtPacket pPacket 2249 PSTxMgmtPacket pPacket
2202 ) 2250 )
2203{ 2251{
2204 2252
2205 UINT cbFrameSize = pPacket->cbMPDULen + WLAN_FCS_LEN; 2253 unsigned int cbFrameSize = pPacket->cbMPDULen + WLAN_FCS_LEN;
2206 UINT cbHeaderSize = 0; 2254 unsigned int cbHeaderSize = 0;
2207 WORD wTxBufSize = sizeof(STxShortBufHead); 2255 WORD wTxBufSize = sizeof(STxShortBufHead);
2208 PSTxShortBufHead pTxBufHead; 2256 PSTxShortBufHead pTxBufHead;
2209 PS802_11Header pMACHeader; 2257 PS802_11Header pMACHeader;
2210 PSTxDataHead_ab pTxDataHead; 2258 PSTxDataHead_ab pTxDataHead;
2211 WORD wCurrentRate; 2259 WORD wCurrentRate;
2212 UINT cbFrameBodySize; 2260 unsigned int cbFrameBodySize;
2213 UINT cbReqCount; 2261 unsigned int cbReqCount;
2214 PBEACON_BUFFER pTX_Buffer; 2262 PBEACON_BUFFER pTX_Buffer;
2215 PBYTE pbyTxBufferAddr; 2263 PBYTE pbyTxBufferAddr;
2216 PUSB_SEND_CONTEXT pContext; 2264 PUSB_SEND_CONTEXT pContext;
@@ -2288,50 +2336,50 @@ csBeacon_xmit(
2288 2336
2289 2337
2290 2338
2291VOID 2339void
2292vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb) { 2340vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb) {
2293 2341
2294 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 2342 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
2295 BYTE byPktType; 2343 BYTE byPktType;
2296 PBYTE pbyTxBufferAddr; 2344 PBYTE pbyTxBufferAddr;
2297 PVOID pvRTS; 2345 void *pvRTS;
2298 PVOID pvCTS; 2346 void *pvCTS;
2299 PVOID pvTxDataHd; 2347 void *pvTxDataHd;
2300 UINT uDuration; 2348 unsigned int uDuration;
2301 UINT cbReqCount; 2349 unsigned int cbReqCount;
2302 PS802_11Header pMACHeader; 2350 PS802_11Header pMACHeader;
2303 UINT cbHeaderSize; 2351 unsigned int cbHeaderSize;
2304 UINT cbFrameBodySize; 2352 unsigned int cbFrameBodySize;
2305 BOOL bNeedACK; 2353 BOOL bNeedACK;
2306 BOOL bIsPSPOLL = FALSE; 2354 BOOL bIsPSPOLL = FALSE;
2307 PSTxBufHead pTxBufHead; 2355 PSTxBufHead pTxBufHead;
2308 UINT cbFrameSize; 2356 unsigned int cbFrameSize;
2309 UINT cbIVlen = 0; 2357 unsigned int cbIVlen = 0;
2310 UINT cbICVlen = 0; 2358 unsigned int cbICVlen = 0;
2311 UINT cbMIClen = 0; 2359 unsigned int cbMIClen = 0;
2312 UINT cbFCSlen = 4; 2360 unsigned int cbFCSlen = 4;
2313 UINT uPadding = 0; 2361 unsigned int uPadding = 0;
2314 UINT cbMICHDR = 0; 2362 unsigned int cbMICHDR = 0;
2315 UINT uLength = 0; 2363 unsigned int uLength = 0;
2316 DWORD dwMICKey0, dwMICKey1; 2364 DWORD dwMICKey0, dwMICKey1;
2317 DWORD dwMIC_Priority; 2365 DWORD dwMIC_Priority;
2318 PDWORD pdwMIC_L; 2366 PDWORD pdwMIC_L;
2319 PDWORD pdwMIC_R; 2367 PDWORD pdwMIC_R;
2320 WORD wTxBufSize; 2368 WORD wTxBufSize;
2321 UINT cbMacHdLen; 2369 unsigned int cbMacHdLen;
2322 SEthernetHeader sEthHeader; 2370 SEthernetHeader sEthHeader;
2323 PVOID pvRrvTime; 2371 void *pvRrvTime;
2324 PVOID pMICHDR; 2372 void *pMICHDR;
2325 WORD wCurrentRate = RATE_1M; 2373 WORD wCurrentRate = RATE_1M;
2326 PUWLAN_80211HDR p80211Header; 2374 PUWLAN_80211HDR p80211Header;
2327 UINT uNodeIndex = 0; 2375 unsigned int uNodeIndex = 0;
2328 BOOL bNodeExist = FALSE; 2376 BOOL bNodeExist = FALSE;
2329 SKeyItem STempKey; 2377 SKeyItem STempKey;
2330 PSKeyItem pTransmitKey = NULL; 2378 PSKeyItem pTransmitKey = NULL;
2331 PBYTE pbyIVHead; 2379 PBYTE pbyIVHead;
2332 PBYTE pbyPayloadHead; 2380 PBYTE pbyPayloadHead;
2333 PBYTE pbyMacHdr; 2381 PBYTE pbyMacHdr;
2334 UINT cbExtSuppRate = 0; 2382 unsigned int cbExtSuppRate = 0;
2335 PTX_BUFFER pTX_Buffer; 2383 PTX_BUFFER pTX_Buffer;
2336 PUSB_SEND_CONTEXT pContext; 2384 PUSB_SEND_CONTEXT pContext;
2337// PWLAN_IE pItem; 2385// PWLAN_IE pItem;
@@ -2520,9 +2568,14 @@ vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb) {
2520 pvTxDataHd = (PSTxDataHead_ab) (pbyTxBufferAddr + wTxBufSize + sizeof(SRrvTime_ab) + cbMICHDR); 2568 pvTxDataHd = (PSTxDataHead_ab) (pbyTxBufferAddr + wTxBufSize + sizeof(SRrvTime_ab) + cbMICHDR);
2521 cbHeaderSize = wTxBufSize + sizeof(SRrvTime_ab) + cbMICHDR + sizeof(STxDataHead_ab); 2569 cbHeaderSize = wTxBufSize + sizeof(SRrvTime_ab) + cbMICHDR + sizeof(STxDataHead_ab);
2522 } 2570 }
2523 memset((PVOID)(pbyTxBufferAddr + wTxBufSize), 0, (cbHeaderSize - wTxBufSize)); 2571 memset((void *)(pbyTxBufferAddr + wTxBufSize), 0,
2524 memcpy(&(sEthHeader.abyDstAddr[0]), &(p80211Header->sA3.abyAddr1[0]), U_ETHER_ADDR_LEN); 2572 (cbHeaderSize - wTxBufSize));
2525 memcpy(&(sEthHeader.abySrcAddr[0]), &(p80211Header->sA3.abyAddr2[0]), U_ETHER_ADDR_LEN); 2573 memcpy(&(sEthHeader.abyDstAddr[0]),
2574 &(p80211Header->sA3.abyAddr1[0]),
2575 ETH_ALEN);
2576 memcpy(&(sEthHeader.abySrcAddr[0]),
2577 &(p80211Header->sA3.abyAddr2[0]),
2578 ETH_ALEN);
2526 //========================= 2579 //=========================
2527 // No Fragmentation 2580 // No Fragmentation
2528 //========================= 2581 //=========================
@@ -2692,21 +2745,21 @@ vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb) {
2692 2745
2693NTSTATUS 2746NTSTATUS
2694nsDMA_tx_packet( 2747nsDMA_tx_packet(
2695 IN PSDevice pDevice, 2748 PSDevice pDevice,
2696 IN UINT uDMAIdx, 2749 unsigned int uDMAIdx,
2697 IN struct sk_buff *skb 2750 struct sk_buff *skb
2698 ) 2751 )
2699{ 2752{
2700 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 2753 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
2701 UINT BytesToWrite =0,uHeaderLen = 0; 2754 unsigned int BytesToWrite = 0, uHeaderLen = 0;
2702 UINT uNodeIndex = 0; 2755 unsigned int uNodeIndex = 0;
2703 BYTE byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80}; 2756 BYTE byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80};
2704 WORD wAID; 2757 WORD wAID;
2705 BYTE byPktType; 2758 BYTE byPktType;
2706 BOOL bNeedEncryption = FALSE; 2759 BOOL bNeedEncryption = FALSE;
2707 PSKeyItem pTransmitKey = NULL; 2760 PSKeyItem pTransmitKey = NULL;
2708 SKeyItem STempKey; 2761 SKeyItem STempKey;
2709 UINT ii; 2762 unsigned int ii;
2710 BOOL bTKIP_UseGTK = FALSE; 2763 BOOL bTKIP_UseGTK = FALSE;
2711 BOOL bNeedDeAuth = FALSE; 2764 BOOL bNeedDeAuth = FALSE;
2712 PBYTE pbyBSSID; 2765 PBYTE pbyBSSID;
@@ -2714,7 +2767,7 @@ nsDMA_tx_packet(
2714 PUSB_SEND_CONTEXT pContext; 2767 PUSB_SEND_CONTEXT pContext;
2715 BOOL fConvertedPacket; 2768 BOOL fConvertedPacket;
2716 PTX_BUFFER pTX_Buffer; 2769 PTX_BUFFER pTX_Buffer;
2717 UINT status; 2770 unsigned int status;
2718 WORD wKeepRate = pDevice->wCurrentRate; 2771 WORD wKeepRate = pDevice->wCurrentRate;
2719 struct net_device_stats* pStats = &pDevice->stats; 2772 struct net_device_stats* pStats = &pDevice->stats;
2720//#ifdef WPA_SM_Transtatus 2773//#ifdef WPA_SM_Transtatus
@@ -2796,7 +2849,7 @@ nsDMA_tx_packet(
2796 return STATUS_RESOURCES; 2849 return STATUS_RESOURCES;
2797 } 2850 }
2798 2851
2799 memcpy(pDevice->sTxEthHeader.abyDstAddr, (PBYTE)(skb->data), U_HEADER_LEN); 2852 memcpy(pDevice->sTxEthHeader.abyDstAddr, (PBYTE)(skb->data), ETH_HLEN);
2800 2853
2801//mike add:station mode check eapol-key challenge---> 2854//mike add:station mode check eapol-key challenge--->
2802{ 2855{
@@ -2805,10 +2858,10 @@ nsDMA_tx_packet(
2805 BYTE Descriptor_type; 2858 BYTE Descriptor_type;
2806 WORD Key_info; 2859 WORD Key_info;
2807 2860
2808 Protocol_Version = skb->data[U_HEADER_LEN]; 2861 Protocol_Version = skb->data[ETH_HLEN];
2809 Packet_Type = skb->data[U_HEADER_LEN+1]; 2862 Packet_Type = skb->data[ETH_HLEN+1];
2810 Descriptor_type = skb->data[U_HEADER_LEN+1+1+2]; 2863 Descriptor_type = skb->data[ETH_HLEN+1+1+2];
2811 Key_info = (skb->data[U_HEADER_LEN+1+1+2+1] << 8)|(skb->data[U_HEADER_LEN+1+1+2+2]); 2864 Key_info = (skb->data[ETH_HLEN+1+1+2+1] << 8)|(skb->data[ETH_HLEN+1+1+2+2]);
2812 if (pDevice->sTxEthHeader.wType == TYPE_PKT_802_1x) { 2865 if (pDevice->sTxEthHeader.wType == TYPE_PKT_802_1x) {
2813 if(((Protocol_Version==1) ||(Protocol_Version==2)) && 2866 if(((Protocol_Version==1) ||(Protocol_Version==2)) &&
2814 (Packet_Type==3)) { //802.1x OR eapol-key challenge frame transfer 2867 (Packet_Type==3)) { //802.1x OR eapol-key challenge frame transfer
@@ -2971,10 +3024,12 @@ nsDMA_tx_packet(
2971 } 3024 }
2972 } 3025 }
2973 3026
2974 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "dma_tx: pDevice->wCurrentRate = %d \n", pDevice->wCurrentRate); 3027 DBG_PRT(MSG_LEVEL_DEBUG,
3028 KERN_INFO "dma_tx: pDevice->wCurrentRate = %d\n",
3029 pDevice->wCurrentRate);
2975 3030
2976 if (wKeepRate != pDevice->wCurrentRate) { 3031 if (wKeepRate != pDevice->wCurrentRate) {
2977 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_SETPOWER, NULL); 3032 bScheduleCommand((void *) pDevice, WLAN_CMD_SETPOWER, NULL);
2978 } 3033 }
2979 3034
2980 if (pDevice->wCurrentRate <= RATE_11M) { 3035 if (pDevice->wCurrentRate <= RATE_11M) {
@@ -3057,7 +3112,9 @@ nsDMA_tx_packet(
3057 3112
3058 if ( pDevice->bEnablePSMode == TRUE ) { 3113 if ( pDevice->bEnablePSMode == TRUE ) {
3059 if ( !pDevice->bPSModeTxBurst ) { 3114 if ( !pDevice->bPSModeTxBurst ) {
3060 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_MAC_DISPOWERSAVING, NULL); 3115 bScheduleCommand((void *) pDevice,
3116 WLAN_CMD_MAC_DISPOWERSAVING,
3117 NULL);
3061 pDevice->bPSModeTxBurst = TRUE; 3118 pDevice->bPSModeTxBurst = TRUE;
3062 } 3119 }
3063 } 3120 }
@@ -3077,7 +3134,7 @@ nsDMA_tx_packet(
3077 if (bNeedDeAuth == TRUE) { 3134 if (bNeedDeAuth == TRUE) {
3078 WORD wReason = WLAN_MGMT_REASON_MIC_FAILURE; 3135 WORD wReason = WLAN_MGMT_REASON_MIC_FAILURE;
3079 3136
3080 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_DEAUTH, (PBYTE)&wReason); 3137 bScheduleCommand((void *) pDevice, WLAN_CMD_DEAUTH, (PBYTE) &wReason);
3081 } 3138 }
3082 3139
3083 if(status!=STATUS_PENDING) { 3140 if(status!=STATUS_PENDING) {
@@ -3110,14 +3167,14 @@ nsDMA_tx_packet(
3110 3167
3111BOOL 3168BOOL
3112bRelayPacketSend ( 3169bRelayPacketSend (
3113 IN PSDevice pDevice, 3170 PSDevice pDevice,
3114 IN PBYTE pbySkbData, 3171 PBYTE pbySkbData,
3115 IN UINT uDataLen, 3172 unsigned int uDataLen,
3116 IN UINT uNodeIndex 3173 unsigned int uNodeIndex
3117 ) 3174 )
3118{ 3175{
3119 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 3176 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
3120 UINT BytesToWrite =0,uHeaderLen = 0; 3177 unsigned int BytesToWrite = 0, uHeaderLen = 0;
3121 BYTE byPktType = PK_TYPE_11B; 3178 BYTE byPktType = PK_TYPE_11B;
3122 BOOL bNeedEncryption = FALSE; 3179 BOOL bNeedEncryption = FALSE;
3123 SKeyItem STempKey; 3180 SKeyItem STempKey;
@@ -3127,7 +3184,7 @@ bRelayPacketSend (
3127 BYTE byPktTyp; 3184 BYTE byPktTyp;
3128 BOOL fConvertedPacket; 3185 BOOL fConvertedPacket;
3129 PTX_BUFFER pTX_Buffer; 3186 PTX_BUFFER pTX_Buffer;
3130 UINT status; 3187 unsigned int status;
3131 WORD wKeepRate = pDevice->wCurrentRate; 3188 WORD wKeepRate = pDevice->wCurrentRate;
3132 3189
3133 3190
@@ -3138,7 +3195,7 @@ bRelayPacketSend (
3138 return FALSE; 3195 return FALSE;
3139 } 3196 }
3140 3197
3141 memcpy(pDevice->sTxEthHeader.abyDstAddr, (PBYTE)pbySkbData, U_HEADER_LEN); 3198 memcpy(pDevice->sTxEthHeader.abyDstAddr, (PBYTE)pbySkbData, ETH_HLEN);
3142 3199
3143 if (pDevice->bEncryptionEnable == TRUE) { 3200 if (pDevice->bEncryptionEnable == TRUE) {
3144 bNeedEncryption = TRUE; 3201 bNeedEncryption = TRUE;
@@ -3197,9 +3254,8 @@ bRelayPacketSend (
3197 pDevice->wCurrentRate = pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate; 3254 pDevice->wCurrentRate = pMgmt->sNodeDBTable[uNodeIndex].wTxDataRate;
3198 } 3255 }
3199 3256
3200
3201 if (wKeepRate != pDevice->wCurrentRate) { 3257 if (wKeepRate != pDevice->wCurrentRate) {
3202 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SETPOWER, NULL); 3258 bScheduleCommand((void *) pDevice, WLAN_CMD_SETPOWER, NULL);
3203 } 3259 }
3204 3260
3205 if (pDevice->wCurrentRate <= RATE_11M) 3261 if (pDevice->wCurrentRate <= RATE_11M)
diff --git a/drivers/staging/vt6656/rxtx.h b/drivers/staging/vt6656/rxtx.h
index 6bc22d371c1..f90de42d7ab 100644
--- a/drivers/staging/vt6656/rxtx.h
+++ b/drivers/staging/vt6656/rxtx.h
@@ -43,8 +43,8 @@
43typedef struct tagSRTSDataF { 43typedef struct tagSRTSDataF {
44 WORD wFrameControl; 44 WORD wFrameControl;
45 WORD wDurationID; 45 WORD wDurationID;
46 BYTE abyRA[U_ETHER_ADDR_LEN]; 46 BYTE abyRA[ETH_ALEN];
47 BYTE abyTA[U_ETHER_ADDR_LEN]; 47 BYTE abyTA[ETH_ALEN];
48} SRTSDataF, *PSRTSDataF; 48} SRTSDataF, *PSRTSDataF;
49 49
50// 50//
@@ -53,7 +53,7 @@ typedef struct tagSRTSDataF {
53typedef struct tagSCTSDataF { 53typedef struct tagSCTSDataF {
54 WORD wFrameControl; 54 WORD wFrameControl;
55 WORD wDurationID; 55 WORD wDurationID;
56 BYTE abyRA[U_ETHER_ADDR_LEN]; 56 BYTE abyRA[ETH_ALEN];
57 WORD wReserved; 57 WORD wReserved;
58} SCTSDataF, *PSCTSDataF; 58} SCTSDataF, *PSCTSDataF;
59 59
@@ -667,28 +667,28 @@ typedef struct tagSBEACON_BUFFER
667 667
668BOOL 668BOOL
669bPacketToWirelessUsb( 669bPacketToWirelessUsb(
670 IN PSDevice pDevice, 670 PSDevice pDevice,
671 IN BYTE byPktType, 671 BYTE byPktType,
672 IN PBYTE usbPacketBuf, 672 PBYTE usbPacketBuf,
673 IN BOOL bNeedEncrypt, 673 BOOL bNeedEncrypt,
674 IN UINT cbPayloadSize, 674 unsigned int cbPayloadSize,
675 IN UINT uDMAIdx, 675 unsigned int uDMAIdx,
676 IN PSEthernetHeader psEthHeader, 676 PSEthernetHeader psEthHeader,
677 IN PBYTE pPacket, 677 PBYTE pPacket,
678 IN PSKeyItem pTransmitKey, 678 PSKeyItem pTransmitKey,
679 IN UINT uNodeIndex, 679 unsigned int uNodeIndex,
680 IN WORD wCurrentRate, 680 WORD wCurrentRate,
681 OUT UINT *pcbHeaderLen, 681 unsigned int *pcbHeaderLen,
682 OUT UINT *pcbTotalLen 682 unsigned int *pcbTotalLen
683 ); 683 );
684 684
685VOID vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb); 685void vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb);
686NTSTATUS nsDMA_tx_packet(PSDevice pDevice, UINT uDMAIdx, struct sk_buff *skb); 686NTSTATUS nsDMA_tx_packet(PSDevice pDevice,
687 unsigned int uDMAIdx,
688 struct sk_buff *skb);
687CMD_STATUS csMgmt_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket); 689CMD_STATUS csMgmt_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket);
688CMD_STATUS csBeacon_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket); 690CMD_STATUS csBeacon_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket);
689BOOL bRelayPacketSend(PSDevice pDevice, PBYTE pbySkbData, UINT uDataLen, UINT uNodeIndex); 691BOOL bRelayPacketSend(PSDevice pDevice, PBYTE pbySkbData,
690 692 unsigned int uDataLen, unsigned int uNodeIndex);
691#endif // __RXTX_H__
692
693
694 693
694#endif /* __RXTX_H__ */
diff --git a/drivers/staging/vt6656/srom.h b/drivers/staging/vt6656/srom.h
index 4c89e7ad6b4..dba21a54414 100644
--- a/drivers/staging/vt6656/srom.h
+++ b/drivers/staging/vt6656/srom.h
@@ -124,4 +124,4 @@ typedef struct tagSSromReg {
124 124
125/*--------------------- Export Functions --------------------------*/ 125/*--------------------- Export Functions --------------------------*/
126 126
127#endif // __EEPROM_H__ 127#endif /* __EEPROM_H__ */
diff --git a/drivers/staging/vt6656/tcrc.c b/drivers/staging/vt6656/tcrc.c
index 5f0c74763f8..e25021e850a 100644
--- a/drivers/staging/vt6656/tcrc.c
+++ b/drivers/staging/vt6656/tcrc.c
@@ -41,7 +41,7 @@
41 41
42/*--------------------- Static Variables --------------------------*/ 42/*--------------------- Static Variables --------------------------*/
43 43
44// 32-bit CRC table 44/* 32-bit CRC table */
45static const DWORD s_adwCrc32Table[256] = { 45static const DWORD s_adwCrc32Table[256] = {
46 0x00000000L, 0x77073096L, 0xEE0E612CL, 0x990951BAL, 46 0x00000000L, 0x77073096L, 0xEE0E612CL, 0x990951BAL,
47 0x076DC419L, 0x706AF48FL, 0xE963A535L, 0x9E6495A3L, 47 0x076DC419L, 0x706AF48FL, 0xE963A535L, 0x9E6495A3L,
@@ -132,17 +132,18 @@ static const DWORD s_adwCrc32Table[256] = {
132 * Return Value: CRC-32 132 * Return Value: CRC-32
133 * 133 *
134-*/ 134-*/
135DWORD CRCdwCrc32 (PBYTE pbyData, UINT cbByte, DWORD dwCrcSeed) 135DWORD CRCdwCrc32(PBYTE pbyData, unsigned int cbByte, DWORD dwCrcSeed)
136{ 136{
137 DWORD dwCrc; 137 DWORD dwCrc;
138 138
139 dwCrc = dwCrcSeed; 139 dwCrc = dwCrcSeed;
140 while (cbByte--) { 140 while (cbByte--) {
141 dwCrc = s_adwCrc32Table[(BYTE)((dwCrc ^ (*pbyData)) & 0xFF)] ^ (dwCrc >> 8); 141 dwCrc = s_adwCrc32Table[(BYTE)((dwCrc ^ (*pbyData)) & 0xFF)] ^
142 pbyData++; 142 (dwCrc >> 8);
143 } 143 pbyData++;
144 }
144 145
145 return dwCrc; 146 return dwCrc;
146} 147}
147 148
148 149
@@ -164,7 +165,7 @@ DWORD CRCdwCrc32 (PBYTE pbyData, UINT cbByte, DWORD dwCrcSeed)
164 * Return Value: CRC-32 165 * Return Value: CRC-32
165 * 166 *
166-*/ 167-*/
167DWORD CRCdwGetCrc32 (PBYTE pbyData, UINT cbByte) 168DWORD CRCdwGetCrc32(PBYTE pbyData, unsigned int cbByte)
168{ 169{
169 return ~CRCdwCrc32(pbyData, cbByte, 0xFFFFFFFFL); 170 return ~CRCdwCrc32(pbyData, cbByte, 0xFFFFFFFFL);
170} 171}
@@ -190,7 +191,7 @@ DWORD CRCdwGetCrc32 (PBYTE pbyData, UINT cbByte)
190 * Return Value: CRC-32 191 * Return Value: CRC-32
191 * 192 *
192-*/ 193-*/
193DWORD CRCdwGetCrc32Ex(PBYTE pbyData, UINT cbByte, DWORD dwPreCRC) 194DWORD CRCdwGetCrc32Ex(PBYTE pbyData, unsigned int cbByte, DWORD dwPreCRC)
194{ 195{
195 return CRCdwCrc32(pbyData, cbByte, dwPreCRC); 196 return CRCdwCrc32(pbyData, cbByte, dwPreCRC);
196} 197}
diff --git a/drivers/staging/vt6656/tcrc.h b/drivers/staging/vt6656/tcrc.h
index 5faa48b0a74..4dfd01e477a 100644
--- a/drivers/staging/vt6656/tcrc.h
+++ b/drivers/staging/vt6656/tcrc.h
@@ -43,11 +43,8 @@
43 43
44/*--------------------- Export Functions --------------------------*/ 44/*--------------------- Export Functions --------------------------*/
45 45
46DWORD CRCdwCrc32(PBYTE pbyData, UINT cbByte, DWORD dwCrcSeed); 46DWORD CRCdwCrc32(PBYTE pbyData, unsigned int cbByte, DWORD dwCrcSeed);
47DWORD CRCdwGetCrc32(PBYTE pbyData, UINT cbByte); 47DWORD CRCdwGetCrc32(PBYTE pbyData, unsigned int cbByte);
48DWORD CRCdwGetCrc32Ex(PBYTE pbyData, UINT cbByte, DWORD dwPreCRC); 48DWORD CRCdwGetCrc32Ex(PBYTE pbyData, unsigned int cbByte, DWORD dwPreCRC);
49
50#endif // __TCRC_H__
51
52
53 49
50#endif /* __TCRC_H__ */
diff --git a/drivers/staging/vt6656/tether.c b/drivers/staging/vt6656/tether.c
index c90b469ad54..4f368f174b2 100644
--- a/drivers/staging/vt6656/tether.c
+++ b/drivers/staging/vt6656/tether.c
@@ -61,25 +61,25 @@
61 * Return Value: Hash value 61 * Return Value: Hash value
62 * 62 *
63 */ 63 */
64BYTE ETHbyGetHashIndexByCrc32 (PBYTE pbyMultiAddr) 64BYTE ETHbyGetHashIndexByCrc32(PBYTE pbyMultiAddr)
65{ 65{
66 int ii; 66 int ii;
67 BYTE byTmpHash; 67 BYTE byTmpHash;
68 BYTE byHash = 0; 68 BYTE byHash = 0;
69 69
70 // get the least 6-bits from CRC generator 70 /* get the least 6-bits from CRC generator */
71 byTmpHash = (BYTE)(CRCdwCrc32(pbyMultiAddr, U_ETHER_ADDR_LEN, 71 byTmpHash = (BYTE)(CRCdwCrc32(pbyMultiAddr, ETH_ALEN,
72 0xFFFFFFFFL) & 0x3F); 72 0xFFFFFFFFL) & 0x3F);
73 // reverse most bit to least bit 73 /* reverse most bit to least bit */
74 for (ii = 0; ii < (sizeof(byTmpHash) * 8); ii++) { 74 for (ii = 0; ii < (sizeof(byTmpHash) * 8); ii++) {
75 byHash <<= 1; 75 byHash <<= 1;
76 if (byTmpHash & 0x01) 76 if (byTmpHash & 0x01)
77 byHash |= 1; 77 byHash |= 1;
78 byTmpHash >>= 1; 78 byTmpHash >>= 1;
79 } 79 }
80 80
81 // adjust 6-bits to the right most 81 /* adjust 6-bits to the right most */
82 return (byHash >> 2); 82 return byHash >> 2;
83} 83}
84 84
85 85
@@ -96,14 +96,13 @@ BYTE ETHbyGetHashIndexByCrc32 (PBYTE pbyMultiAddr)
96 * Return Value: TRUE if ok; FALSE if error. 96 * Return Value: TRUE if ok; FALSE if error.
97 * 97 *
98 */ 98 */
99BOOL ETHbIsBufferCrc32Ok (PBYTE pbyBuffer, UINT cbFrameLength) 99BOOL ETHbIsBufferCrc32Ok(PBYTE pbyBuffer, unsigned int cbFrameLength)
100{ 100{
101 DWORD dwCRC; 101 DWORD dwCRC;
102 102
103 dwCRC = CRCdwGetCrc32(pbyBuffer, cbFrameLength - 4); 103 dwCRC = CRCdwGetCrc32(pbyBuffer, cbFrameLength - 4);
104 if (cpu_to_le32(*((PDWORD)(pbyBuffer + cbFrameLength - 4))) != dwCRC) { 104 if (cpu_to_le32(*((PDWORD)(pbyBuffer + cbFrameLength - 4))) != dwCRC)
105 return FALSE; 105 return FALSE;
106 } 106 return TRUE;
107 return TRUE;
108} 107}
109 108
diff --git a/drivers/staging/vt6656/tether.h b/drivers/staging/vt6656/tether.h
index 5a3c326436c..d63586d5cdb 100644
--- a/drivers/staging/vt6656/tether.h
+++ b/drivers/staging/vt6656/tether.h
@@ -29,26 +29,24 @@
29#ifndef __TETHER_H__ 29#ifndef __TETHER_H__
30#define __TETHER_H__ 30#define __TETHER_H__
31 31
32#include <linux/if_ether.h>
32#include "ttype.h" 33#include "ttype.h"
33 34
34/*--------------------- Export Definitions -------------------------*/ 35/*--------------------- Export Definitions -------------------------*/
35// 36//
36// constants 37// constants
37// 38//
38#define U_ETHER_ADDR_LEN 6 // Ethernet address length
39#define U_TYPE_LEN 2 //
40#define U_CRC_LEN 4 // 39#define U_CRC_LEN 4 //
41#define U_HEADER_LEN (U_ETHER_ADDR_LEN * 2 + U_TYPE_LEN) 40#define U_ETHER_ADDR_STR_LEN (ETH_ALEN * 2 + 1)
42#define U_ETHER_ADDR_STR_LEN (U_ETHER_ADDR_LEN * 2 + 1)
43 // Ethernet address string length 41 // Ethernet address string length
44 42
45#define MIN_DATA_LEN 46 // min data length 43#define MIN_DATA_LEN 46 // min data length
46#define MAX_DATA_LEN 1500 // max data length 44#define MAX_DATA_LEN 1500 // max data length
47 45
48#define MIN_PACKET_LEN (MIN_DATA_LEN + U_HEADER_LEN) 46#define MIN_PACKET_LEN (MIN_DATA_LEN + ETH_HLEN)
49 // 60 47 // 60
50 // min total packet length (tx) 48 // min total packet length (tx)
51#define MAX_PACKET_LEN (MAX_DATA_LEN + U_HEADER_LEN) 49#define MAX_PACKET_LEN (MAX_DATA_LEN + ETH_HLEN)
52 // 1514 50 // 1514
53 // max total packet length (tx) 51 // max total packet length (tx)
54 52
@@ -167,8 +165,8 @@
167// Ethernet packet 165// Ethernet packet
168// 166//
169typedef struct tagSEthernetHeader { 167typedef struct tagSEthernetHeader {
170 BYTE abyDstAddr[U_ETHER_ADDR_LEN]; 168 BYTE abyDstAddr[ETH_ALEN];
171 BYTE abySrcAddr[U_ETHER_ADDR_LEN]; 169 BYTE abySrcAddr[ETH_ALEN];
172 WORD wType; 170 WORD wType;
173}__attribute__ ((__packed__)) 171}__attribute__ ((__packed__))
174SEthernetHeader, *PSEthernetHeader; 172SEthernetHeader, *PSEthernetHeader;
@@ -178,8 +176,8 @@ SEthernetHeader, *PSEthernetHeader;
178// 802_3 packet 176// 802_3 packet
179// 177//
180typedef struct tagS802_3Header { 178typedef struct tagS802_3Header {
181 BYTE abyDstAddr[U_ETHER_ADDR_LEN]; 179 BYTE abyDstAddr[ETH_ALEN];
182 BYTE abySrcAddr[U_ETHER_ADDR_LEN]; 180 BYTE abySrcAddr[ETH_ALEN];
183 WORD wLen; 181 WORD wLen;
184}__attribute__ ((__packed__)) 182}__attribute__ ((__packed__))
185S802_3Header, *PS802_3Header; 183S802_3Header, *PS802_3Header;
@@ -190,11 +188,11 @@ S802_3Header, *PS802_3Header;
190typedef struct tagS802_11Header { 188typedef struct tagS802_11Header {
191 WORD wFrameCtl; 189 WORD wFrameCtl;
192 WORD wDurationID; 190 WORD wDurationID;
193 BYTE abyAddr1[U_ETHER_ADDR_LEN]; 191 BYTE abyAddr1[ETH_ALEN];
194 BYTE abyAddr2[U_ETHER_ADDR_LEN]; 192 BYTE abyAddr2[ETH_ALEN];
195 BYTE abyAddr3[U_ETHER_ADDR_LEN]; 193 BYTE abyAddr3[ETH_ALEN];
196 WORD wSeqCtl; 194 WORD wSeqCtl;
197 BYTE abyAddr4[U_ETHER_ADDR_LEN]; 195 BYTE abyAddr4[ETH_ALEN];
198}__attribute__ ((__packed__)) 196}__attribute__ ((__packed__))
199S802_11Header, *PS802_11Header; 197S802_11Header, *PS802_11Header;
200 198
@@ -228,9 +226,6 @@ S802_11Header, *PS802_11Header;
228 226
229BYTE ETHbyGetHashIndexByCrc32(PBYTE pbyMultiAddr); 227BYTE ETHbyGetHashIndexByCrc32(PBYTE pbyMultiAddr);
230//BYTE ETHbyGetHashIndexByCrc(PBYTE pbyMultiAddr); 228//BYTE ETHbyGetHashIndexByCrc(PBYTE pbyMultiAddr);
231BOOL ETHbIsBufferCrc32Ok(PBYTE pbyBuffer, UINT cbFrameLength); 229BOOL ETHbIsBufferCrc32Ok(PBYTE pbyBuffer, unsigned int cbFrameLength);
232
233#endif // __TETHER_H__
234
235
236 230
231#endif /* __TETHER_H__ */
diff --git a/drivers/staging/vt6656/tkip.c b/drivers/staging/vt6656/tkip.c
index 8ca154080e9..f83af5913aa 100644
--- a/drivers/staging/vt6656/tkip.c
+++ b/drivers/staging/vt6656/tkip.c
@@ -183,7 +183,7 @@ unsigned int rotr1(unsigned int a)
183 * Return Value: none 183 * Return Value: none
184 * 184 *
185 */ 185 */
186VOID TKIPvMixKey( 186void TKIPvMixKey(
187 PBYTE pbyTKey, 187 PBYTE pbyTKey,
188 PBYTE pbyTA, 188 PBYTE pbyTA,
189 WORD wTSC15_0, 189 WORD wTSC15_0,
diff --git a/drivers/staging/vt6656/tkip.h b/drivers/staging/vt6656/tkip.h
index 847ecdf97ee..47c3a853b92 100644
--- a/drivers/staging/vt6656/tkip.h
+++ b/drivers/staging/vt6656/tkip.h
@@ -46,7 +46,7 @@
46 46
47/*--------------------- Export Functions --------------------------*/ 47/*--------------------- Export Functions --------------------------*/
48 48
49VOID TKIPvMixKey( 49void TKIPvMixKey(
50 PBYTE pbyTKey, 50 PBYTE pbyTKey,
51 PBYTE pbyTA, 51 PBYTE pbyTA,
52 WORD wTSC15_0, 52 WORD wTSC15_0,
@@ -54,7 +54,4 @@ VOID TKIPvMixKey(
54 PBYTE pbyRC4Key 54 PBYTE pbyRC4Key
55 ); 55 );
56 56
57#endif // __TKIP_H__ 57#endif /* __TKIP_H__ */
58
59
60
diff --git a/drivers/staging/vt6656/tmacro.h b/drivers/staging/vt6656/tmacro.h
index e96c140de05..3c81e2b0791 100644
--- a/drivers/staging/vt6656/tmacro.h
+++ b/drivers/staging/vt6656/tmacro.h
@@ -57,6 +57,4 @@
57#define MAKEDWORD(lw, hw) ((DWORD)(((WORD)(lw)) | (((DWORD)((WORD)(hw))) << 16))) 57#define MAKEDWORD(lw, hw) ((DWORD)(((WORD)(lw)) | (((DWORD)((WORD)(hw))) << 16)))
58#endif 58#endif
59 59
60#endif // __TMACRO_H__ 60#endif /* __TMACRO_H__ */
61
62
diff --git a/drivers/staging/vt6656/ttype.h b/drivers/staging/vt6656/ttype.h
index 9ee3f436fc3..c27f9858e2e 100644
--- a/drivers/staging/vt6656/ttype.h
+++ b/drivers/staging/vt6656/ttype.h
@@ -26,25 +26,11 @@
26 * 26 *
27 */ 27 */
28 28
29
30#ifndef __TTYPE_H__ 29#ifndef __TTYPE_H__
31#define __TTYPE_H__ 30#define __TTYPE_H__
32 31
33
34/******* Common definitions and typedefs ***********************************/ 32/******* Common definitions and typedefs ***********************************/
35 33
36#ifndef VOID
37#define VOID void
38#endif
39
40#ifndef IN
41#define IN
42#endif
43
44#ifndef OUT
45#define OUT
46#endif
47
48//2007-0115-05<Add>by MikeLiu 34//2007-0115-05<Add>by MikeLiu
49#ifndef TxInSleep 35#ifndef TxInSleep
50#define TxInSleep 36#define TxInSleep
@@ -52,7 +38,6 @@
52 38
53//DavidWang 39//DavidWang
54 40
55
56//2007-0814-01<Add>by MikeLiu 41//2007-0814-01<Add>by MikeLiu
57#ifndef Safe_Close 42#ifndef Safe_Close
58#define Safe_Close 43#define Safe_Close
@@ -72,11 +57,6 @@ typedef int BOOL;
72#define FALSE 0 57#define FALSE 0
73#endif 58#endif
74 59
75
76#if !defined(SUCCESS)
77#define SUCCESS 0
78#endif
79
80//2007-0809-01<Add>by MikeLiu 60//2007-0809-01<Add>by MikeLiu
81#ifndef update_BssList 61#ifndef update_BssList
82#define update_BssList 62#define update_BssList
@@ -92,31 +72,6 @@ typedef int BOOL;
92 72
93/****** Simple typedefs ***************************************************/ 73/****** Simple typedefs ***************************************************/
94 74
95/* These lines assume that your compiler's longs are 32 bits and
96 * shorts are 16 bits. It is already assumed that chars are 8 bits,
97 * but it doesn't matter if they're signed or unsigned.
98 */
99
100typedef signed char I8; /* 8-bit signed integer */
101
102typedef unsigned char U8; /* 8-bit unsigned integer */
103typedef unsigned short U16; /* 16-bit unsigned integer */
104typedef unsigned long U32; /* 32-bit unsigned integer */
105
106
107typedef char CHAR;
108typedef signed short SHORT;
109typedef signed int INT;
110typedef signed long LONG;
111
112typedef unsigned char UCHAR;
113typedef unsigned short USHORT;
114typedef unsigned int UINT;
115typedef unsigned long ULONG;
116typedef unsigned long long ULONGLONG; //64 bit
117
118
119
120typedef unsigned char BYTE; // 8-bit 75typedef unsigned char BYTE; // 8-bit
121typedef unsigned short WORD; // 16-bit 76typedef unsigned short WORD; // 16-bit
122typedef unsigned long DWORD; // 32-bit 77typedef unsigned long DWORD; // 32-bit
@@ -133,7 +88,6 @@ typedef union tagUQuadWord {
133} UQuadWord; 88} UQuadWord;
134typedef UQuadWord QWORD; // 64-bit 89typedef UQuadWord QWORD; // 64-bit
135 90
136
137/****** Common pointer types ***********************************************/ 91/****** Common pointer types ***********************************************/
138 92
139typedef unsigned long ULONG_PTR; // 32-bit 93typedef unsigned long ULONG_PTR; // 32-bit
@@ -150,13 +104,4 @@ typedef DWORD * PDWORD;
150 104
151typedef QWORD * PQWORD; 105typedef QWORD * PQWORD;
152 106
153typedef void * PVOID; 107#endif /* __TTYPE_H__ */
154
155// handle declaration
156#ifdef STRICT
157typedef void *HANDLE;
158#else
159typedef PVOID HANDLE;
160#endif
161
162#endif // __TTYPE_H__
diff --git a/drivers/staging/vt6656/upc.h b/drivers/staging/vt6656/upc.h
index acd1b661490..b33aba4b12c 100644
--- a/drivers/staging/vt6656/upc.h
+++ b/drivers/staging/vt6656/upc.h
@@ -141,7 +141,7 @@
141 141
142#define PCAvDelayByIO(uDelayUnit) { \ 142#define PCAvDelayByIO(uDelayUnit) { \
143 BYTE byData; \ 143 BYTE byData; \
144 ULONG ii; \ 144 unsigned long ii; \
145 \ 145 \
146 if (uDelayUnit <= 50) { \ 146 if (uDelayUnit <= 50) { \
147 udelay(uDelayUnit); \ 147 udelay(uDelayUnit); \
@@ -159,8 +159,4 @@
159 159
160/*--------------------- Export Functions --------------------------*/ 160/*--------------------- Export Functions --------------------------*/
161 161
162 162#endif /* __UPC_H__ */
163
164
165#endif // __UPC_H__
166
diff --git a/drivers/staging/vt6656/usbpipe.c b/drivers/staging/vt6656/usbpipe.c
index 65e91a332a6..fd2355e34fb 100644
--- a/drivers/staging/vt6656/usbpipe.c
+++ b/drivers/staging/vt6656/usbpipe.c
@@ -71,36 +71,36 @@ static int msglevel =MSG_LEVEL_INFO;
71 71
72/*--------------------- Static Functions --------------------------*/ 72/*--------------------- Static Functions --------------------------*/
73static 73static
74VOID 74void
75s_nsInterruptUsbIoCompleteRead( 75s_nsInterruptUsbIoCompleteRead(
76 IN struct urb *urb 76 struct urb *urb
77 ); 77 );
78 78
79 79
80static 80static
81VOID 81void
82s_nsBulkInUsbIoCompleteRead( 82s_nsBulkInUsbIoCompleteRead(
83 IN struct urb *urb 83 struct urb *urb
84 ); 84 );
85 85
86 86
87static 87static
88VOID 88void
89s_nsBulkOutIoCompleteWrite( 89s_nsBulkOutIoCompleteWrite(
90 IN struct urb *urb 90 struct urb *urb
91 ); 91 );
92 92
93 93
94static 94static
95VOID 95void
96s_nsControlInUsbIoCompleteRead( 96s_nsControlInUsbIoCompleteRead(
97 IN struct urb *urb 97 struct urb *urb
98 ); 98 );
99 99
100static 100static
101VOID 101void
102s_nsControlInUsbIoCompleteWrite( 102s_nsControlInUsbIoCompleteWrite(
103 IN struct urb *urb 103 struct urb *urb
104 ); 104 );
105 105
106/*--------------------- Export Variables --------------------------*/ 106/*--------------------- Export Variables --------------------------*/
@@ -111,12 +111,12 @@ s_nsControlInUsbIoCompleteWrite(
111 111
112NTSTATUS 112NTSTATUS
113PIPEnsControlOutAsyn( 113PIPEnsControlOutAsyn(
114 IN PSDevice pDevice, 114 PSDevice pDevice,
115 IN BYTE byRequest, 115 BYTE byRequest,
116 IN WORD wValue, 116 WORD wValue,
117 IN WORD wIndex, 117 WORD wIndex,
118 IN WORD wLength, 118 WORD wLength,
119 IN PBYTE pbyBuffer 119 PBYTE pbyBuffer
120 ) 120 )
121{ 121{
122 NTSTATUS ntStatus; 122 NTSTATUS ntStatus;
@@ -142,7 +142,7 @@ PIPEnsControlOutAsyn(
142 0x40, // RequestType 142 0x40, // RequestType
143 wValue, 143 wValue,
144 wIndex, 144 wIndex,
145 (PVOID) pbyBuffer, 145 (void *) pbyBuffer,
146 wLength, 146 wLength,
147 HZ 147 HZ
148 ); 148 );
@@ -162,12 +162,12 @@ PIPEnsControlOutAsyn(
162 162
163NTSTATUS 163NTSTATUS
164PIPEnsControlOut( 164PIPEnsControlOut(
165 IN PSDevice pDevice, 165 PSDevice pDevice,
166 IN BYTE byRequest, 166 BYTE byRequest,
167 IN WORD wValue, 167 WORD wValue,
168 IN WORD wIndex, 168 WORD wIndex,
169 IN WORD wLength, 169 WORD wLength,
170 IN PBYTE pbyBuffer 170 PBYTE pbyBuffer
171 ) 171 )
172{ 172{
173 NTSTATUS ntStatus = 0; 173 NTSTATUS ntStatus = 0;
@@ -193,7 +193,8 @@ PIPEnsControlOut(
193 usb_sndctrlpipe(pDevice->usb , 0), (char *) &pDevice->sUsbCtlRequest, 193 usb_sndctrlpipe(pDevice->usb , 0), (char *) &pDevice->sUsbCtlRequest,
194 pbyBuffer, wLength, s_nsControlInUsbIoCompleteWrite, pDevice); 194 pbyBuffer, wLength, s_nsControlInUsbIoCompleteWrite, pDevice);
195 195
196 if ((ntStatus = usb_submit_urb(pDevice->pControlURB, GFP_ATOMIC)) != 0) { 196 ntStatus = usb_submit_urb(pDevice->pControlURB, GFP_ATOMIC);
197 if (ntStatus != 0) {
197 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"control send request submission failed: %d\n", ntStatus); 198 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"control send request submission failed: %d\n", ntStatus);
198 return STATUS_FAILURE; 199 return STATUS_FAILURE;
199 } 200 }
@@ -223,12 +224,12 @@ PIPEnsControlOut(
223 224
224NTSTATUS 225NTSTATUS
225PIPEnsControlIn( 226PIPEnsControlIn(
226 IN PSDevice pDevice, 227 PSDevice pDevice,
227 IN BYTE byRequest, 228 BYTE byRequest,
228 IN WORD wValue, 229 WORD wValue,
229 IN WORD wIndex, 230 WORD wIndex,
230 IN WORD wLength, 231 WORD wLength,
231 IN OUT PBYTE pbyBuffer 232 PBYTE pbyBuffer
232 ) 233 )
233{ 234{
234 NTSTATUS ntStatus = 0; 235 NTSTATUS ntStatus = 0;
@@ -251,7 +252,8 @@ PIPEnsControlIn(
251 usb_rcvctrlpipe(pDevice->usb , 0), (char *) &pDevice->sUsbCtlRequest, 252 usb_rcvctrlpipe(pDevice->usb , 0), (char *) &pDevice->sUsbCtlRequest,
252 pbyBuffer, wLength, s_nsControlInUsbIoCompleteRead, pDevice); 253 pbyBuffer, wLength, s_nsControlInUsbIoCompleteRead, pDevice);
253 254
254 if ((ntStatus = usb_submit_urb(pDevice->pControlURB, GFP_ATOMIC)) != 0) { 255 ntStatus = usb_submit_urb(pDevice->pControlURB, GFP_ATOMIC);
256 if (ntStatus != 0) {
255 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"control request submission failed: %d\n", ntStatus); 257 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"control request submission failed: %d\n", ntStatus);
256 }else { 258 }else {
257 MP_SET_FLAG(pDevice, fMP_CONTROL_READS); 259 MP_SET_FLAG(pDevice, fMP_CONTROL_READS);
@@ -277,9 +279,9 @@ PIPEnsControlIn(
277} 279}
278 280
279static 281static
280VOID 282void
281s_nsControlInUsbIoCompleteWrite( 283s_nsControlInUsbIoCompleteWrite(
282 IN struct urb *urb 284 struct urb *urb
283 ) 285 )
284{ 286{
285 PSDevice pDevice; 287 PSDevice pDevice;
@@ -318,9 +320,9 @@ s_nsControlInUsbIoCompleteWrite(
318 * 320 *
319 */ 321 */
320static 322static
321VOID 323void
322s_nsControlInUsbIoCompleteRead( 324s_nsControlInUsbIoCompleteRead(
323 IN struct urb *urb 325 struct urb *urb
324 ) 326 )
325{ 327{
326 PSDevice pDevice; 328 PSDevice pDevice;
@@ -360,7 +362,7 @@ s_nsControlInUsbIoCompleteRead(
360 */ 362 */
361NTSTATUS 363NTSTATUS
362PIPEnsInterruptRead( 364PIPEnsInterruptRead(
363 IN PSDevice pDevice 365 PSDevice pDevice
364 ) 366 )
365{ 367{
366 NTSTATUS ntStatus = STATUS_FAILURE; 368 NTSTATUS ntStatus = STATUS_FAILURE;
@@ -383,7 +385,7 @@ PIPEnsInterruptRead(
383 usb_fill_int_urb(pDevice->pInterruptURB, 385 usb_fill_int_urb(pDevice->pInterruptURB,
384 pDevice->usb, 386 pDevice->usb,
385 usb_rcvintpipe(pDevice->usb, 1), 387 usb_rcvintpipe(pDevice->usb, 1),
386 (PVOID) pDevice->intBuf.pDataBuf, 388 (void *) pDevice->intBuf.pDataBuf,
387 MAX_INTERRUPT_SIZE, 389 MAX_INTERRUPT_SIZE,
388 s_nsInterruptUsbIoCompleteRead, 390 s_nsInterruptUsbIoCompleteRead,
389 pDevice, 391 pDevice,
@@ -394,7 +396,7 @@ PIPEnsInterruptRead(
394 usb_fill_int_urb(pDevice->pInterruptURB, 396 usb_fill_int_urb(pDevice->pInterruptURB,
395 pDevice->usb, 397 pDevice->usb,
396 usb_rcvintpipe(pDevice->usb, 1), 398 usb_rcvintpipe(pDevice->usb, 1),
397 (PVOID) pDevice->intBuf.pDataBuf, 399 (void *) pDevice->intBuf.pDataBuf,
398 MAX_INTERRUPT_SIZE, 400 MAX_INTERRUPT_SIZE,
399 s_nsInterruptUsbIoCompleteRead, 401 s_nsInterruptUsbIoCompleteRead,
400 pDevice, 402 pDevice,
@@ -407,14 +409,15 @@ PIPEnsInterruptRead(
407usb_fill_bulk_urb(pDevice->pInterruptURB, 409usb_fill_bulk_urb(pDevice->pInterruptURB,
408 pDevice->usb, 410 pDevice->usb,
409 usb_rcvbulkpipe(pDevice->usb, 1), 411 usb_rcvbulkpipe(pDevice->usb, 1),
410 (PVOID) pDevice->intBuf.pDataBuf, 412 (void *) pDevice->intBuf.pDataBuf,
411 MAX_INTERRUPT_SIZE, 413 MAX_INTERRUPT_SIZE,
412 s_nsInterruptUsbIoCompleteRead, 414 s_nsInterruptUsbIoCompleteRead,
413 pDevice); 415 pDevice);
414#endif 416#endif
415#endif 417#endif
416 418
417 if ((ntStatus = usb_submit_urb(pDevice->pInterruptURB, GFP_ATOMIC)) != 0) { 419 ntStatus = usb_submit_urb(pDevice->pInterruptURB, GFP_ATOMIC);
420 if (ntStatus != 0) {
418 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Submit int URB failed %d\n", ntStatus); 421 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Submit int URB failed %d\n", ntStatus);
419 } 422 }
420 423
@@ -438,9 +441,9 @@ usb_fill_bulk_urb(pDevice->pInterruptURB,
438 * 441 *
439 */ 442 */
440static 443static
441VOID 444void
442s_nsInterruptUsbIoCompleteRead( 445s_nsInterruptUsbIoCompleteRead(
443 IN struct urb *urb 446 struct urb *urb
444 ) 447 )
445 448
446{ 449{
@@ -481,12 +484,11 @@ s_nsInterruptUsbIoCompleteRead(
481 pDevice->fKillEventPollingThread = TRUE; 484 pDevice->fKillEventPollingThread = TRUE;
482// } 485// }
483 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"IntUSBIoCompleteControl STATUS = %d\n", ntStatus ); 486 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"IntUSBIoCompleteControl STATUS = %d\n", ntStatus );
484 } 487 } else {
485 else { 488 pDevice->ulIntInBytesRead += (unsigned long) urb->actual_length;
486 pDevice->ulIntInBytesRead += (ULONG)urb->actual_length; 489 pDevice->ulIntInContCRCError = 0;
487 pDevice->ulIntInContCRCError = 0; 490 pDevice->bEventAvailable = TRUE;
488 pDevice->bEventAvailable = TRUE; 491 INTnsProcessData(pDevice);
489 INTnsProcessData(pDevice);
490 } 492 }
491 493
492 STAvUpdateUSBCounter(&pDevice->scStatistic.USB_InterruptStat, ntStatus); 494 STAvUpdateUSBCounter(&pDevice->scStatistic.USB_InterruptStat, ntStatus);
@@ -494,7 +496,8 @@ s_nsInterruptUsbIoCompleteRead(
494 496
495 if (pDevice->fKillEventPollingThread != TRUE) { 497 if (pDevice->fKillEventPollingThread != TRUE) {
496 #if 0 //reserve int URB submit 498 #if 0 //reserve int URB submit
497 if ((ntStatus = usb_submit_urb(urb, GFP_ATOMIC)) != 0) { 499 ntStatus = usb_submit_urb(urb, GFP_ATOMIC);
500 if (ntStatus != 0) {
498 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Re-Submit int URB failed %d\n", ntStatus); 501 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Re-Submit int URB failed %d\n", ntStatus);
499 } 502 }
500 #else //replace int URB submit by bulk transfer 503 #else //replace int URB submit by bulk transfer
@@ -502,12 +505,13 @@ s_nsInterruptUsbIoCompleteRead(
502 usb_fill_bulk_urb(pDevice->pInterruptURB, 505 usb_fill_bulk_urb(pDevice->pInterruptURB,
503 pDevice->usb, 506 pDevice->usb,
504 usb_rcvbulkpipe(pDevice->usb, 1), 507 usb_rcvbulkpipe(pDevice->usb, 1),
505 (PVOID) pDevice->intBuf.pDataBuf, 508 (void *) pDevice->intBuf.pDataBuf,
506 MAX_INTERRUPT_SIZE, 509 MAX_INTERRUPT_SIZE,
507 s_nsInterruptUsbIoCompleteRead, 510 s_nsInterruptUsbIoCompleteRead,
508 pDevice); 511 pDevice);
509 512
510 if ((ntStatus = usb_submit_urb(pDevice->pInterruptURB, GFP_ATOMIC)) != 0) { 513 ntStatus = usb_submit_urb(pDevice->pInterruptURB, GFP_ATOMIC);
514 if (ntStatus != 0) {
511 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Submit int URB failed %d\n", ntStatus); 515 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Submit int URB failed %d\n", ntStatus);
512 } 516 }
513 517
@@ -538,8 +542,8 @@ s_nsInterruptUsbIoCompleteRead(
538 */ 542 */
539NTSTATUS 543NTSTATUS
540PIPEnsBulkInUsbRead( 544PIPEnsBulkInUsbRead(
541 IN PSDevice pDevice, 545 PSDevice pDevice,
542 IN PRCB pRCB 546 PRCB pRCB
543 ) 547 )
544{ 548{
545 NTSTATUS ntStatus= 0; 549 NTSTATUS ntStatus= 0;
@@ -567,12 +571,13 @@ PIPEnsBulkInUsbRead(
567 usb_fill_bulk_urb(pUrb, 571 usb_fill_bulk_urb(pUrb,
568 pDevice->usb, 572 pDevice->usb,
569 usb_rcvbulkpipe(pDevice->usb, 2), 573 usb_rcvbulkpipe(pDevice->usb, 2),
570 (PVOID) (pRCB->skb->data), 574 (void *) (pRCB->skb->data),
571 MAX_TOTAL_SIZE_WITH_ALL_HEADERS, 575 MAX_TOTAL_SIZE_WITH_ALL_HEADERS,
572 s_nsBulkInUsbIoCompleteRead, 576 s_nsBulkInUsbIoCompleteRead,
573 pRCB); 577 pRCB);
574 578
575 if((ntStatus = usb_submit_urb(pUrb, GFP_ATOMIC)) != 0){ 579 ntStatus = usb_submit_urb(pUrb, GFP_ATOMIC);
580 if (ntStatus != 0) {
576 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Submit Rx URB failed %d\n", ntStatus); 581 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Submit Rx URB failed %d\n", ntStatus);
577 return STATUS_FAILURE ; 582 return STATUS_FAILURE ;
578 } 583 }
@@ -600,15 +605,15 @@ PIPEnsBulkInUsbRead(
600 * 605 *
601 */ 606 */
602static 607static
603VOID 608void
604s_nsBulkInUsbIoCompleteRead( 609s_nsBulkInUsbIoCompleteRead(
605 IN struct urb *urb 610 struct urb *urb
606 ) 611 )
607 612
608{ 613{
609 PRCB pRCB = (PRCB)urb->context; 614 PRCB pRCB = (PRCB)urb->context;
610 PSDevice pDevice = (PSDevice)pRCB->pDevice; 615 PSDevice pDevice = (PSDevice)pRCB->pDevice;
611 ULONG bytesRead; 616 unsigned long bytesRead;
612 BOOL bIndicateReceive = FALSE; 617 BOOL bIndicateReceive = FALSE;
613 BOOL bReAllocSkb = FALSE; 618 BOOL bReAllocSkb = FALSE;
614 NTSTATUS status; 619 NTSTATUS status;
@@ -681,8 +686,8 @@ s_nsBulkInUsbIoCompleteRead(
681 */ 686 */
682NDIS_STATUS 687NDIS_STATUS
683PIPEnsSendBulkOut( 688PIPEnsSendBulkOut(
684 IN PSDevice pDevice, 689 PSDevice pDevice,
685 IN PUSB_SEND_CONTEXT pContext 690 PUSB_SEND_CONTEXT pContext
686 ) 691 )
687{ 692{
688 NTSTATUS status; 693 NTSTATUS status;
@@ -712,13 +717,14 @@ PIPEnsSendBulkOut(
712 usb_fill_bulk_urb( 717 usb_fill_bulk_urb(
713 pUrb, 718 pUrb,
714 pDevice->usb, 719 pDevice->usb,
715 usb_sndbulkpipe(pDevice->usb, 3), 720 usb_sndbulkpipe(pDevice->usb, 3),
716 (PVOID) &(pContext->Data[0]), 721 (void *) &(pContext->Data[0]),
717 pContext->uBufLen, 722 pContext->uBufLen,
718 s_nsBulkOutIoCompleteWrite, 723 s_nsBulkOutIoCompleteWrite,
719 pContext); 724 pContext);
720 725
721 if((status = usb_submit_urb(pUrb, GFP_ATOMIC))!=0) 726 status = usb_submit_urb(pUrb, GFP_ATOMIC);
727 if (status != 0)
722 { 728 {
723 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Submit Tx URB failed %d\n", status); 729 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Submit Tx URB failed %d\n", status);
724 return STATUS_FAILURE; 730 return STATUS_FAILURE;
@@ -759,15 +765,15 @@ PIPEnsSendBulkOut(
759 * 765 *
760 */ 766 */
761static 767static
762VOID 768void
763s_nsBulkOutIoCompleteWrite( 769s_nsBulkOutIoCompleteWrite(
764 IN struct urb *urb 770 struct urb *urb
765 ) 771 )
766{ 772{
767 PSDevice pDevice; 773 PSDevice pDevice;
768 NTSTATUS status; 774 NTSTATUS status;
769 CONTEXT_TYPE ContextType; 775 CONTEXT_TYPE ContextType;
770 ULONG ulBufLen; 776 unsigned long ulBufLen;
771 PUSB_SEND_CONTEXT pContext; 777 PUSB_SEND_CONTEXT pContext;
772 778
773 779
diff --git a/drivers/staging/vt6656/usbpipe.h b/drivers/staging/vt6656/usbpipe.h
index c422d1d0873..f852b39027a 100644
--- a/drivers/staging/vt6656/usbpipe.h
+++ b/drivers/staging/vt6656/usbpipe.h
@@ -43,34 +43,34 @@
43 43
44NTSTATUS 44NTSTATUS
45PIPEnsControlOut( 45PIPEnsControlOut(
46 IN PSDevice pDevice, 46 PSDevice pDevice,
47 IN BYTE byRequest, 47 BYTE byRequest,
48 IN WORD wValue, 48 WORD wValue,
49 IN WORD wIndex, 49 WORD wIndex,
50 IN WORD wLength, 50 WORD wLength,
51 IN PBYTE pbyBuffer 51 PBYTE pbyBuffer
52 ); 52 );
53 53
54 54
55 55
56NTSTATUS 56NTSTATUS
57PIPEnsControlOutAsyn( 57PIPEnsControlOutAsyn(
58 IN PSDevice pDevice, 58 PSDevice pDevice,
59 IN BYTE byRequest, 59 BYTE byRequest,
60 IN WORD wValue, 60 WORD wValue,
61 IN WORD wIndex, 61 WORD wIndex,
62 IN WORD wLength, 62 WORD wLength,
63 IN PBYTE pbyBuffer 63 PBYTE pbyBuffer
64 ); 64 );
65 65
66NTSTATUS 66NTSTATUS
67PIPEnsControlIn( 67PIPEnsControlIn(
68 IN PSDevice pDevice, 68 PSDevice pDevice,
69 IN BYTE byRequest, 69 BYTE byRequest,
70 IN WORD wValue, 70 WORD wValue,
71 IN WORD wIndex, 71 WORD wIndex,
72 IN WORD wLength, 72 WORD wLength,
73 IN OUT PBYTE pbyBuffer 73 PBYTE pbyBuffer
74 ); 74 );
75 75
76 76
@@ -78,22 +78,19 @@ PIPEnsControlIn(
78 78
79NTSTATUS 79NTSTATUS
80PIPEnsInterruptRead( 80PIPEnsInterruptRead(
81 IN PSDevice pDevice 81 PSDevice pDevice
82 ); 82 );
83 83
84NTSTATUS 84NTSTATUS
85PIPEnsBulkInUsbRead( 85PIPEnsBulkInUsbRead(
86 IN PSDevice pDevice, 86 PSDevice pDevice,
87 IN PRCB pRCB 87 PRCB pRCB
88 ); 88 );
89 89
90NTSTATUS 90NTSTATUS
91PIPEnsSendBulkOut( 91PIPEnsSendBulkOut(
92 IN PSDevice pDevice, 92 PSDevice pDevice,
93 IN PUSB_SEND_CONTEXT pContext 93 PUSB_SEND_CONTEXT pContext
94 ); 94 );
95 95
96#endif // __USBPIPE_H__ 96#endif /* __USBPIPE_H__ */
97
98
99
diff --git a/drivers/staging/vt6656/wcmd.c b/drivers/staging/vt6656/wcmd.c
index 51b2dcfbab9..72e21b6f0e8 100644
--- a/drivers/staging/vt6656/wcmd.c
+++ b/drivers/staging/vt6656/wcmd.c
@@ -69,21 +69,21 @@ static int msglevel =MSG_LEVEL_INFO;
69/*--------------------- Static Functions --------------------------*/ 69/*--------------------- Static Functions --------------------------*/
70 70
71static 71static
72VOID 72void
73s_vProbeChannel( 73s_vProbeChannel(
74 IN PSDevice pDevice 74 PSDevice pDevice
75 ); 75 );
76 76
77 77
78static 78static
79PSTxMgmtPacket 79PSTxMgmtPacket
80s_MgrMakeProbeRequest( 80s_MgrMakeProbeRequest(
81 IN PSDevice pDevice, 81 PSDevice pDevice,
82 IN PSMgmtObject pMgmt, 82 PSMgmtObject pMgmt,
83 IN PBYTE pScanBSSID, 83 PBYTE pScanBSSID,
84 IN PWLAN_IE_SSID pSSID, 84 PWLAN_IE_SSID pSSID,
85 IN PWLAN_IE_SUPP_RATES pCurrRates, 85 PWLAN_IE_SUPP_RATES pCurrRates,
86 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 86 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
87 ); 87 );
88 88
89 89
@@ -94,18 +94,12 @@ s_bCommandComplete (
94 ); 94 );
95 95
96 96
97static 97static BOOL s_bClearBSSID_SCAN(void *hDeviceContext);
98BOOL s_bClearBSSID_SCAN (
99 IN HANDLE hDeviceContext
100 );
101 98
102/*--------------------- Export Variables --------------------------*/ 99/*--------------------- Export Variables --------------------------*/
103 100
104
105/*--------------------- Export Functions --------------------------*/ 101/*--------------------- Export Functions --------------------------*/
106 102
107
108
109/* 103/*
110 * Description: 104 * Description:
111 * Stop AdHoc beacon during scan process 105 * Stop AdHoc beacon during scan process
@@ -119,6 +113,7 @@ BOOL s_bClearBSSID_SCAN (
119 * Return Value: none 113 * Return Value: none
120 * 114 *
121 */ 115 */
116
122static 117static
123void 118void
124vAdHocBeaconStop(PSDevice pDevice) 119vAdHocBeaconStop(PSDevice pDevice)
@@ -210,9 +205,9 @@ vAdHocBeaconRestart(PSDevice pDevice)
210-*/ 205-*/
211 206
212static 207static
213VOID 208void
214s_vProbeChannel( 209s_vProbeChannel(
215 IN PSDevice pDevice 210 PSDevice pDevice
216 ) 211 )
217{ 212{
218 //1M, 2M, 5M, 11M, 18M, 24M, 36M, 54M 213 //1M, 2M, 5M, 11M, 18M, 24M, 36M, 54M
@@ -224,7 +219,7 @@ s_vProbeChannel(
224 PBYTE pbyRate; 219 PBYTE pbyRate;
225 PSTxMgmtPacket pTxPacket; 220 PSTxMgmtPacket pTxPacket;
226 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 221 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
227 UINT ii; 222 unsigned int ii;
228 223
229 224
230 if (pDevice->byBBType == BB_TYPE_11A) { 225 if (pDevice->byBBType == BB_TYPE_11A) {
@@ -275,12 +270,12 @@ s_vProbeChannel(
275 270
276PSTxMgmtPacket 271PSTxMgmtPacket
277s_MgrMakeProbeRequest( 272s_MgrMakeProbeRequest(
278 IN PSDevice pDevice, 273 PSDevice pDevice,
279 IN PSMgmtObject pMgmt, 274 PSMgmtObject pMgmt,
280 IN PBYTE pScanBSSID, 275 PBYTE pScanBSSID,
281 IN PWLAN_IE_SSID pSSID, 276 PWLAN_IE_SSID pSSID,
282 IN PWLAN_IE_SUPP_RATES pCurrRates, 277 PWLAN_IE_SUPP_RATES pCurrRates,
283 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 278 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
284 279
285 ) 280 )
286{ 281{
@@ -321,41 +316,27 @@ s_MgrMakeProbeRequest(
321 return pTxPacket; 316 return pTxPacket;
322} 317}
323 318
324 319void vCommandTimerWait(void *hDeviceContext, unsigned int MSecond)
325
326
327
328VOID
329vCommandTimerWait(
330 IN HANDLE hDeviceContext,
331 IN UINT MSecond
332 )
333{ 320{
334 PSDevice pDevice = (PSDevice)hDeviceContext; 321 PSDevice pDevice = (PSDevice)hDeviceContext;
335 322
336 init_timer(&pDevice->sTimerCommand); 323 init_timer(&pDevice->sTimerCommand);
337 pDevice->sTimerCommand.data = (ULONG)pDevice; 324 pDevice->sTimerCommand.data = (unsigned long)pDevice;
338 pDevice->sTimerCommand.function = (TimerFunction)vRunCommand; 325 pDevice->sTimerCommand.function = (TimerFunction)vRunCommand;
339 // RUN_AT :1 msec ~= (HZ/1024) 326 // RUN_AT :1 msec ~= (HZ/1024)
340 pDevice->sTimerCommand.expires = (UINT)RUN_AT((MSecond * HZ) >> 10); 327 pDevice->sTimerCommand.expires = (unsigned int)RUN_AT((MSecond * HZ) >> 10);
341 add_timer(&pDevice->sTimerCommand); 328 add_timer(&pDevice->sTimerCommand);
342 return; 329 return;
343} 330}
344 331
345 332void vRunCommand(void *hDeviceContext)
346
347
348VOID
349vRunCommand(
350 IN HANDLE hDeviceContext
351 )
352{ 333{
353 PSDevice pDevice = (PSDevice)hDeviceContext; 334 PSDevice pDevice = (PSDevice)hDeviceContext;
354 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 335 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
355 PWLAN_IE_SSID pItemSSID; 336 PWLAN_IE_SSID pItemSSID;
356 PWLAN_IE_SSID pItemSSIDCurr; 337 PWLAN_IE_SSID pItemSSIDCurr;
357 CMD_STATUS Status; 338 CMD_STATUS Status;
358 UINT ii; 339 unsigned int ii;
359 BYTE byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80}; 340 BYTE byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80};
360 struct sk_buff *skb; 341 struct sk_buff *skb;
361 BYTE byData; 342 BYTE byData;
@@ -435,7 +416,8 @@ vRunCommand(
435 pMgmt->abyScanBSSID[5] = 0xFF; 416 pMgmt->abyScanBSSID[5] = 0xFF;
436 pItemSSID->byElementID = WLAN_EID_SSID; 417 pItemSSID->byElementID = WLAN_EID_SSID;
437 // clear bssid list 418 // clear bssid list
438 // BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 419 /* BSSvClearBSSList((void *) pDevice,
420 pDevice->bLinkPass); */
439 pMgmt->eScanState = WMAC_IS_SCANNING; 421 pMgmt->eScanState = WMAC_IS_SCANNING;
440 pDevice->byScanBBType = pDevice->byBBType; //lucas 422 pDevice->byScanBBType = pDevice->byBBType; //lucas
441 pDevice->bStopDataPkt = TRUE; 423 pDevice->bStopDataPkt = TRUE;
@@ -480,11 +462,11 @@ vRunCommand(
480 (pMgmt->uScanChannel < CB_MAX_CHANNEL_24G)) { 462 (pMgmt->uScanChannel < CB_MAX_CHANNEL_24G)) {
481 s_vProbeChannel(pDevice); 463 s_vProbeChannel(pDevice);
482 spin_unlock_irq(&pDevice->lock); 464 spin_unlock_irq(&pDevice->lock);
483 vCommandTimerWait((HANDLE)pDevice, 100); 465 vCommandTimerWait((void *) pDevice, 100);
484 return; 466 return;
485 } else { 467 } else {
486 spin_unlock_irq(&pDevice->lock); 468 spin_unlock_irq(&pDevice->lock);
487 vCommandTimerWait((HANDLE)pDevice, WCMD_PASSIVE_SCAN_TIME); 469 vCommandTimerWait((void *) pDevice, WCMD_PASSIVE_SCAN_TIME);
488 return; 470 return;
489 } 471 }
490 472
@@ -552,7 +534,11 @@ vRunCommand(
552 534
553 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Send Disassociation Packet..\n"); 535 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Send Disassociation Packet..\n");
554 // reason = 8 : disassoc because sta has left 536 // reason = 8 : disassoc because sta has left
555 vMgrDisassocBeginSta((HANDLE)pDevice, pMgmt, pMgmt->abyCurrBSSID, (8), &Status); 537 vMgrDisassocBeginSta((void *) pDevice,
538 pMgmt,
539 pMgmt->abyCurrBSSID,
540 (8),
541 &Status);
556 pDevice->bLinkPass = FALSE; 542 pDevice->bLinkPass = FALSE;
557 ControlvMaskByte(pDevice,MESSAGE_REQUEST_MACREG,MAC_REG_PAPEDELAY,LEDSTS_STS,LEDSTS_SLOW); 543 ControlvMaskByte(pDevice,MESSAGE_REQUEST_MACREG,MAC_REG_PAPEDELAY,LEDSTS_STS,LEDSTS_SLOW);
558 // unlock command busy 544 // unlock command busy
@@ -614,22 +600,26 @@ vRunCommand(
614 // set initial state 600 // set initial state
615 pMgmt->eCurrState = WMAC_STATE_IDLE; 601 pMgmt->eCurrState = WMAC_STATE_IDLE;
616 pMgmt->eCurrMode = WMAC_MODE_STANDBY; 602 pMgmt->eCurrMode = WMAC_MODE_STANDBY;
617 PSvDisablePowerSaving((HANDLE)pDevice); 603 PSvDisablePowerSaving((void *) pDevice);
618 BSSvClearNodeDBTable(pDevice, 0); 604 BSSvClearNodeDBTable(pDevice, 0);
619 vMgrJoinBSSBegin((HANDLE)pDevice, &Status); 605 vMgrJoinBSSBegin((void *) pDevice, &Status);
620 // if Infra mode 606 // if Infra mode
621 if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED)) { 607 if ((pMgmt->eCurrMode == WMAC_MODE_ESS_STA) && (pMgmt->eCurrState == WMAC_STATE_JOINTED)) {
622 // Call mgr to begin the deauthentication 608 // Call mgr to begin the deauthentication
623 // reason = (3) beacuse sta has left ESS 609 // reason = (3) beacuse sta has left ESS
624 if (pMgmt->eCurrState>= WMAC_STATE_AUTH) { 610 if (pMgmt->eCurrState >= WMAC_STATE_AUTH) {
625 vMgrDeAuthenBeginSta((HANDLE)pDevice, pMgmt, pMgmt->abyCurrBSSID, (3), &Status); 611 vMgrDeAuthenBeginSta((void *)pDevice,
626 } 612 pMgmt,
613 pMgmt->abyCurrBSSID,
614 (3),
615 &Status);
616 }
627 // Call mgr to begin the authentication 617 // Call mgr to begin the authentication
628 vMgrAuthenBeginSta((HANDLE)pDevice, pMgmt, &Status); 618 vMgrAuthenBeginSta((void *) pDevice, pMgmt, &Status);
629 if (Status == CMD_STATUS_SUCCESS) { 619 if (Status == CMD_STATUS_SUCCESS) {
630 pDevice->byLinkWaitCount = 0; 620 pDevice->byLinkWaitCount = 0;
631 pDevice->eCommandState = WLAN_AUTHENTICATE_WAIT; 621 pDevice->eCommandState = WLAN_AUTHENTICATE_WAIT;
632 vCommandTimerWait((HANDLE)pDevice, AUTHENTICATE_TIMEOUT); 622 vCommandTimerWait((void *) pDevice, AUTHENTICATE_TIMEOUT);
633 spin_unlock_irq(&pDevice->lock); 623 spin_unlock_irq(&pDevice->lock);
634 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" Set eCommandState = WLAN_AUTHENTICATE_WAIT\n"); 624 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" Set eCommandState = WLAN_AUTHENTICATE_WAIT\n");
635 return; 625 return;
@@ -648,10 +638,12 @@ vRunCommand(
648 } 638 }
649 else { 639 else {
650 // start own IBSS 640 // start own IBSS
651 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "CreateOwn IBSS by CurrMode = IBSS_STA \n"); 641 DBG_PRT(MSG_LEVEL_DEBUG,
652 vMgrCreateOwnIBSS((HANDLE)pDevice, &Status); 642 KERN_INFO "CreateOwn IBSS by CurrMode = IBSS_STA\n");
643 vMgrCreateOwnIBSS((void *) pDevice, &Status);
653 if (Status != CMD_STATUS_SUCCESS){ 644 if (Status != CMD_STATUS_SUCCESS){
654 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " WLAN_CMD_IBSS_CREATE fail ! \n"); 645 DBG_PRT(MSG_LEVEL_DEBUG,
646 KERN_INFO "WLAN_CMD_IBSS_CREATE fail!\n");
655 }; 647 };
656 BSSvAddMulticastNode(pDevice); 648 BSSvAddMulticastNode(pDevice);
657 } 649 }
@@ -662,10 +654,12 @@ vRunCommand(
662 if (pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA || 654 if (pMgmt->eConfigMode == WMAC_CONFIG_IBSS_STA ||
663 pMgmt->eConfigMode == WMAC_CONFIG_AUTO) { 655 pMgmt->eConfigMode == WMAC_CONFIG_AUTO) {
664 // start own IBSS 656 // start own IBSS
665 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "CreateOwn IBSS by CurrMode = STANDBY \n"); 657 DBG_PRT(MSG_LEVEL_DEBUG,
666 vMgrCreateOwnIBSS((HANDLE)pDevice, &Status); 658 KERN_INFO "CreateOwn IBSS by CurrMode = STANDBY\n");
659 vMgrCreateOwnIBSS((void *) pDevice, &Status);
667 if (Status != CMD_STATUS_SUCCESS){ 660 if (Status != CMD_STATUS_SUCCESS){
668 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO" WLAN_CMD_IBSS_CREATE fail ! \n"); 661 DBG_PRT(MSG_LEVEL_DEBUG,
662 KERN_INFO "WLAN_CMD_IBSS_CREATE fail!\n");
669 }; 663 };
670 BSSvAddMulticastNode(pDevice); 664 BSSvAddMulticastNode(pDevice);
671 s_bClearBSSID_SCAN(pDevice); 665 s_bClearBSSID_SCAN(pDevice);
@@ -701,12 +695,12 @@ vRunCommand(
701 pDevice->byLinkWaitCount = 0; 695 pDevice->byLinkWaitCount = 0;
702 // Call mgr to begin the association 696 // Call mgr to begin the association
703 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_AUTH\n"); 697 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_AUTH\n");
704 vMgrAssocBeginSta((HANDLE)pDevice, pMgmt, &Status); 698 vMgrAssocBeginSta((void *) pDevice, pMgmt, &Status);
705 if (Status == CMD_STATUS_SUCCESS) { 699 if (Status == CMD_STATUS_SUCCESS) {
706 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCommandState = WLAN_ASSOCIATE_WAIT\n"); 700 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCommandState = WLAN_ASSOCIATE_WAIT\n");
707 pDevice->byLinkWaitCount = 0; 701 pDevice->byLinkWaitCount = 0;
708 pDevice->eCommandState = WLAN_ASSOCIATE_WAIT; 702 pDevice->eCommandState = WLAN_ASSOCIATE_WAIT;
709 vCommandTimerWait((HANDLE)pDevice, ASSOCIATE_TIMEOUT); 703 vCommandTimerWait((void *) pDevice, ASSOCIATE_TIMEOUT);
710 spin_unlock_irq(&pDevice->lock); 704 spin_unlock_irq(&pDevice->lock);
711 return; 705 return;
712 } 706 }
@@ -718,7 +712,7 @@ vRunCommand(
718 pDevice->byLinkWaitCount ++; 712 pDevice->byLinkWaitCount ++;
719 printk("WLAN_AUTHENTICATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount); 713 printk("WLAN_AUTHENTICATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount);
720 spin_unlock_irq(&pDevice->lock); 714 spin_unlock_irq(&pDevice->lock);
721 vCommandTimerWait((HANDLE)pDevice, AUTHENTICATE_TIMEOUT/2); 715 vCommandTimerWait((void *) pDevice, AUTHENTICATE_TIMEOUT/2);
722 return; 716 return;
723 } 717 }
724 pDevice->byLinkWaitCount = 0; 718 pDevice->byLinkWaitCount = 0;
@@ -742,7 +736,8 @@ vRunCommand(
742 if (pMgmt->eCurrState == WMAC_STATE_ASSOC) { 736 if (pMgmt->eCurrState == WMAC_STATE_ASSOC) {
743 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_ASSOC\n"); 737 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"eCurrState == WMAC_STATE_ASSOC\n");
744 if (pDevice->ePSMode != WMAC_POWER_CAM) { 738 if (pDevice->ePSMode != WMAC_POWER_CAM) {
745 PSvEnablePowerSaving((HANDLE)pDevice, pMgmt->wListenInterval); 739 PSvEnablePowerSaving((void *) pDevice,
740 pMgmt->wListenInterval);
746 } 741 }
747/* 742/*
748 if (pMgmt->eAuthenMode >= WMAC_AUTH_WPA) { 743 if (pMgmt->eAuthenMode >= WMAC_AUTH_WPA) {
@@ -765,7 +760,7 @@ vRunCommand(
765 // printk("Re-initial TxDataTimer****\n"); 760 // printk("Re-initial TxDataTimer****\n");
766 del_timer(&pDevice->sTimerTxData); 761 del_timer(&pDevice->sTimerTxData);
767 init_timer(&pDevice->sTimerTxData); 762 init_timer(&pDevice->sTimerTxData);
768 pDevice->sTimerTxData.data = (ULONG)pDevice; 763 pDevice->sTimerTxData.data = (unsigned long) pDevice;
769 pDevice->sTimerTxData.function = (TimerFunction)BSSvSecondTxData; 764 pDevice->sTimerTxData.function = (TimerFunction)BSSvSecondTxData;
770 pDevice->sTimerTxData.expires = RUN_AT(10*HZ); //10s callback 765 pDevice->sTimerTxData.expires = RUN_AT(10*HZ); //10s callback
771 pDevice->fTxDataInSleep = FALSE; 766 pDevice->fTxDataInSleep = FALSE;
@@ -786,7 +781,7 @@ vRunCommand(
786 pDevice->byLinkWaitCount ++; 781 pDevice->byLinkWaitCount ++;
787 printk("WLAN_ASSOCIATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount); 782 printk("WLAN_ASSOCIATE_WAIT:wait %d times!!\n",pDevice->byLinkWaitCount);
788 spin_unlock_irq(&pDevice->lock); 783 spin_unlock_irq(&pDevice->lock);
789 vCommandTimerWait((HANDLE)pDevice, ASSOCIATE_TIMEOUT/2); 784 vCommandTimerWait((void *) pDevice, ASSOCIATE_TIMEOUT/2);
790 return; 785 return;
791 } 786 }
792 pDevice->byLinkWaitCount = 0; 787 pDevice->byLinkWaitCount = 0;
@@ -823,9 +818,10 @@ vRunCommand(
823 pMgmt->eCurrState = WMAC_STATE_IDLE; 818 pMgmt->eCurrState = WMAC_STATE_IDLE;
824 pDevice->bFixRate = FALSE; 819 pDevice->bFixRate = FALSE;
825 820
826 vMgrCreateOwnIBSS((HANDLE)pDevice, &Status); 821 vMgrCreateOwnIBSS((void *) pDevice, &Status);
827 if (Status != CMD_STATUS_SUCCESS){ 822 if (Status != CMD_STATUS_SUCCESS) {
828 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO " vMgrCreateOwnIBSS fail ! \n"); 823 DBG_PRT(MSG_LEVEL_DEBUG,
824 KERN_INFO "vMgrCreateOwnIBSS fail!\n");
829 }; 825 };
830 // alway turn off unicast bit 826 // alway turn off unicast bit
831 MACvRegBitsOff(pDevice, MAC_REG_RCR, RCR_UNICAST); 827 MACvRegBitsOff(pDevice, MAC_REG_RCR, RCR_UNICAST);
@@ -948,7 +944,11 @@ vRunCommand(
948 944
949 if (pDevice->bLinkPass == TRUE) { 945 if (pDevice->bLinkPass == TRUE) {
950 // reason = 8 : disassoc because sta has left 946 // reason = 8 : disassoc because sta has left
951 vMgrDisassocBeginSta((HANDLE)pDevice, pMgmt, pMgmt->abyCurrBSSID, (8), &Status); 947 vMgrDisassocBeginSta((void *) pDevice,
948 pMgmt,
949 pMgmt->abyCurrBSSID,
950 (8),
951 &Status);
952 pDevice->bLinkPass = FALSE; 952 pDevice->bLinkPass = FALSE;
953 // unlock command busy 953 // unlock command busy
954 pMgmt->eCurrState = WMAC_STATE_IDLE; 954 pMgmt->eCurrState = WMAC_STATE_IDLE;
@@ -1185,18 +1185,15 @@ s_bCommandComplete (
1185 break; 1185 break;
1186 1186
1187 } 1187 }
1188 1188 vCommandTimerWait((void *) pDevice, 0);
1189 vCommandTimerWait((HANDLE)pDevice, 0);
1190 } 1189 }
1191 1190
1192 return TRUE; 1191 return TRUE;
1193} 1192}
1194 1193
1195BOOL bScheduleCommand ( 1194BOOL bScheduleCommand(void *hDeviceContext,
1196 IN HANDLE hDeviceContext, 1195 CMD_CODE eCommand,
1197 IN CMD_CODE eCommand, 1196 PBYTE pbyItem0)
1198 IN PBYTE pbyItem0
1199 )
1200{ 1197{
1201 PSDevice pDevice = (PSDevice)hDeviceContext; 1198 PSDevice pDevice = (PSDevice)hDeviceContext;
1202 1199
@@ -1264,14 +1261,11 @@ BOOL bScheduleCommand (
1264 * Return Value: TRUE if success; otherwise FALSE 1261 * Return Value: TRUE if success; otherwise FALSE
1265 * 1262 *
1266 */ 1263 */
1267static 1264static BOOL s_bClearBSSID_SCAN(void *hDeviceContext)
1268BOOL s_bClearBSSID_SCAN (
1269 IN HANDLE hDeviceContext
1270 )
1271{ 1265{
1272 PSDevice pDevice = (PSDevice)hDeviceContext; 1266 PSDevice pDevice = (PSDevice)hDeviceContext;
1273 UINT uCmdDequeueIdx = pDevice->uCmdDequeueIdx; 1267 unsigned int uCmdDequeueIdx = pDevice->uCmdDequeueIdx;
1274 UINT ii; 1268 unsigned int ii;
1275 1269
1276 if ((pDevice->cbFreeCmdQueue < CMD_Q_SIZE) && (uCmdDequeueIdx != pDevice->uCmdEnqueueIdx)) { 1270 if ((pDevice->cbFreeCmdQueue < CMD_Q_SIZE) && (uCmdDequeueIdx != pDevice->uCmdEnqueueIdx)) {
1277 for (ii = 0; ii < (CMD_Q_SIZE - pDevice->cbFreeCmdQueue); ii ++) { 1271 for (ii = 0; ii < (CMD_Q_SIZE - pDevice->cbFreeCmdQueue); ii ++) {
@@ -1287,10 +1281,7 @@ BOOL s_bClearBSSID_SCAN (
1287 1281
1288 1282
1289//mike add:reset command timer 1283//mike add:reset command timer
1290VOID 1284void vResetCommandTimer(void *hDeviceContext)
1291vResetCommandTimer(
1292 IN HANDLE hDeviceContext
1293 )
1294{ 1285{
1295 PSDevice pDevice = (PSDevice)hDeviceContext; 1286 PSDevice pDevice = (PSDevice)hDeviceContext;
1296 1287
@@ -1298,7 +1289,7 @@ vResetCommandTimer(
1298 del_timer(&pDevice->sTimerCommand); 1289 del_timer(&pDevice->sTimerCommand);
1299 //init timer 1290 //init timer
1300 init_timer(&pDevice->sTimerCommand); 1291 init_timer(&pDevice->sTimerCommand);
1301 pDevice->sTimerCommand.data = (ULONG)pDevice; 1292 pDevice->sTimerCommand.data = (unsigned long)pDevice;
1302 pDevice->sTimerCommand.function = (TimerFunction)vRunCommand; 1293 pDevice->sTimerCommand.function = (TimerFunction)vRunCommand;
1303 pDevice->sTimerCommand.expires = RUN_AT(HZ); 1294 pDevice->sTimerCommand.expires = RUN_AT(HZ);
1304 pDevice->cbFreeCmdQueue = CMD_Q_SIZE; 1295 pDevice->cbFreeCmdQueue = CMD_Q_SIZE;
@@ -1311,10 +1302,7 @@ vResetCommandTimer(
1311 1302
1312//2007-0115-08<Add>by MikeLiu 1303//2007-0115-08<Add>by MikeLiu
1313#ifdef TxInSleep 1304#ifdef TxInSleep
1314VOID 1305void BSSvSecondTxData(void *hDeviceContext)
1315BSSvSecondTxData(
1316 IN HANDLE hDeviceContext
1317 )
1318{ 1306{
1319 PSDevice pDevice = (PSDevice)hDeviceContext; 1307 PSDevice pDevice = (PSDevice)hDeviceContext;
1320 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 1308 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
diff --git a/drivers/staging/vt6656/wcmd.h b/drivers/staging/vt6656/wcmd.h
index 90d672b462b..09c4411c689 100644
--- a/drivers/staging/vt6656/wcmd.h
+++ b/drivers/staging/vt6656/wcmd.h
@@ -105,46 +105,32 @@ typedef enum tagCMD_STATE {
105 WLAN_CMD_IDLE 105 WLAN_CMD_IDLE
106} CMD_STATE, *PCMD_STATE; 106} CMD_STATE, *PCMD_STATE;
107 107
108
109
110/*--------------------- Export Classes ----------------------------*/ 108/*--------------------- Export Classes ----------------------------*/
111 109
112/*--------------------- Export Variables --------------------------*/ 110/*--------------------- Export Variables --------------------------*/
113 111
114
115/*--------------------- Export Types ------------------------------*/ 112/*--------------------- Export Types ------------------------------*/
116 113
117
118/*--------------------- Export Functions --------------------------*/ 114/*--------------------- Export Functions --------------------------*/
119VOID
120vResetCommandTimer(
121 IN HANDLE hDeviceContext
122 );
123 115
124BOOL 116void vResetCommandTimer(void *hDeviceContext);
125bScheduleCommand( 117
126 IN HANDLE hDeviceContext, 118BOOL bScheduleCommand(void *hDeviceContext,
127 IN CMD_CODE eCommand, 119 CMD_CODE eCommand,
128 IN PBYTE pbyItem0 120 PBYTE pbyItem0);
129 ); 121
122void vRunCommand(void *hDeviceContext);
130 123
131VOID
132vRunCommand(
133 IN HANDLE hDeviceContext
134 );
135/* 124/*
136VOID 125void
137WCMDvCommandThread( 126WCMDvCommandThread(
138 PVOID Context 127 void * Context
139 ); 128 );
140*/ 129*/
141 130
142//2007-0115-09<Add>by MikeLiu 131//2007-0115-09<Add>by MikeLiu
143#ifdef TxInSleep 132#ifdef TxInSleep
144VOID 133void BSSvSecondTxData(void *hDeviceContext);
145BSSvSecondTxData(
146 IN HANDLE hDeviceContext
147 );
148#endif 134#endif
149 135
150#endif //__WCMD_H__ 136#endif /* __WCMD_H__ */
diff --git a/drivers/staging/vt6656/wctl.c b/drivers/staging/vt6656/wctl.c
index 40986da1e4a..857ce0bc00a 100644
--- a/drivers/staging/vt6656/wctl.c
+++ b/drivers/staging/vt6656/wctl.c
@@ -69,8 +69,8 @@
69 69
70BOOL WCTLbIsDuplicate (PSCache pCache, PS802_11Header pMACHeader) 70BOOL WCTLbIsDuplicate (PSCache pCache, PS802_11Header pMACHeader)
71{ 71{
72 UINT uIndex; 72 unsigned int uIndex;
73 UINT ii; 73 unsigned int ii;
74 PSCacheEntry pCacheEntry; 74 PSCacheEntry pCacheEntry;
75 75
76 if (IS_FC_RETRY(pMACHeader)) { 76 if (IS_FC_RETRY(pMACHeader)) {
@@ -91,7 +91,7 @@ BOOL WCTLbIsDuplicate (PSCache pCache, PS802_11Header pMACHeader)
91 /* Not fount in cache - insert */ 91 /* Not fount in cache - insert */
92 pCacheEntry = &pCache->asCacheEntry[pCache->uInPtr]; 92 pCacheEntry = &pCache->asCacheEntry[pCache->uInPtr];
93 pCacheEntry->wFmSequence = pMACHeader->wSeqCtl; 93 pCacheEntry->wFmSequence = pMACHeader->wSeqCtl;
94 memcpy(&(pCacheEntry->abyAddr2[0]), &(pMACHeader->abyAddr2[0]), U_ETHER_ADDR_LEN); 94 memcpy(&(pCacheEntry->abyAddr2[0]), &(pMACHeader->abyAddr2[0]), ETH_ALEN);
95 pCacheEntry->wFrameCtl = pMACHeader->wFrameCtl; 95 pCacheEntry->wFrameCtl = pMACHeader->wFrameCtl;
96 ADD_ONE_WITH_WRAP_AROUND(pCache->uInPtr, DUPLICATE_RX_CACHE_LENGTH); 96 ADD_ONE_WITH_WRAP_AROUND(pCache->uInPtr, DUPLICATE_RX_CACHE_LENGTH);
97 return FALSE; 97 return FALSE;
@@ -111,9 +111,9 @@ BOOL WCTLbIsDuplicate (PSCache pCache, PS802_11Header pMACHeader)
111 * Return Value: index number in Defragment Database 111 * Return Value: index number in Defragment Database
112 * 112 *
113 */ 113 */
114UINT WCTLuSearchDFCB (PSDevice pDevice, PS802_11Header pMACHeader) 114unsigned int WCTLuSearchDFCB(PSDevice pDevice, PS802_11Header pMACHeader)
115{ 115{
116UINT ii; 116 unsigned int ii;
117 117
118 for(ii=0;ii<pDevice->cbDFCB;ii++) { 118 for(ii=0;ii<pDevice->cbDFCB;ii++) {
119 if ((pDevice->sRxDFCB[ii].bInUse == TRUE) && 119 if ((pDevice->sRxDFCB[ii].bInUse == TRUE) &&
@@ -141,9 +141,9 @@ UINT ii;
141 * Return Value: index number in Defragment Database 141 * Return Value: index number in Defragment Database
142 * 142 *
143 */ 143 */
144UINT WCTLuInsertDFCB (PSDevice pDevice, PS802_11Header pMACHeader) 144unsigned int WCTLuInsertDFCB(PSDevice pDevice, PS802_11Header pMACHeader)
145{ 145{
146UINT ii; 146 unsigned int ii;
147 147
148 if (pDevice->cbFreeDFCB == 0) 148 if (pDevice->cbFreeDFCB == 0)
149 return(pDevice->cbDFCB); 149 return(pDevice->cbDFCB);
@@ -154,7 +154,9 @@ UINT ii;
154 pDevice->sRxDFCB[ii].bInUse = TRUE; 154 pDevice->sRxDFCB[ii].bInUse = TRUE;
155 pDevice->sRxDFCB[ii].wSequence = (pMACHeader->wSeqCtl >> 4); 155 pDevice->sRxDFCB[ii].wSequence = (pMACHeader->wSeqCtl >> 4);
156 pDevice->sRxDFCB[ii].wFragNum = (pMACHeader->wSeqCtl & 0x000F); 156 pDevice->sRxDFCB[ii].wFragNum = (pMACHeader->wSeqCtl & 0x000F);
157 memcpy(&(pDevice->sRxDFCB[ii].abyAddr2[0]), &(pMACHeader->abyAddr2[0]), U_ETHER_ADDR_LEN); 157 memcpy(&(pDevice->sRxDFCB[ii].abyAddr2[0]),
158 &(pMACHeader->abyAddr2[0]),
159 ETH_ALEN);
158 return(ii); 160 return(ii);
159 } 161 }
160 } 162 }
@@ -178,9 +180,10 @@ UINT ii;
178 * Return Value: TRUE if it is valid fragment packet and we have resource to defragment; otherwise FALSE 180 * Return Value: TRUE if it is valid fragment packet and we have resource to defragment; otherwise FALSE
179 * 181 *
180 */ 182 */
181BOOL WCTLbHandleFragment (PSDevice pDevice, PS802_11Header pMACHeader, UINT cbFrameLength, BOOL bWEP, BOOL bExtIV) 183BOOL WCTLbHandleFragment(PSDevice pDevice, PS802_11Header pMACHeader,
184 unsigned int cbFrameLength, BOOL bWEP, BOOL bExtIV)
182{ 185{
183UINT uHeaderSize; 186unsigned int uHeaderSize;
184 187
185 188
186 if (bWEP == TRUE) { 189 if (bWEP == TRUE) {
diff --git a/drivers/staging/vt6656/wctl.h b/drivers/staging/vt6656/wctl.h
index a1ac4791bfd..7270af68c89 100644
--- a/drivers/staging/vt6656/wctl.h
+++ b/drivers/staging/vt6656/wctl.h
@@ -90,7 +90,6 @@
90 (uVar)++; \ 90 (uVar)++; \
91} 91}
92 92
93
94/*--------------------- Export Classes ----------------------------*/ 93/*--------------------- Export Classes ----------------------------*/
95 94
96/*--------------------- Export Variables --------------------------*/ 95/*--------------------- Export Variables --------------------------*/
@@ -98,11 +97,9 @@
98/*--------------------- Export Functions --------------------------*/ 97/*--------------------- Export Functions --------------------------*/
99 98
100BOOL WCTLbIsDuplicate(PSCache pCache, PS802_11Header pMACHeader); 99BOOL WCTLbIsDuplicate(PSCache pCache, PS802_11Header pMACHeader);
101BOOL WCTLbHandleFragment(PSDevice pDevice, PS802_11Header pMACHeader, UINT cbFrameLength, BOOL bWEP, BOOL bExtIV); 100BOOL WCTLbHandleFragment(PSDevice pDevice, PS802_11Header pMACHeader,
102UINT WCTLuSearchDFCB(PSDevice pDevice, PS802_11Header pMACHeader); 101 unsigned int cbFrameLength, BOOL bWEP, BOOL bExtIV);
103UINT WCTLuInsertDFCB(PSDevice pDevice, PS802_11Header pMACHeader); 102unsigned int WCTLuSearchDFCB(PSDevice pDevice, PS802_11Header pMACHeader);
104 103unsigned int WCTLuInsertDFCB(PSDevice pDevice, PS802_11Header pMACHeader);
105#endif // __WCTL_H__
106
107
108 104
105#endif /* __WCTL_H__ */
diff --git a/drivers/staging/vt6656/wmgr.c b/drivers/staging/vt6656/wmgr.c
index 330aea69d23..93c15f0580f 100644
--- a/drivers/staging/vt6656/wmgr.c
+++ b/drivers/staging/vt6656/wmgr.c
@@ -94,160 +94,160 @@ static int msglevel =MSG_LEVEL_INFO;
94/*--------------------- Static Functions --------------------------*/ 94/*--------------------- Static Functions --------------------------*/
95//2008-0730-01<Add>by MikeLiu 95//2008-0730-01<Add>by MikeLiu
96static BOOL ChannelExceedZoneType( 96static BOOL ChannelExceedZoneType(
97 IN PSDevice pDevice, 97 PSDevice pDevice,
98 IN BYTE byCurrChannel 98 BYTE byCurrChannel
99 ); 99 );
100 100
101// Association/diassociation functions 101// Association/diassociation functions
102static 102static
103PSTxMgmtPacket 103PSTxMgmtPacket
104s_MgrMakeAssocRequest( 104s_MgrMakeAssocRequest(
105 IN PSDevice pDevice, 105 PSDevice pDevice,
106 IN PSMgmtObject pMgmt, 106 PSMgmtObject pMgmt,
107 IN PBYTE pDAddr, 107 PBYTE pDAddr,
108 IN WORD wCurrCapInfo, 108 WORD wCurrCapInfo,
109 IN WORD wListenInterval, 109 WORD wListenInterval,
110 IN PWLAN_IE_SSID pCurrSSID, 110 PWLAN_IE_SSID pCurrSSID,
111 IN PWLAN_IE_SUPP_RATES pCurrRates, 111 PWLAN_IE_SUPP_RATES pCurrRates,
112 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 112 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
113 ); 113 );
114 114
115static 115static
116VOID 116void
117s_vMgrRxAssocRequest( 117s_vMgrRxAssocRequest(
118 IN PSDevice pDevice, 118 PSDevice pDevice,
119 IN PSMgmtObject pMgmt, 119 PSMgmtObject pMgmt,
120 IN PSRxMgmtPacket pRxPacket, 120 PSRxMgmtPacket pRxPacket,
121 IN UINT uNodeIndex 121 unsigned int uNodeIndex
122 ); 122 );
123 123
124static 124static
125PSTxMgmtPacket 125PSTxMgmtPacket
126s_MgrMakeReAssocRequest( 126s_MgrMakeReAssocRequest(
127 IN PSDevice pDevice, 127 PSDevice pDevice,
128 IN PSMgmtObject pMgmt, 128 PSMgmtObject pMgmt,
129 IN PBYTE pDAddr, 129 PBYTE pDAddr,
130 IN WORD wCurrCapInfo, 130 WORD wCurrCapInfo,
131 IN WORD wListenInterval, 131 WORD wListenInterval,
132 IN PWLAN_IE_SSID pCurrSSID, 132 PWLAN_IE_SSID pCurrSSID,
133 IN PWLAN_IE_SUPP_RATES pCurrRates, 133 PWLAN_IE_SUPP_RATES pCurrRates,
134 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 134 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
135 ); 135 );
136 136
137static 137static
138VOID 138void
139s_vMgrRxAssocResponse( 139s_vMgrRxAssocResponse(
140 IN PSDevice pDevice, 140 PSDevice pDevice,
141 IN PSMgmtObject pMgmt, 141 PSMgmtObject pMgmt,
142 IN PSRxMgmtPacket pRxPacket, 142 PSRxMgmtPacket pRxPacket,
143 IN BOOL bReAssocType 143 BOOL bReAssocType
144 ); 144 );
145 145
146static 146static
147VOID 147void
148s_vMgrRxDisassociation( 148s_vMgrRxDisassociation(
149 IN PSDevice pDevice, 149 PSDevice pDevice,
150 IN PSMgmtObject pMgmt, 150 PSMgmtObject pMgmt,
151 IN PSRxMgmtPacket pRxPacket 151 PSRxMgmtPacket pRxPacket
152 ); 152 );
153 153
154// Authentication/deauthen functions 154// Authentication/deauthen functions
155static 155static
156VOID 156void
157s_vMgrRxAuthenSequence_1( 157s_vMgrRxAuthenSequence_1(
158 IN PSDevice pDevice, 158 PSDevice pDevice,
159 IN PSMgmtObject pMgmt, 159 PSMgmtObject pMgmt,
160 IN PWLAN_FR_AUTHEN pFrame 160 PWLAN_FR_AUTHEN pFrame
161 ); 161 );
162 162
163static 163static
164VOID 164void
165s_vMgrRxAuthenSequence_2( 165s_vMgrRxAuthenSequence_2(
166 IN PSDevice pDevice, 166 PSDevice pDevice,
167 IN PSMgmtObject pMgmt, 167 PSMgmtObject pMgmt,
168 IN PWLAN_FR_AUTHEN pFrame 168 PWLAN_FR_AUTHEN pFrame
169 ); 169 );
170 170
171static 171static
172VOID 172void
173s_vMgrRxAuthenSequence_3( 173s_vMgrRxAuthenSequence_3(
174 IN PSDevice pDevice, 174 PSDevice pDevice,
175 IN PSMgmtObject pMgmt, 175 PSMgmtObject pMgmt,
176 IN PWLAN_FR_AUTHEN pFrame 176 PWLAN_FR_AUTHEN pFrame
177 ); 177 );
178 178
179static 179static
180VOID 180void
181s_vMgrRxAuthenSequence_4( 181s_vMgrRxAuthenSequence_4(
182 IN PSDevice pDevice, 182 PSDevice pDevice,
183 IN PSMgmtObject pMgmt, 183 PSMgmtObject pMgmt,
184 IN PWLAN_FR_AUTHEN pFrame 184 PWLAN_FR_AUTHEN pFrame
185 ); 185 );
186 186
187static 187static
188VOID 188void
189s_vMgrRxAuthentication( 189s_vMgrRxAuthentication(
190 IN PSDevice pDevice, 190 PSDevice pDevice,
191 IN PSMgmtObject pMgmt, 191 PSMgmtObject pMgmt,
192 IN PSRxMgmtPacket pRxPacket 192 PSRxMgmtPacket pRxPacket
193 ); 193 );
194 194
195static 195static
196VOID 196void
197s_vMgrRxDeauthentication( 197s_vMgrRxDeauthentication(
198 IN PSDevice pDevice, 198 PSDevice pDevice,
199 IN PSMgmtObject pMgmt, 199 PSMgmtObject pMgmt,
200 IN PSRxMgmtPacket pRxPacket 200 PSRxMgmtPacket pRxPacket
201 ); 201 );
202 202
203// Scan functions 203// Scan functions
204// probe request/response functions 204// probe request/response functions
205static 205static
206VOID 206void
207s_vMgrRxProbeRequest( 207s_vMgrRxProbeRequest(
208 IN PSDevice pDevice, 208 PSDevice pDevice,
209 IN PSMgmtObject pMgmt, 209 PSMgmtObject pMgmt,
210 IN PSRxMgmtPacket pRxPacket 210 PSRxMgmtPacket pRxPacket
211 ); 211 );
212 212
213static 213static
214VOID 214void
215s_vMgrRxProbeResponse( 215s_vMgrRxProbeResponse(
216 IN PSDevice pDevice, 216 PSDevice pDevice,
217 IN PSMgmtObject pMgmt, 217 PSMgmtObject pMgmt,
218 IN PSRxMgmtPacket pRxPacket 218 PSRxMgmtPacket pRxPacket
219 ); 219 );
220 220
221// beacon functions 221// beacon functions
222static 222static
223VOID 223void
224s_vMgrRxBeacon( 224s_vMgrRxBeacon(
225 IN PSDevice pDevice, 225 PSDevice pDevice,
226 IN PSMgmtObject pMgmt, 226 PSMgmtObject pMgmt,
227 IN PSRxMgmtPacket pRxPacket, 227 PSRxMgmtPacket pRxPacket,
228 IN BOOL bInScan 228 BOOL bInScan
229 ); 229 );
230 230
231static 231static
232VOID 232void
233s_vMgrFormatTIM( 233s_vMgrFormatTIM(
234 IN PSMgmtObject pMgmt, 234 PSMgmtObject pMgmt,
235 IN PWLAN_IE_TIM pTIM 235 PWLAN_IE_TIM pTIM
236 ); 236 );
237 237
238static 238static
239PSTxMgmtPacket 239PSTxMgmtPacket
240s_MgrMakeBeacon( 240s_MgrMakeBeacon(
241 IN PSDevice pDevice, 241 PSDevice pDevice,
242 IN PSMgmtObject pMgmt, 242 PSMgmtObject pMgmt,
243 IN WORD wCurrCapInfo, 243 WORD wCurrCapInfo,
244 IN WORD wCurrBeaconPeriod, 244 WORD wCurrBeaconPeriod,
245 IN UINT uCurrChannel, 245 unsigned int uCurrChannel,
246 IN WORD wCurrATIMWinodw, 246 WORD wCurrATIMWinodw,
247 IN PWLAN_IE_SSID pCurrSSID, 247 PWLAN_IE_SSID pCurrSSID,
248 IN PBYTE pCurrBSSID, 248 PBYTE pCurrBSSID,
249 IN PWLAN_IE_SUPP_RATES pCurrSuppRates, 249 PWLAN_IE_SUPP_RATES pCurrSuppRates,
250 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 250 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
251 ); 251 );
252 252
253 253
@@ -255,88 +255,84 @@ s_MgrMakeBeacon(
255static 255static
256PSTxMgmtPacket 256PSTxMgmtPacket
257s_MgrMakeAssocResponse( 257s_MgrMakeAssocResponse(
258 IN PSDevice pDevice, 258 PSDevice pDevice,
259 IN PSMgmtObject pMgmt, 259 PSMgmtObject pMgmt,
260 IN WORD wCurrCapInfo, 260 WORD wCurrCapInfo,
261 IN WORD wAssocStatus, 261 WORD wAssocStatus,
262 IN WORD wAssocAID, 262 WORD wAssocAID,
263 IN PBYTE pDstAddr, 263 PBYTE pDstAddr,
264 IN PWLAN_IE_SUPP_RATES pCurrSuppRates, 264 PWLAN_IE_SUPP_RATES pCurrSuppRates,
265 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 265 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
266 ); 266 );
267 267
268// ReAssociation response 268// ReAssociation response
269static 269static
270PSTxMgmtPacket 270PSTxMgmtPacket
271s_MgrMakeReAssocResponse( 271s_MgrMakeReAssocResponse(
272 IN PSDevice pDevice, 272 PSDevice pDevice,
273 IN PSMgmtObject pMgmt, 273 PSMgmtObject pMgmt,
274 IN WORD wCurrCapInfo, 274 WORD wCurrCapInfo,
275 IN WORD wAssocStatus, 275 WORD wAssocStatus,
276 IN WORD wAssocAID, 276 WORD wAssocAID,
277 IN PBYTE pDstAddr, 277 PBYTE pDstAddr,
278 IN PWLAN_IE_SUPP_RATES pCurrSuppRates, 278 PWLAN_IE_SUPP_RATES pCurrSuppRates,
279 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 279 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
280 ); 280 );
281 281
282// Probe response 282// Probe response
283static 283static
284PSTxMgmtPacket 284PSTxMgmtPacket
285s_MgrMakeProbeResponse( 285s_MgrMakeProbeResponse(
286 IN PSDevice pDevice, 286 PSDevice pDevice,
287 IN PSMgmtObject pMgmt, 287 PSMgmtObject pMgmt,
288 IN WORD wCurrCapInfo, 288 WORD wCurrCapInfo,
289 IN WORD wCurrBeaconPeriod, 289 WORD wCurrBeaconPeriod,
290 IN UINT uCurrChannel, 290 unsigned int uCurrChannel,
291 IN WORD wCurrATIMWinodw, 291 WORD wCurrATIMWinodw,
292 IN PBYTE pDstAddr, 292 PBYTE pDstAddr,
293 IN PWLAN_IE_SSID pCurrSSID, 293 PWLAN_IE_SSID pCurrSSID,
294 IN PBYTE pCurrBSSID, 294 PBYTE pCurrBSSID,
295 IN PWLAN_IE_SUPP_RATES pCurrSuppRates, 295 PWLAN_IE_SUPP_RATES pCurrSuppRates,
296 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates, 296 PWLAN_IE_SUPP_RATES pCurrExtSuppRates,
297 IN BYTE byPHYType 297 BYTE byPHYType
298 ); 298 );
299 299
300// received status 300// received status
301static 301static
302VOID 302void
303s_vMgrLogStatus( 303s_vMgrLogStatus(
304 IN PSMgmtObject pMgmt, 304 PSMgmtObject pMgmt,
305 IN WORD wStatus 305 WORD wStatus
306 ); 306 );
307 307
308 308
309static 309static
310VOID 310void
311s_vMgrSynchBSS ( 311s_vMgrSynchBSS (
312 IN PSDevice pDevice, 312 PSDevice pDevice,
313 IN UINT uBSSMode, 313 unsigned int uBSSMode,
314 IN PKnownBSS pCurr, 314 PKnownBSS pCurr,
315 OUT PCMD_STATUS pStatus 315 PCMD_STATUS pStatus
316 ); 316 );
317 317
318 318
319static BOOL 319static BOOL
320s_bCipherMatch ( 320s_bCipherMatch (
321 IN PKnownBSS pBSSNode, 321 PKnownBSS pBSSNode,
322 IN NDIS_802_11_ENCRYPTION_STATUS EncStatus, 322 NDIS_802_11_ENCRYPTION_STATUS EncStatus,
323 OUT PBYTE pbyCCSPK, 323 PBYTE pbyCCSPK,
324 OUT PBYTE pbyCCSGK 324 PBYTE pbyCCSGK
325 ); 325 );
326 326
327 static VOID Encyption_Rebuild( 327 static void Encyption_Rebuild(
328 IN PSDevice pDevice, 328 PSDevice pDevice,
329 IN PKnownBSS pCurr 329 PKnownBSS pCurr
330 ); 330 );
331 331
332
333
334/*--------------------- Export Variables --------------------------*/ 332/*--------------------- Export Variables --------------------------*/
335 333
336
337/*--------------------- Export Functions --------------------------*/ 334/*--------------------- Export Functions --------------------------*/
338 335
339
340/*+ 336/*+
341 * 337 *
342 * Routine Description: 338 * Routine Description:
@@ -347,10 +343,7 @@ s_bCipherMatch (
347 * 343 *
348-*/ 344-*/
349 345
350VOID 346void vMgrObjectInit(void *hDeviceContext)
351vMgrObjectInit(
352 IN HANDLE hDeviceContext
353 )
354{ 347{
355 PSDevice pDevice = (PSDevice)hDeviceContext; 348 PSDevice pDevice = (PSDevice)hDeviceContext;
356 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 349 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -368,22 +361,22 @@ vMgrObjectInit(
368 pMgmt->byCSSPK = KEY_CTL_NONE; 361 pMgmt->byCSSPK = KEY_CTL_NONE;
369 pMgmt->byCSSGK = KEY_CTL_NONE; 362 pMgmt->byCSSGK = KEY_CTL_NONE;
370 pMgmt->wIBSSBeaconPeriod = DEFAULT_IBSS_BI; 363 pMgmt->wIBSSBeaconPeriod = DEFAULT_IBSS_BI;
371 BSSvClearBSSList((HANDLE)pDevice, FALSE); 364 BSSvClearBSSList((void *) pDevice, FALSE);
372 365
373 init_timer(&pMgmt->sTimerSecondCallback); 366 init_timer(&pMgmt->sTimerSecondCallback);
374 pMgmt->sTimerSecondCallback.data = (ULONG)pDevice; 367 pMgmt->sTimerSecondCallback.data = (unsigned long)pDevice;
375 pMgmt->sTimerSecondCallback.function = (TimerFunction)BSSvSecondCallBack; 368 pMgmt->sTimerSecondCallback.function = (TimerFunction)BSSvSecondCallBack;
376 pMgmt->sTimerSecondCallback.expires = RUN_AT(HZ); 369 pMgmt->sTimerSecondCallback.expires = RUN_AT(HZ);
377 370
378 init_timer(&pDevice->sTimerCommand); 371 init_timer(&pDevice->sTimerCommand);
379 pDevice->sTimerCommand.data = (ULONG)pDevice; 372 pDevice->sTimerCommand.data = (unsigned long)pDevice;
380 pDevice->sTimerCommand.function = (TimerFunction)vRunCommand; 373 pDevice->sTimerCommand.function = (TimerFunction)vRunCommand;
381 pDevice->sTimerCommand.expires = RUN_AT(HZ); 374 pDevice->sTimerCommand.expires = RUN_AT(HZ);
382 375
383//2007-0115-10<Add>by MikeLiu 376//2007-0115-10<Add>by MikeLiu
384 #ifdef TxInSleep 377 #ifdef TxInSleep
385 init_timer(&pDevice->sTimerTxData); 378 init_timer(&pDevice->sTimerTxData);
386 pDevice->sTimerTxData.data = (ULONG)pDevice; 379 pDevice->sTimerTxData.data = (unsigned long)pDevice;
387 pDevice->sTimerTxData.function = (TimerFunction)BSSvSecondTxData; 380 pDevice->sTimerTxData.function = (TimerFunction)BSSvSecondTxData;
388 pDevice->sTimerTxData.expires = RUN_AT(10*HZ); //10s callback 381 pDevice->sTimerTxData.expires = RUN_AT(10*HZ); //10s callback
389 pDevice->fTxDataInSleep = FALSE; 382 pDevice->fTxDataInSleep = FALSE;
@@ -401,8 +394,6 @@ vMgrObjectInit(
401 return; 394 return;
402} 395}
403 396
404
405
406/*+ 397/*+
407 * 398 *
408 * Routine Description: 399 * Routine Description:
@@ -414,13 +405,9 @@ vMgrObjectInit(
414 * 405 *
415-*/ 406-*/
416 407
417 408void vMgrAssocBeginSta(void *hDeviceContext,
418VOID 409 PSMgmtObject pMgmt,
419vMgrAssocBeginSta( 410 PCMD_STATUS pStatus)
420 IN HANDLE hDeviceContext,
421 IN PSMgmtObject pMgmt,
422 OUT PCMD_STATUS pStatus
423 )
424{ 411{
425 PSDevice pDevice = (PSDevice)hDeviceContext; 412 PSDevice pDevice = (PSDevice)hDeviceContext;
426 PSTxMgmtPacket pTxPacket; 413 PSTxMgmtPacket pTxPacket;
@@ -491,12 +478,9 @@ vMgrAssocBeginSta(
491 * 478 *
492-*/ 479-*/
493 480
494VOID 481void vMgrReAssocBeginSta(void *hDeviceContext,
495vMgrReAssocBeginSta( 482 PSMgmtObject pMgmt,
496 IN HANDLE hDeviceContext, 483 PCMD_STATUS pStatus)
497 IN PSMgmtObject pMgmt,
498 OUT PCMD_STATUS pStatus
499 )
500{ 484{
501 PSDevice pDevice = (PSDevice)hDeviceContext; 485 PSDevice pDevice = (PSDevice)hDeviceContext;
502 PSTxMgmtPacket pTxPacket; 486 PSTxMgmtPacket pTxPacket;
@@ -570,14 +554,11 @@ vMgrReAssocBeginSta(
570 * 554 *
571-*/ 555-*/
572 556
573VOID 557void vMgrDisassocBeginSta(void *hDeviceContext,
574vMgrDisassocBeginSta( 558 PSMgmtObject pMgmt,
575 IN HANDLE hDeviceContext, 559 PBYTE abyDestAddress,
576 IN PSMgmtObject pMgmt, 560 WORD wReason,
577 IN PBYTE abyDestAddress, 561 PCMD_STATUS pStatus)
578 IN WORD wReason,
579 OUT PCMD_STATUS pStatus
580 )
581{ 562{
582 PSDevice pDevice = (PSDevice)hDeviceContext; 563 PSDevice pDevice = (PSDevice)hDeviceContext;
583 PSTxMgmtPacket pTxPacket = NULL; 564 PSTxMgmtPacket pTxPacket = NULL;
@@ -633,12 +614,12 @@ vMgrDisassocBeginSta(
633-*/ 614-*/
634 615
635static 616static
636VOID 617void
637s_vMgrRxAssocRequest( 618s_vMgrRxAssocRequest(
638 IN PSDevice pDevice, 619 PSDevice pDevice,
639 IN PSMgmtObject pMgmt, 620 PSMgmtObject pMgmt,
640 IN PSRxMgmtPacket pRxPacket, 621 PSRxMgmtPacket pRxPacket,
641 IN UINT uNodeIndex 622 unsigned int uNodeIndex
642 ) 623 )
643{ 624{
644 WLAN_FR_ASSOCREQ sFrame; 625 WLAN_FR_ASSOCREQ sFrame;
@@ -646,7 +627,7 @@ s_vMgrRxAssocRequest(
646 PSTxMgmtPacket pTxPacket; 627 PSTxMgmtPacket pTxPacket;
647 WORD wAssocStatus = 0; 628 WORD wAssocStatus = 0;
648 WORD wAssocAID = 0; 629 WORD wAssocAID = 0;
649 UINT uRateLen = WLAN_RATES_MAXLEN; 630 unsigned int uRateLen = WLAN_RATES_MAXLEN;
650 BYTE abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; 631 BYTE abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
651 BYTE abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; 632 BYTE abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
652 633
@@ -691,7 +672,7 @@ s_vMgrRxAssocRequest(
691 } 672 }
692 673
693 674
694 RATEvParseMaxRate((PVOID)pDevice, 675 RATEvParseMaxRate((void *)pDevice,
695 (PWLAN_IE_SUPP_RATES)abyCurrSuppRates, 676 (PWLAN_IE_SUPP_RATES)abyCurrSuppRates,
696 (PWLAN_IE_SUPP_RATES)abyCurrExtSuppRates, 677 (PWLAN_IE_SUPP_RATES)abyCurrExtSuppRates,
697 FALSE, // do not change our basic rate 678 FALSE, // do not change our basic rate
@@ -789,12 +770,12 @@ s_vMgrRxAssocRequest(
789-*/ 770-*/
790 771
791static 772static
792VOID 773void
793s_vMgrRxReAssocRequest( 774s_vMgrRxReAssocRequest(
794 IN PSDevice pDevice, 775 PSDevice pDevice,
795 IN PSMgmtObject pMgmt, 776 PSMgmtObject pMgmt,
796 IN PSRxMgmtPacket pRxPacket, 777 PSRxMgmtPacket pRxPacket,
797 IN UINT uNodeIndex 778 unsigned int uNodeIndex
798 ) 779 )
799{ 780{
800 WLAN_FR_REASSOCREQ sFrame; 781 WLAN_FR_REASSOCREQ sFrame;
@@ -802,7 +783,7 @@ s_vMgrRxReAssocRequest(
802 PSTxMgmtPacket pTxPacket; 783 PSTxMgmtPacket pTxPacket;
803 WORD wAssocStatus = 0; 784 WORD wAssocStatus = 0;
804 WORD wAssocAID = 0; 785 WORD wAssocAID = 0;
805 UINT uRateLen = WLAN_RATES_MAXLEN; 786 unsigned int uRateLen = WLAN_RATES_MAXLEN;
806 BYTE abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; 787 BYTE abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
807 BYTE abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; 788 BYTE abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
808 789
@@ -844,7 +825,7 @@ s_vMgrRxReAssocRequest(
844 } 825 }
845 826
846 827
847 RATEvParseMaxRate((PVOID)pDevice, 828 RATEvParseMaxRate((void *)pDevice,
848 (PWLAN_IE_SUPP_RATES)abyCurrSuppRates, 829 (PWLAN_IE_SUPP_RATES)abyCurrSuppRates,
849 (PWLAN_IE_SUPP_RATES)abyCurrExtSuppRates, 830 (PWLAN_IE_SUPP_RATES)abyCurrExtSuppRates,
850 FALSE, // do not change our basic rate 831 FALSE, // do not change our basic rate
@@ -936,12 +917,12 @@ s_vMgrRxReAssocRequest(
936-*/ 917-*/
937 918
938static 919static
939VOID 920void
940s_vMgrRxAssocResponse( 921s_vMgrRxAssocResponse(
941 IN PSDevice pDevice, 922 PSDevice pDevice,
942 IN PSMgmtObject pMgmt, 923 PSMgmtObject pMgmt,
943 IN PSRxMgmtPacket pRxPacket, 924 PSRxMgmtPacket pRxPacket,
944 IN BOOL bReAssocType 925 BOOL bReAssocType
945 ) 926 )
946{ 927{
947 WLAN_FR_ASSOCRESP sFrame; 928 WLAN_FR_ASSOCRESP sFrame;
@@ -958,12 +939,12 @@ s_vMgrRxAssocResponse(
958 sFrame.pBuf = (PBYTE)pRxPacket->p80211Header; 939 sFrame.pBuf = (PBYTE)pRxPacket->p80211Header;
959 // decode the frame 940 // decode the frame
960 vMgrDecodeAssocResponse(&sFrame); 941 vMgrDecodeAssocResponse(&sFrame);
961 if ((sFrame.pwCapInfo == 0) || 942 if ((sFrame.pwCapInfo == NULL)
962 (sFrame.pwStatus == 0) || 943 || (sFrame.pwStatus == NULL)
963 (sFrame.pwAid == 0) || 944 || (sFrame.pwAid == NULL)
964 (sFrame.pSuppRates == 0)){ 945 || (sFrame.pSuppRates == NULL)) {
965 DBG_PORT80(0xCC); 946 DBG_PORT80(0xCC);
966 return; 947 return;
967 }; 948 };
968 949
969 pMgmt->sAssocInfo.AssocInfo.ResponseFixedIEs.Capabilities = *(sFrame.pwCapInfo); 950 pMgmt->sAssocInfo.AssocInfo.ResponseFixedIEs.Capabilities = *(sFrame.pwCapInfo);
@@ -987,7 +968,10 @@ s_vMgrRxAssocResponse(
987 }; 968 };
988 DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Association Successful, AID=%d.\n", pMgmt->wCurrAID & ~(BIT14|BIT15)); 969 DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Association Successful, AID=%d.\n", pMgmt->wCurrAID & ~(BIT14|BIT15));
989 pMgmt->eCurrState = WMAC_STATE_ASSOC; 970 pMgmt->eCurrState = WMAC_STATE_ASSOC;
990 BSSvUpdateAPNode((HANDLE)pDevice, sFrame.pwCapInfo, sFrame.pSuppRates, sFrame.pExtSuppRates); 971 BSSvUpdateAPNode((void *) pDevice,
972 sFrame.pwCapInfo,
973 sFrame.pSuppRates,
974 sFrame.pExtSuppRates);
991 pItemSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID; 975 pItemSSID = (PWLAN_IE_SSID)pMgmt->abyCurrSSID;
992 DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Link with AP(SSID): %s\n", pItemSSID->abySSID); 976 DBG_PRT(MSG_LEVEL_INFO, KERN_INFO "Link with AP(SSID): %s\n", pItemSSID->abySSID);
993 pDevice->bLinkPass = TRUE; 977 pDevice->bLinkPass = TRUE;
@@ -1089,8 +1073,6 @@ if(pMgmt->eCurrState == WMAC_STATE_ASSOC)
1089 return; 1073 return;
1090} 1074}
1091 1075
1092
1093
1094/*+ 1076/*+
1095 * 1077 *
1096 * Routine Description: 1078 * Routine Description:
@@ -1102,12 +1084,9 @@ if(pMgmt->eCurrState == WMAC_STATE_ASSOC)
1102 * 1084 *
1103-*/ 1085-*/
1104 1086
1105VOID 1087void vMgrAuthenBeginSta(void *hDeviceContext,
1106vMgrAuthenBeginSta( 1088 PSMgmtObject pMgmt,
1107 IN HANDLE hDeviceContext, 1089 PCMD_STATUS pStatus)
1108 IN PSMgmtObject pMgmt,
1109 OUT PCMD_STATUS pStatus
1110 )
1111{ 1090{
1112 PSDevice pDevice = (PSDevice)hDeviceContext; 1091 PSDevice pDevice = (PSDevice)hDeviceContext;
1113 WLAN_FR_AUTHEN sFrame; 1092 WLAN_FR_AUTHEN sFrame;
@@ -1147,8 +1126,6 @@ vMgrAuthenBeginSta(
1147 return ; 1126 return ;
1148} 1127}
1149 1128
1150
1151
1152/*+ 1129/*+
1153 * 1130 *
1154 * Routine Description: 1131 * Routine Description:
@@ -1160,14 +1137,11 @@ vMgrAuthenBeginSta(
1160 * 1137 *
1161-*/ 1138-*/
1162 1139
1163VOID 1140void vMgrDeAuthenBeginSta(void *hDeviceContext,
1164vMgrDeAuthenBeginSta( 1141 PSMgmtObject pMgmt,
1165 IN HANDLE hDeviceContext, 1142 PBYTE abyDestAddress,
1166 IN PSMgmtObject pMgmt, 1143 WORD wReason,
1167 IN PBYTE abyDestAddress, 1144 PCMD_STATUS pStatus)
1168 IN WORD wReason,
1169 OUT PCMD_STATUS pStatus
1170 )
1171{ 1145{
1172 PSDevice pDevice = (PSDevice)hDeviceContext; 1146 PSDevice pDevice = (PSDevice)hDeviceContext;
1173 WLAN_FR_DEAUTHEN sFrame; 1147 WLAN_FR_DEAUTHEN sFrame;
@@ -1217,11 +1191,11 @@ vMgrDeAuthenBeginSta(
1217-*/ 1191-*/
1218 1192
1219static 1193static
1220VOID 1194void
1221s_vMgrRxAuthentication( 1195s_vMgrRxAuthentication(
1222 IN PSDevice pDevice, 1196 PSDevice pDevice,
1223 IN PSMgmtObject pMgmt, 1197 PSMgmtObject pMgmt,
1224 IN PSRxMgmtPacket pRxPacket 1198 PSRxMgmtPacket pRxPacket
1225 ) 1199 )
1226{ 1200{
1227 WLAN_FR_AUTHEN sFrame; 1201 WLAN_FR_AUTHEN sFrame;
@@ -1275,15 +1249,15 @@ s_vMgrRxAuthentication(
1275 1249
1276 1250
1277static 1251static
1278VOID 1252void
1279s_vMgrRxAuthenSequence_1( 1253s_vMgrRxAuthenSequence_1(
1280 IN PSDevice pDevice, 1254 PSDevice pDevice,
1281 IN PSMgmtObject pMgmt, 1255 PSMgmtObject pMgmt,
1282 IN PWLAN_FR_AUTHEN pFrame 1256 PWLAN_FR_AUTHEN pFrame
1283 ) 1257 )
1284{ 1258{
1285 PSTxMgmtPacket pTxPacket = NULL; 1259 PSTxMgmtPacket pTxPacket = NULL;
1286 UINT uNodeIndex; 1260 unsigned int uNodeIndex;
1287 WLAN_FR_AUTHEN sFrame; 1261 WLAN_FR_AUTHEN sFrame;
1288 PSKeyItem pTransmitKey; 1262 PSKeyItem pTransmitKey;
1289 1263
@@ -1381,11 +1355,11 @@ s_vMgrRxAuthenSequence_1(
1381-*/ 1355-*/
1382 1356
1383static 1357static
1384VOID 1358void
1385s_vMgrRxAuthenSequence_2( 1359s_vMgrRxAuthenSequence_2(
1386 IN PSDevice pDevice, 1360 PSDevice pDevice,
1387 IN PSMgmtObject pMgmt, 1361 PSMgmtObject pMgmt,
1388 IN PWLAN_FR_AUTHEN pFrame 1362 PWLAN_FR_AUTHEN pFrame
1389 ) 1363 )
1390{ 1364{
1391 WLAN_FR_AUTHEN sFrame; 1365 WLAN_FR_AUTHEN sFrame;
@@ -1405,12 +1379,11 @@ s_vMgrRxAuthenSequence_2(
1405 s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus)))); 1379 s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
1406 pMgmt->eCurrState = WMAC_STATE_IDLE; 1380 pMgmt->eCurrState = WMAC_STATE_IDLE;
1407 } 1381 }
1408 if (pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) { 1382 if (pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT) {
1409// spin_unlock_irq(&pDevice->lock); 1383 /* spin_unlock_irq(&pDevice->lock);
1410// vCommandTimerWait((HANDLE)pDevice, 0); 1384 vCommandTimerWait((void *) pDevice, 0);
1411// spin_lock_irq(&pDevice->lock); 1385 spin_lock_irq(&pDevice->lock); */
1412 } 1386 }
1413
1414 break; 1387 break;
1415 1388
1416 case WLAN_AUTH_ALG_SHAREDKEY: 1389 case WLAN_AUTH_ALG_SHAREDKEY:
@@ -1453,9 +1426,9 @@ s_vMgrRxAuthenSequence_2(
1453 else { 1426 else {
1454 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:rx Auth_reply sequence_2 status error ...\n"); 1427 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Mgt:rx Auth_reply sequence_2 status error ...\n");
1455 if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) { 1428 if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) {
1456// spin_unlock_irq(&pDevice->lock); 1429 /* spin_unlock_irq(&pDevice->lock);
1457// vCommandTimerWait((HANDLE)pDevice, 0); 1430 vCommandTimerWait((void *) pDevice, 0);
1458// spin_lock_irq(&pDevice->lock); 1431 spin_lock_irq(&pDevice->lock); */
1459 } 1432 }
1460 s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus)))); 1433 s_vMgrLogStatus(pMgmt, cpu_to_le16((*(pFrame->pwStatus))));
1461 } 1434 }
@@ -1483,16 +1456,16 @@ s_vMgrRxAuthenSequence_2(
1483-*/ 1456-*/
1484 1457
1485static 1458static
1486VOID 1459void
1487s_vMgrRxAuthenSequence_3( 1460s_vMgrRxAuthenSequence_3(
1488 IN PSDevice pDevice, 1461 PSDevice pDevice,
1489 IN PSMgmtObject pMgmt, 1462 PSMgmtObject pMgmt,
1490 IN PWLAN_FR_AUTHEN pFrame 1463 PWLAN_FR_AUTHEN pFrame
1491 ) 1464 )
1492{ 1465{
1493 PSTxMgmtPacket pTxPacket = NULL; 1466 PSTxMgmtPacket pTxPacket = NULL;
1494 UINT uStatusCode = 0 ; 1467 unsigned int uStatusCode = 0 ;
1495 UINT uNodeIndex = 0; 1468 unsigned int uNodeIndex = 0;
1496 WLAN_FR_AUTHEN sFrame; 1469 WLAN_FR_AUTHEN sFrame;
1497 1470
1498 if (!WLAN_GET_FC_ISWEP(pFrame->pHdr->sA3.wFrameCtl)) { 1471 if (!WLAN_GET_FC_ISWEP(pFrame->pHdr->sA3.wFrameCtl)) {
@@ -1571,11 +1544,11 @@ reply:
1571 * 1544 *
1572-*/ 1545-*/
1573static 1546static
1574VOID 1547void
1575s_vMgrRxAuthenSequence_4( 1548s_vMgrRxAuthenSequence_4(
1576 IN PSDevice pDevice, 1549 PSDevice pDevice,
1577 IN PSMgmtObject pMgmt, 1550 PSMgmtObject pMgmt,
1578 IN PWLAN_FR_AUTHEN pFrame 1551 PWLAN_FR_AUTHEN pFrame
1579 ) 1552 )
1580{ 1553{
1581 1554
@@ -1591,11 +1564,10 @@ s_vMgrRxAuthenSequence_4(
1591 } 1564 }
1592 1565
1593 if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) { 1566 if ( pDevice->eCommandState == WLAN_AUTHENTICATE_WAIT ) {
1594// spin_unlock_irq(&pDevice->lock); 1567 /* spin_unlock_irq(&pDevice->lock);
1595// vCommandTimerWait((HANDLE)pDevice, 0); 1568 vCommandTimerWait((void *) pDevice, 0);
1596// spin_lock_irq(&pDevice->lock); 1569 spin_lock_irq(&pDevice->lock); */
1597 } 1570 }
1598
1599} 1571}
1600 1572
1601/*+ 1573/*+
@@ -1610,15 +1582,15 @@ s_vMgrRxAuthenSequence_4(
1610-*/ 1582-*/
1611 1583
1612static 1584static
1613VOID 1585void
1614s_vMgrRxDisassociation( 1586s_vMgrRxDisassociation(
1615 IN PSDevice pDevice, 1587 PSDevice pDevice,
1616 IN PSMgmtObject pMgmt, 1588 PSMgmtObject pMgmt,
1617 IN PSRxMgmtPacket pRxPacket 1589 PSRxMgmtPacket pRxPacket
1618 ) 1590 )
1619{ 1591{
1620 WLAN_FR_DISASSOC sFrame; 1592 WLAN_FR_DISASSOC sFrame;
1621 UINT uNodeIndex = 0; 1593 unsigned int uNodeIndex = 0;
1622 CMD_STATUS CmdStatus; 1594 CMD_STATUS CmdStatus;
1623 viawget_wpa_header *wpahdr; 1595 viawget_wpa_header *wpahdr;
1624 1596
@@ -1700,15 +1672,15 @@ s_vMgrRxDisassociation(
1700-*/ 1672-*/
1701 1673
1702static 1674static
1703VOID 1675void
1704s_vMgrRxDeauthentication( 1676s_vMgrRxDeauthentication(
1705 IN PSDevice pDevice, 1677 PSDevice pDevice,
1706 IN PSMgmtObject pMgmt, 1678 PSMgmtObject pMgmt,
1707 IN PSRxMgmtPacket pRxPacket 1679 PSRxMgmtPacket pRxPacket
1708 ) 1680 )
1709{ 1681{
1710 WLAN_FR_DEAUTHEN sFrame; 1682 WLAN_FR_DEAUTHEN sFrame;
1711 UINT uNodeIndex = 0; 1683 unsigned int uNodeIndex = 0;
1712 viawget_wpa_header *wpahdr; 1684 viawget_wpa_header *wpahdr;
1713 1685
1714 1686
@@ -1791,8 +1763,8 @@ s_vMgrRxDeauthentication(
1791-*/ 1763-*/
1792static BOOL 1764static BOOL
1793ChannelExceedZoneType( 1765ChannelExceedZoneType(
1794 IN PSDevice pDevice, 1766 PSDevice pDevice,
1795 IN BYTE byCurrChannel 1767 BYTE byCurrChannel
1796 ) 1768 )
1797{ 1769{
1798 BOOL exceed=FALSE; 1770 BOOL exceed=FALSE;
@@ -1826,12 +1798,12 @@ ChannelExceedZoneType(
1826-*/ 1798-*/
1827 1799
1828static 1800static
1829VOID 1801void
1830s_vMgrRxBeacon( 1802s_vMgrRxBeacon(
1831 IN PSDevice pDevice, 1803 PSDevice pDevice,
1832 IN PSMgmtObject pMgmt, 1804 PSMgmtObject pMgmt,
1833 IN PSRxMgmtPacket pRxPacket, 1805 PSRxMgmtPacket pRxPacket,
1834 IN BOOL bInScan 1806 BOOL bInScan
1835 ) 1807 )
1836{ 1808{
1837 1809
@@ -1845,17 +1817,17 @@ s_vMgrRxBeacon(
1845 BOOL bUpdateTSF = FALSE; 1817 BOOL bUpdateTSF = FALSE;
1846 BOOL bIsAPBeacon = FALSE; 1818 BOOL bIsAPBeacon = FALSE;
1847 BOOL bIsChannelEqual = FALSE; 1819 BOOL bIsChannelEqual = FALSE;
1848 UINT uLocateByteIndex; 1820 unsigned int uLocateByteIndex;
1849 BYTE byTIMBitOn = 0; 1821 BYTE byTIMBitOn = 0;
1850 WORD wAIDNumber = 0; 1822 WORD wAIDNumber = 0;
1851 UINT uNodeIndex; 1823 unsigned int uNodeIndex;
1852 QWORD qwTimestamp, qwLocalTSF; 1824 QWORD qwTimestamp, qwLocalTSF;
1853 QWORD qwCurrTSF; 1825 QWORD qwCurrTSF;
1854 WORD wStartIndex = 0; 1826 WORD wStartIndex = 0;
1855 WORD wAIDIndex = 0; 1827 WORD wAIDIndex = 0;
1856 BYTE byCurrChannel = pRxPacket->byRxChannel; 1828 BYTE byCurrChannel = pRxPacket->byRxChannel;
1857 ERPObject sERP; 1829 ERPObject sERP;
1858 UINT uRateLen = WLAN_RATES_MAXLEN; 1830 unsigned int uRateLen = WLAN_RATES_MAXLEN;
1859 BOOL bChannelHit = FALSE; 1831 BOOL bChannelHit = FALSE;
1860 BYTE byOldPreambleType; 1832 BYTE byOldPreambleType;
1861 1833
@@ -1871,14 +1843,14 @@ s_vMgrRxBeacon(
1871 // decode the beacon frame 1843 // decode the beacon frame
1872 vMgrDecodeBeacon(&sFrame); 1844 vMgrDecodeBeacon(&sFrame);
1873 1845
1874 if ((sFrame.pwBeaconInterval == 0) || 1846 if ((sFrame.pwBeaconInterval == NULL)
1875 (sFrame.pwCapInfo == 0) || 1847 || (sFrame.pwCapInfo == NULL)
1876 (sFrame.pSSID == 0) || 1848 || (sFrame.pSSID == NULL)
1877 (sFrame.pSuppRates == 0) ) { 1849 || (sFrame.pSuppRates == NULL)) {
1878 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Rx beacon frame error\n");
1879 return;
1880 };
1881 1850
1851 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Rx beacon frame error\n");
1852 return;
1853 };
1882 1854
1883 if( byCurrChannel > CB_MAX_CHANNEL_24G ) 1855 if( byCurrChannel > CB_MAX_CHANNEL_24G )
1884 { 1856 {
@@ -1913,10 +1885,12 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
1913 sERP.byERP = 0; 1885 sERP.byERP = 0;
1914 } 1886 }
1915 1887
1916 pBSSList = BSSpAddrIsInBSSList((HANDLE)pDevice, sFrame.pHdr->sA3.abyAddr3, sFrame.pSSID); 1888 pBSSList = BSSpAddrIsInBSSList((void *) pDevice,
1889 sFrame.pHdr->sA3.abyAddr3,
1890 sFrame.pSSID);
1917 if (pBSSList == NULL) { 1891 if (pBSSList == NULL) {
1918 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Beacon/insert: RxChannel = : %d\n", byCurrChannel); 1892 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Beacon/insert: RxChannel = : %d\n", byCurrChannel);
1919 BSSbInsertToBSSList((HANDLE)pDevice, 1893 BSSbInsertToBSSList((void *) pDevice,
1920 sFrame.pHdr->sA3.abyAddr3, 1894 sFrame.pHdr->sA3.abyAddr3,
1921 *sFrame.pqwTimestamp, 1895 *sFrame.pqwTimestamp,
1922 *sFrame.pwBeaconInterval, 1896 *sFrame.pwBeaconInterval,
@@ -1932,12 +1906,11 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
1932 sFrame.pIE_Quiet, 1906 sFrame.pIE_Quiet,
1933 sFrame.len - WLAN_HDR_ADDR3_LEN, 1907 sFrame.len - WLAN_HDR_ADDR3_LEN,
1934 sFrame.pHdr->sA4.abyAddr4, // payload of beacon 1908 sFrame.pHdr->sA4.abyAddr4, // payload of beacon
1935 (HANDLE)pRxPacket 1909 (void *) pRxPacket);
1936 );
1937 } 1910 }
1938 else { 1911 else {
1939// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"update bcn: RxChannel = : %d\n", byCurrChannel); 1912// DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"update bcn: RxChannel = : %d\n", byCurrChannel);
1940 BSSbUpdateToBSSList((HANDLE)pDevice, 1913 BSSbUpdateToBSSList((void *) pDevice,
1941 *sFrame.pqwTimestamp, 1914 *sFrame.pqwTimestamp,
1942 *sFrame.pwBeaconInterval, 1915 *sFrame.pwBeaconInterval,
1943 *sFrame.pwCapInfo, 1916 *sFrame.pwCapInfo,
@@ -1954,8 +1927,7 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
1954 pBSSList, 1927 pBSSList,
1955 sFrame.len - WLAN_HDR_ADDR3_LEN, 1928 sFrame.len - WLAN_HDR_ADDR3_LEN,
1956 sFrame.pHdr->sA4.abyAddr4, // payload of probresponse 1929 sFrame.pHdr->sA4.abyAddr4, // payload of probresponse
1957 (HANDLE)pRxPacket 1930 (void *) pRxPacket);
1958 );
1959 1931
1960 } 1932 }
1961 1933
@@ -2089,7 +2061,7 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2089 pMgmt->abyCurrExtSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)pBSSList->abyExtSuppRates, 2061 pMgmt->abyCurrExtSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)pBSSList->abyExtSuppRates,
2090 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, 2062 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates,
2091 uRateLen); 2063 uRateLen);
2092 RATEvParseMaxRate( (PVOID)pDevice, 2064 RATEvParseMaxRate((void *)pDevice,
2093 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 2065 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
2094 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, 2066 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates,
2095 TRUE, 2067 TRUE,
@@ -2152,9 +2124,9 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2152 if (bTSFLargeDiff) 2124 if (bTSFLargeDiff)
2153 bUpdateTSF = TRUE; 2125 bUpdateTSF = TRUE;
2154 2126
2155 if ((pDevice->bEnablePSMode == TRUE) &&(sFrame.pTIM != 0)) { 2127 if ((pDevice->bEnablePSMode == TRUE) && (sFrame.pTIM)) {
2156 2128
2157 // deal with DTIM, analysis TIM 2129 /* deal with DTIM, analysis TIM */
2158 pMgmt->bMulticastTIM = WLAN_MGMT_IS_MULTICAST_TIM(sFrame.pTIM->byBitMapCtl) ? TRUE : FALSE ; 2130 pMgmt->bMulticastTIM = WLAN_MGMT_IS_MULTICAST_TIM(sFrame.pTIM->byBitMapCtl) ? TRUE : FALSE ;
2159 pMgmt->byDTIMCount = sFrame.pTIM->byDTIMCount; 2131 pMgmt->byDTIMCount = sFrame.pTIM->byDTIMCount;
2160 pMgmt->byDTIMPeriod = sFrame.pTIM->byDTIMPeriod; 2132 pMgmt->byDTIMPeriod = sFrame.pTIM->byDTIMPeriod;
@@ -2227,7 +2199,7 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2227 pMgmt->abyCurrSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)sFrame.pSuppRates, 2199 pMgmt->abyCurrSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)sFrame.pSuppRates,
2228 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 2200 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
2229 WLAN_RATES_MAXLEN_11B); 2201 WLAN_RATES_MAXLEN_11B);
2230 RATEvParseMaxRate( (PVOID)pDevice, 2202 RATEvParseMaxRate((void *)pDevice,
2231 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 2203 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
2232 NULL, 2204 NULL,
2233 TRUE, 2205 TRUE,
@@ -2248,7 +2220,7 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2248 pMgmt->abyCurrSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)sFrame.pSuppRates, 2220 pMgmt->abyCurrSuppRates[1] = RATEuSetIE((PWLAN_IE_SUPP_RATES)sFrame.pSuppRates,
2249 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 2221 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
2250 WLAN_RATES_MAXLEN_11B); 2222 WLAN_RATES_MAXLEN_11B);
2251 RATEvParseMaxRate( (PVOID)pDevice, 2223 RATEvParseMaxRate((void *)pDevice,
2252 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 2224 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
2253 NULL, 2225 NULL,
2254 TRUE, 2226 TRUE,
@@ -2324,7 +2296,7 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2324 // set highest basic rate 2296 // set highest basic rate
2325 // s_vSetHighestBasicRate(pDevice, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates); 2297 // s_vSetHighestBasicRate(pDevice, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates);
2326 // Prepare beacon frame 2298 // Prepare beacon frame
2327 bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt); 2299 bMgrPrepareBeaconToSend((void *) pDevice, pMgmt);
2328 // } 2300 // }
2329 }; 2301 };
2330 } 2302 }
@@ -2341,8 +2313,6 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2341 return; 2313 return;
2342} 2314}
2343 2315
2344
2345
2346/*+ 2316/*+
2347 * 2317 *
2348 * Routine Description: 2318 * Routine Description:
@@ -2355,11 +2325,9 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
2355 * CMD_STATUS 2325 * CMD_STATUS
2356 * 2326 *
2357-*/ 2327-*/
2358VOID 2328
2359vMgrCreateOwnIBSS( 2329void vMgrCreateOwnIBSS(void *hDeviceContext,
2360 IN HANDLE hDeviceContext, 2330 PCMD_STATUS pStatus)
2361 OUT PCMD_STATUS pStatus
2362 )
2363{ 2331{
2364 PSDevice pDevice = (PSDevice)hDeviceContext; 2332 PSDevice pDevice = (PSDevice)hDeviceContext;
2365 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 2333 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -2368,7 +2336,7 @@ vMgrCreateOwnIBSS(
2368 BYTE byTopCCKBasicRate; 2336 BYTE byTopCCKBasicRate;
2369 BYTE byTopOFDMBasicRate; 2337 BYTE byTopOFDMBasicRate;
2370 QWORD qwCurrTSF; 2338 QWORD qwCurrTSF;
2371 UINT ii; 2339 unsigned int ii;
2372 BYTE abyRATE[] = {0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, 0x0C, 0x12, 0x18, 0x60}; 2340 BYTE abyRATE[] = {0x82, 0x84, 0x8B, 0x96, 0x24, 0x30, 0x48, 0x6C, 0x0C, 0x12, 0x18, 0x60};
2373 BYTE abyCCK_RATE[] = {0x82, 0x84, 0x8B, 0x96}; 2341 BYTE abyCCK_RATE[] = {0x82, 0x84, 0x8B, 0x96};
2374 BYTE abyOFDM_RATE[] = {0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6C}; 2342 BYTE abyOFDM_RATE[] = {0x0C, 0x12, 0x18, 0x24, 0x30, 0x48, 0x60, 0x6C};
@@ -2466,7 +2434,8 @@ vMgrCreateOwnIBSS(
2466 2434
2467 // set basic rate 2435 // set basic rate
2468 2436
2469 RATEvParseMaxRate((PVOID)pDevice, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 2437 RATEvParseMaxRate((void *)pDevice,
2438 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
2470 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, TRUE, 2439 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrExtSuppRates, TRUE,
2471 &wMaxBasicRate, &wMaxSuppRate, &wSuppRate, 2440 &wMaxBasicRate, &wMaxSuppRate, &wSuppRate,
2472 &byTopCCKBasicRate, &byTopOFDMBasicRate); 2441 &byTopCCKBasicRate, &byTopOFDMBasicRate);
@@ -2608,13 +2577,11 @@ vMgrCreateOwnIBSS(
2608 2577
2609 pMgmt->eCurrState = WMAC_STATE_STARTED; 2578 pMgmt->eCurrState = WMAC_STATE_STARTED;
2610 // Prepare beacon to send 2579 // Prepare beacon to send
2611 if (bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt)) { 2580 if (bMgrPrepareBeaconToSend((void *) pDevice, pMgmt))
2612 *pStatus = CMD_STATUS_SUCCESS; 2581 *pStatus = CMD_STATUS_SUCCESS;
2613 }
2614 return ;
2615}
2616
2617 2582
2583 return;
2584}
2618 2585
2619/*+ 2586/*+
2620 * 2587 *
@@ -2629,21 +2596,16 @@ vMgrCreateOwnIBSS(
2629 * 2596 *
2630-*/ 2597-*/
2631 2598
2632VOID 2599void vMgrJoinBSSBegin(void *hDeviceContext, PCMD_STATUS pStatus)
2633vMgrJoinBSSBegin(
2634 IN HANDLE hDeviceContext,
2635 OUT PCMD_STATUS pStatus
2636 )
2637{ 2600{
2638
2639 PSDevice pDevice = (PSDevice)hDeviceContext; 2601 PSDevice pDevice = (PSDevice)hDeviceContext;
2640 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 2602 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
2641 PKnownBSS pCurr = NULL; 2603 PKnownBSS pCurr = NULL;
2642 UINT ii, uu; 2604 unsigned int ii, uu;
2643 PWLAN_IE_SUPP_RATES pItemRates = NULL; 2605 PWLAN_IE_SUPP_RATES pItemRates = NULL;
2644 PWLAN_IE_SUPP_RATES pItemExtRates = NULL; 2606 PWLAN_IE_SUPP_RATES pItemExtRates = NULL;
2645 PWLAN_IE_SSID pItemSSID; 2607 PWLAN_IE_SSID pItemSSID;
2646 UINT uRateLen = WLAN_RATES_MAXLEN; 2608 unsigned int uRateLen = WLAN_RATES_MAXLEN;
2647 WORD wMaxBasicRate = RATE_1M; 2609 WORD wMaxBasicRate = RATE_1M;
2648 WORD wMaxSuppRate = RATE_1M; 2610 WORD wMaxSuppRate = RATE_1M;
2649 WORD wSuppRate; 2611 WORD wSuppRate;
@@ -2743,9 +2705,10 @@ vMgrJoinBSSBegin(
2743 uRateLen); 2705 uRateLen);
2744 // Stuffing Rate IE 2706 // Stuffing Rate IE
2745 if ((pItemExtRates->len > 0) && (pItemRates->len < 8)) { 2707 if ((pItemExtRates->len > 0) && (pItemRates->len < 8)) {
2746 for (ii = 0; ii < (UINT)(8 - pItemRates->len); ) { 2708 for (ii = 0; ii < (unsigned int) (8 - pItemRates->len); ) {
2747 pItemRates->abyRates[pItemRates->len + ii] = pItemExtRates->abyRates[ii]; 2709 pItemRates->abyRates[pItemRates->len + ii] =
2748 ii ++; 2710 pItemExtRates->abyRates[ii];
2711 ii++;
2749 if (pItemExtRates->len <= ii) 2712 if (pItemExtRates->len <= ii)
2750 break; 2713 break;
2751 } 2714 }
@@ -2760,7 +2723,7 @@ vMgrJoinBSSBegin(
2760 } 2723 }
2761 } 2724 }
2762 2725
2763 RATEvParseMaxRate((PVOID)pDevice, pItemRates, pItemExtRates, TRUE, 2726 RATEvParseMaxRate((void *)pDevice, pItemRates, pItemExtRates, TRUE,
2764 &wMaxBasicRate, &wMaxSuppRate, &wSuppRate, 2727 &wMaxBasicRate, &wMaxSuppRate, &wSuppRate,
2765 &byTopCCKBasicRate, &byTopOFDMBasicRate); 2728 &byTopCCKBasicRate, &byTopOFDMBasicRate);
2766 vUpdateIFS(pDevice); 2729 vUpdateIFS(pDevice);
@@ -2781,12 +2744,17 @@ vMgrJoinBSSBegin(
2781 // Add current BSS to Candidate list 2744 // Add current BSS to Candidate list
2782 // This should only works for WPA2 BSS, and WPA2 BSS check must be done before. 2745 // This should only works for WPA2 BSS, and WPA2 BSS check must be done before.
2783 if (pMgmt->eAuthenMode == WMAC_AUTH_WPA2) { 2746 if (pMgmt->eAuthenMode == WMAC_AUTH_WPA2) {
2784 BOOL bResult = bAdd_PMKID_Candidate((HANDLE)pDevice, pMgmt->abyCurrBSSID, &pCurr->sRSNCapObj); 2747 BOOL bResult = bAdd_PMKID_Candidate((void *) pDevice,
2748 pMgmt->abyCurrBSSID,
2749 &pCurr->sRSNCapObj);
2785 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate: 1(%d)\n", bResult); 2750 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate: 1(%d)\n", bResult);
2786 if (bResult == FALSE) { 2751 if (bResult == FALSE) {
2787 vFlush_PMKID_Candidate((HANDLE)pDevice); 2752 vFlush_PMKID_Candidate((void *) pDevice);
2788 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"vFlush_PMKID_Candidate: 4\n"); 2753 DBG_PRT(MSG_LEVEL_DEBUG,
2789 bAdd_PMKID_Candidate((HANDLE)pDevice, pMgmt->abyCurrBSSID, &pCurr->sRSNCapObj); 2754 KERN_INFO "vFlush_PMKID_Candidate: 4\n");
2755 bAdd_PMKID_Candidate((void *) pDevice,
2756 pMgmt->abyCurrBSSID,
2757 &pCurr->sRSNCapObj);
2790 } 2758 }
2791 } 2759 }
2792 2760
@@ -2899,7 +2867,8 @@ vMgrJoinBSSBegin(
2899 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 2867 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
2900 WLAN_RATES_MAXLEN_11B); 2868 WLAN_RATES_MAXLEN_11B);
2901 // set basic rate 2869 // set basic rate
2902 RATEvParseMaxRate((PVOID)pDevice, (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates, 2870 RATEvParseMaxRate((void *)pDevice,
2871 (PWLAN_IE_SUPP_RATES)pMgmt->abyCurrSuppRates,
2903 NULL, TRUE, &wMaxBasicRate, &wMaxSuppRate, &wSuppRate, 2872 NULL, TRUE, &wMaxBasicRate, &wMaxSuppRate, &wSuppRate,
2904 &byTopCCKBasicRate, &byTopOFDMBasicRate); 2873 &byTopCCKBasicRate, &byTopOFDMBasicRate);
2905 vUpdateIFS(pDevice); 2874 vUpdateIFS(pDevice);
@@ -2938,7 +2907,7 @@ vMgrJoinBSSBegin(
2938 CARDvSetRSPINF(pDevice, (BYTE)pDevice->byBBType); 2907 CARDvSetRSPINF(pDevice, (BYTE)pDevice->byBBType);
2939 2908
2940 // Prepare beacon 2909 // Prepare beacon
2941 bMgrPrepareBeaconToSend((HANDLE)pDevice, pMgmt); 2910 bMgrPrepareBeaconToSend((void *) pDevice, pMgmt);
2942 } 2911 }
2943 else { 2912 else {
2944 pMgmt->eCurrState = WMAC_STATE_IDLE; 2913 pMgmt->eCurrState = WMAC_STATE_IDLE;
@@ -2960,12 +2929,12 @@ vMgrJoinBSSBegin(
2960 * 2929 *
2961-*/ 2930-*/
2962static 2931static
2963VOID 2932void
2964s_vMgrSynchBSS ( 2933s_vMgrSynchBSS (
2965 IN PSDevice pDevice, 2934 PSDevice pDevice,
2966 IN UINT uBSSMode, 2935 unsigned int uBSSMode,
2967 IN PKnownBSS pCurr, 2936 PKnownBSS pCurr,
2968 OUT PCMD_STATUS pStatus 2937 PCMD_STATUS pStatus
2969 ) 2938 )
2970{ 2939{
2971 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 2940 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
@@ -3004,7 +2973,7 @@ s_vMgrSynchBSS (
3004 pDevice->byPreambleType = 0; 2973 pDevice->byPreambleType = 0;
3005 pDevice->wBasicRate = 0; 2974 pDevice->wBasicRate = 0;
3006 // Set Basic Rate 2975 // Set Basic Rate
3007 CARDbAddBasicRate((PVOID)pDevice, RATE_1M); 2976 CARDbAddBasicRate((void *)pDevice, RATE_1M);
3008 2977
3009 // calculate TSF offset 2978 // calculate TSF offset
3010 // TSF Offset = Received Timestamp TSF - Marked Local's TSF 2979 // TSF Offset = Received Timestamp TSF - Marked Local's TSF
@@ -3122,13 +3091,13 @@ s_vMgrSynchBSS (
3122 3091
3123//mike add: fix NetworkManager 0.7.0 hidden ssid mode in WPA encryption 3092//mike add: fix NetworkManager 0.7.0 hidden ssid mode in WPA encryption
3124// ,need reset eAuthenMode and eEncryptionStatus 3093// ,need reset eAuthenMode and eEncryptionStatus
3125 static VOID Encyption_Rebuild( 3094 static void Encyption_Rebuild(
3126 IN PSDevice pDevice, 3095 PSDevice pDevice,
3127 IN PKnownBSS pCurr 3096 PKnownBSS pCurr
3128 ) 3097 )
3129 { 3098 {
3130 PSMgmtObject pMgmt = &(pDevice->sMgmtObj); 3099 PSMgmtObject pMgmt = &(pDevice->sMgmtObj);
3131 // UINT ii , uSameBssidNum=0; 3100 /* unsigned int ii, uSameBssidNum=0; */
3132 3101
3133 // for (ii = 0; ii < MAX_BSS_NUM; ii++) { 3102 // for (ii = 0; ii < MAX_BSS_NUM; ii++) {
3134 // if (pMgmt->sBSSList[ii].bActive && 3103 // if (pMgmt->sBSSList[ii].bActive &&
@@ -3174,20 +3143,20 @@ s_vMgrSynchBSS (
3174 * 3143 *
3175 * 3144 *
3176 * Return Value: 3145 * Return Value:
3177 * VOID 3146 * void
3178 * 3147 *
3179-*/ 3148-*/
3180 3149
3181static 3150static
3182VOID 3151void
3183s_vMgrFormatTIM( 3152s_vMgrFormatTIM(
3184 IN PSMgmtObject pMgmt, 3153 PSMgmtObject pMgmt,
3185 IN PWLAN_IE_TIM pTIM 3154 PWLAN_IE_TIM pTIM
3186 ) 3155 )
3187{ 3156{
3188 BYTE byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80}; 3157 BYTE byMask[8] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80};
3189 BYTE byMap; 3158 BYTE byMap;
3190 UINT ii, jj; 3159 unsigned int ii, jj;
3191 BOOL bStartFound = FALSE; 3160 BOOL bStartFound = FALSE;
3192 BOOL bMulticast = FALSE; 3161 BOOL bMulticast = FALSE;
3193 WORD wStartIndex = 0; 3162 WORD wStartIndex = 0;
@@ -3256,16 +3225,16 @@ s_vMgrFormatTIM(
3256static 3225static
3257PSTxMgmtPacket 3226PSTxMgmtPacket
3258s_MgrMakeBeacon( 3227s_MgrMakeBeacon(
3259 IN PSDevice pDevice, 3228 PSDevice pDevice,
3260 IN PSMgmtObject pMgmt, 3229 PSMgmtObject pMgmt,
3261 IN WORD wCurrCapInfo, 3230 WORD wCurrCapInfo,
3262 IN WORD wCurrBeaconPeriod, 3231 WORD wCurrBeaconPeriod,
3263 IN UINT uCurrChannel, 3232 unsigned int uCurrChannel,
3264 IN WORD wCurrATIMWinodw, 3233 WORD wCurrATIMWinodw,
3265 IN PWLAN_IE_SSID pCurrSSID, 3234 PWLAN_IE_SSID pCurrSSID,
3266 IN PBYTE pCurrBSSID, 3235 PBYTE pCurrBSSID,
3267 IN PWLAN_IE_SUPP_RATES pCurrSuppRates, 3236 PWLAN_IE_SUPP_RATES pCurrSuppRates,
3268 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 3237 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
3269 ) 3238 )
3270{ 3239{
3271 PSTxMgmtPacket pTxPacket = NULL; 3240 PSTxMgmtPacket pTxPacket = NULL;
@@ -3430,18 +3399,18 @@ s_MgrMakeBeacon(
3430 3399
3431PSTxMgmtPacket 3400PSTxMgmtPacket
3432s_MgrMakeProbeResponse( 3401s_MgrMakeProbeResponse(
3433 IN PSDevice pDevice, 3402 PSDevice pDevice,
3434 IN PSMgmtObject pMgmt, 3403 PSMgmtObject pMgmt,
3435 IN WORD wCurrCapInfo, 3404 WORD wCurrCapInfo,
3436 IN WORD wCurrBeaconPeriod, 3405 WORD wCurrBeaconPeriod,
3437 IN UINT uCurrChannel, 3406 unsigned int uCurrChannel,
3438 IN WORD wCurrATIMWinodw, 3407 WORD wCurrATIMWinodw,
3439 IN PBYTE pDstAddr, 3408 PBYTE pDstAddr,
3440 IN PWLAN_IE_SSID pCurrSSID, 3409 PWLAN_IE_SSID pCurrSSID,
3441 IN PBYTE pCurrBSSID, 3410 PBYTE pCurrBSSID,
3442 IN PWLAN_IE_SUPP_RATES pCurrSuppRates, 3411 PWLAN_IE_SUPP_RATES pCurrSuppRates,
3443 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates, 3412 PWLAN_IE_SUPP_RATES pCurrExtSuppRates,
3444 IN BYTE byPHYType 3413 BYTE byPHYType
3445 ) 3414 )
3446{ 3415{
3447 PSTxMgmtPacket pTxPacket = NULL; 3416 PSTxMgmtPacket pTxPacket = NULL;
@@ -3562,14 +3531,14 @@ s_MgrMakeProbeResponse(
3562 3531
3563PSTxMgmtPacket 3532PSTxMgmtPacket
3564s_MgrMakeAssocRequest( 3533s_MgrMakeAssocRequest(
3565 IN PSDevice pDevice, 3534 PSDevice pDevice,
3566 IN PSMgmtObject pMgmt, 3535 PSMgmtObject pMgmt,
3567 IN PBYTE pDAddr, 3536 PBYTE pDAddr,
3568 IN WORD wCurrCapInfo, 3537 WORD wCurrCapInfo,
3569 IN WORD wListenInterval, 3538 WORD wListenInterval,
3570 IN PWLAN_IE_SSID pCurrSSID, 3539 PWLAN_IE_SSID pCurrSSID,
3571 IN PWLAN_IE_SUPP_RATES pCurrRates, 3540 PWLAN_IE_SUPP_RATES pCurrRates,
3572 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 3541 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
3573 ) 3542 )
3574{ 3543{
3575 PSTxMgmtPacket pTxPacket = NULL; 3544 PSTxMgmtPacket pTxPacket = NULL;
@@ -3704,7 +3673,7 @@ s_MgrMakeAssocRequest(
3704 } else if (((pMgmt->eAuthenMode == WMAC_AUTH_WPA2) || 3673 } else if (((pMgmt->eAuthenMode == WMAC_AUTH_WPA2) ||
3705 (pMgmt->eAuthenMode == WMAC_AUTH_WPA2PSK)) && 3674 (pMgmt->eAuthenMode == WMAC_AUTH_WPA2PSK)) &&
3706 (pMgmt->pCurrBSS != NULL)) { 3675 (pMgmt->pCurrBSS != NULL)) {
3707 UINT ii; 3676 unsigned int ii;
3708 PWORD pwPMKID; 3677 PWORD pwPMKID;
3709 3678
3710 // WPA IE 3679 // WPA IE
@@ -3773,13 +3742,17 @@ s_MgrMakeAssocRequest(
3773 pwPMKID = (PWORD)pbyRSN; // Point to PMKID count 3742 pwPMKID = (PWORD)pbyRSN; // Point to PMKID count
3774 *pwPMKID = 0; // Initialize PMKID count 3743 *pwPMKID = 0; // Initialize PMKID count
3775 pbyRSN += 2; // Point to PMKID list 3744 pbyRSN += 2; // Point to PMKID list
3776 for (ii = 0; ii < pDevice->gsPMKID.BSSIDInfoCount; ii++) { 3745 for (ii = 0; ii < pDevice->gsPMKID.BSSIDInfoCount; ii++) {
3777 if ( !memcmp(&pDevice->gsPMKID.BSSIDInfo[ii].BSSID[0], pMgmt->abyCurrBSSID, U_ETHER_ADDR_LEN)) { 3746 if (!memcmp(&pDevice->gsPMKID.BSSIDInfo[ii].BSSID[0],
3778 (*pwPMKID) ++; 3747 pMgmt->abyCurrBSSID,
3779 memcpy(pbyRSN, pDevice->gsPMKID.BSSIDInfo[ii].PMKID, 16); 3748 ETH_ALEN)) {
3780 pbyRSN += 16; 3749 (*pwPMKID)++;
3781 } 3750 memcpy(pbyRSN,
3782 } 3751 pDevice->gsPMKID.BSSIDInfo[ii].PMKID,
3752 16);
3753 pbyRSN += 16;
3754 }
3755 }
3783 if (*pwPMKID != 0) { 3756 if (*pwPMKID != 0) {
3784 sFrame.pRSN->len += (2 + (*pwPMKID)*16); 3757 sFrame.pRSN->len += (2 + (*pwPMKID)*16);
3785 } 3758 }
@@ -3820,14 +3793,14 @@ s_MgrMakeAssocRequest(
3820 3793
3821PSTxMgmtPacket 3794PSTxMgmtPacket
3822s_MgrMakeReAssocRequest( 3795s_MgrMakeReAssocRequest(
3823 IN PSDevice pDevice, 3796 PSDevice pDevice,
3824 IN PSMgmtObject pMgmt, 3797 PSMgmtObject pMgmt,
3825 IN PBYTE pDAddr, 3798 PBYTE pDAddr,
3826 IN WORD wCurrCapInfo, 3799 WORD wCurrCapInfo,
3827 IN WORD wListenInterval, 3800 WORD wListenInterval,
3828 IN PWLAN_IE_SSID pCurrSSID, 3801 PWLAN_IE_SSID pCurrSSID,
3829 IN PWLAN_IE_SUPP_RATES pCurrRates, 3802 PWLAN_IE_SUPP_RATES pCurrRates,
3830 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 3803 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
3831 ) 3804 )
3832{ 3805{
3833 PSTxMgmtPacket pTxPacket = NULL; 3806 PSTxMgmtPacket pTxPacket = NULL;
@@ -3960,7 +3933,7 @@ s_MgrMakeReAssocRequest(
3960 } else if (((pMgmt->eAuthenMode == WMAC_AUTH_WPA2) || 3933 } else if (((pMgmt->eAuthenMode == WMAC_AUTH_WPA2) ||
3961 (pMgmt->eAuthenMode == WMAC_AUTH_WPA2PSK)) && 3934 (pMgmt->eAuthenMode == WMAC_AUTH_WPA2PSK)) &&
3962 (pMgmt->pCurrBSS != NULL)) { 3935 (pMgmt->pCurrBSS != NULL)) {
3963 UINT ii; 3936 unsigned int ii;
3964 PWORD pwPMKID; 3937 PWORD pwPMKID;
3965 3938
3966 /* WPA IE */ 3939 /* WPA IE */
@@ -4030,10 +4003,14 @@ s_MgrMakeReAssocRequest(
4030 *pwPMKID = 0; // Initialize PMKID count 4003 *pwPMKID = 0; // Initialize PMKID count
4031 pbyRSN += 2; // Point to PMKID list 4004 pbyRSN += 2; // Point to PMKID list
4032 for (ii = 0; ii < pDevice->gsPMKID.BSSIDInfoCount; ii++) { 4005 for (ii = 0; ii < pDevice->gsPMKID.BSSIDInfoCount; ii++) {
4033 if ( !memcmp(&pDevice->gsPMKID.BSSIDInfo[ii].BSSID[0], pMgmt->abyCurrBSSID, U_ETHER_ADDR_LEN)) { 4006 if (!memcmp(&pDevice->gsPMKID.BSSIDInfo[ii].BSSID[0],
4034 (*pwPMKID) ++; 4007 pMgmt->abyCurrBSSID,
4035 memcpy(pbyRSN, pDevice->gsPMKID.BSSIDInfo[ii].PMKID, 16); 4008 ETH_ALEN)) {
4036 pbyRSN += 16; 4009 (*pwPMKID)++;
4010 memcpy(pbyRSN,
4011 pDevice->gsPMKID.BSSIDInfo[ii].PMKID,
4012 16);
4013 pbyRSN += 16;
4037 } 4014 }
4038 } 4015 }
4039 if (*pwPMKID != 0) { 4016 if (*pwPMKID != 0) {
@@ -4057,8 +4034,6 @@ s_MgrMakeReAssocRequest(
4057 return pTxPacket; 4034 return pTxPacket;
4058} 4035}
4059 4036
4060
4061
4062/*+ 4037/*+
4063 * 4038 *
4064 * Routine Description: 4039 * Routine Description:
@@ -4070,17 +4045,16 @@ s_MgrMakeReAssocRequest(
4070 * 4045 *
4071-*/ 4046-*/
4072 4047
4073
4074PSTxMgmtPacket 4048PSTxMgmtPacket
4075s_MgrMakeAssocResponse( 4049s_MgrMakeAssocResponse(
4076 IN PSDevice pDevice, 4050 PSDevice pDevice,
4077 IN PSMgmtObject pMgmt, 4051 PSMgmtObject pMgmt,
4078 IN WORD wCurrCapInfo, 4052 WORD wCurrCapInfo,
4079 IN WORD wAssocStatus, 4053 WORD wAssocStatus,
4080 IN WORD wAssocAID, 4054 WORD wAssocAID,
4081 IN PBYTE pDstAddr, 4055 PBYTE pDstAddr,
4082 IN PWLAN_IE_SUPP_RATES pCurrSuppRates, 4056 PWLAN_IE_SUPP_RATES pCurrSuppRates,
4083 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 4057 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
4084 ) 4058 )
4085{ 4059{
4086 PSTxMgmtPacket pTxPacket = NULL; 4060 PSTxMgmtPacket pTxPacket = NULL;
@@ -4147,14 +4121,14 @@ s_MgrMakeAssocResponse(
4147 4121
4148PSTxMgmtPacket 4122PSTxMgmtPacket
4149s_MgrMakeReAssocResponse( 4123s_MgrMakeReAssocResponse(
4150 IN PSDevice pDevice, 4124 PSDevice pDevice,
4151 IN PSMgmtObject pMgmt, 4125 PSMgmtObject pMgmt,
4152 IN WORD wCurrCapInfo, 4126 WORD wCurrCapInfo,
4153 IN WORD wAssocStatus, 4127 WORD wAssocStatus,
4154 IN WORD wAssocAID, 4128 WORD wAssocAID,
4155 IN PBYTE pDstAddr, 4129 PBYTE pDstAddr,
4156 IN PWLAN_IE_SUPP_RATES pCurrSuppRates, 4130 PWLAN_IE_SUPP_RATES pCurrSuppRates,
4157 IN PWLAN_IE_SUPP_RATES pCurrExtSuppRates 4131 PWLAN_IE_SUPP_RATES pCurrExtSuppRates
4158 ) 4132 )
4159{ 4133{
4160 PSTxMgmtPacket pTxPacket = NULL; 4134 PSTxMgmtPacket pTxPacket = NULL;
@@ -4219,11 +4193,11 @@ s_MgrMakeReAssocResponse(
4219-*/ 4193-*/
4220 4194
4221static 4195static
4222VOID 4196void
4223s_vMgrRxProbeResponse( 4197s_vMgrRxProbeResponse(
4224 IN PSDevice pDevice, 4198 PSDevice pDevice,
4225 IN PSMgmtObject pMgmt, 4199 PSMgmtObject pMgmt,
4226 IN PSRxMgmtPacket pRxPacket 4200 PSRxMgmtPacket pRxPacket
4227 ) 4201 )
4228{ 4202{
4229 PKnownBSS pBSSList = NULL; 4203 PKnownBSS pBSSList = NULL;
@@ -4239,14 +4213,16 @@ s_vMgrRxProbeResponse(
4239 sFrame.pBuf = (PBYTE)pRxPacket->p80211Header; 4213 sFrame.pBuf = (PBYTE)pRxPacket->p80211Header;
4240 vMgrDecodeProbeResponse(&sFrame); 4214 vMgrDecodeProbeResponse(&sFrame);
4241 4215
4242 if ((sFrame.pqwTimestamp == 0) || 4216 if ((sFrame.pqwTimestamp == NULL)
4243 (sFrame.pwBeaconInterval == 0) || 4217 || (sFrame.pwBeaconInterval == NULL)
4244 (sFrame.pwCapInfo == 0) || 4218 || (sFrame.pwCapInfo == NULL)
4245 (sFrame.pSSID == 0) || 4219 || (sFrame.pSSID == NULL)
4246 (sFrame.pSuppRates == 0)) { 4220 || (sFrame.pSuppRates == NULL)) {
4247 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Probe resp:Fail addr:[%p] \n", pRxPacket->p80211Header); 4221
4248 DBG_PORT80(0xCC); 4222 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "Probe resp:Fail addr:[%p]\n",
4249 return; 4223 pRxPacket->p80211Header);
4224 DBG_PORT80(0xCC);
4225 return;
4250 }; 4226 };
4251 4227
4252 if(sFrame.pSSID->len == 0) 4228 if(sFrame.pSSID->len == 0)
@@ -4256,22 +4232,23 @@ s_vMgrRxProbeResponse(
4256 //{{ RobertYu:20050201, 11a byCurrChannel != sFrame.pDSParms->byCurrChannel mapping 4232 //{{ RobertYu:20050201, 11a byCurrChannel != sFrame.pDSParms->byCurrChannel mapping
4257 if( byCurrChannel > CB_MAX_CHANNEL_24G ) 4233 if( byCurrChannel > CB_MAX_CHANNEL_24G )
4258 { 4234 {
4259 if (sFrame.pDSParms != 0) { 4235 if (sFrame.pDSParms) {
4260 if (byCurrChannel == RFaby11aChannelIndex[sFrame.pDSParms->byCurrChannel-1]) 4236 if (byCurrChannel ==
4261 bChannelHit = TRUE; 4237 RFaby11aChannelIndex[sFrame.pDSParms->byCurrChannel-1])
4262 byCurrChannel = RFaby11aChannelIndex[sFrame.pDSParms->byCurrChannel-1]; 4238 bChannelHit = TRUE;
4239 byCurrChannel =
4240 RFaby11aChannelIndex[sFrame.pDSParms->byCurrChannel-1];
4263 } else { 4241 } else {
4264 bChannelHit = TRUE; 4242 bChannelHit = TRUE;
4265 } 4243 }
4266
4267 } else { 4244 } else {
4268 if (sFrame.pDSParms != 0) { 4245 if (sFrame.pDSParms) {
4269 if (byCurrChannel == sFrame.pDSParms->byCurrChannel) 4246 if (byCurrChannel == sFrame.pDSParms->byCurrChannel)
4270 bChannelHit = TRUE; 4247 bChannelHit = TRUE;
4271 byCurrChannel = sFrame.pDSParms->byCurrChannel; 4248 byCurrChannel = sFrame.pDSParms->byCurrChannel;
4272 } else { 4249 } else {
4273 bChannelHit = TRUE; 4250 bChannelHit = TRUE;
4274 } 4251 }
4275 } 4252 }
4276 //RobertYu:20050201 4253 //RobertYu:20050201
4277 4254
@@ -4279,7 +4256,7 @@ s_vMgrRxProbeResponse(
4279if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE) 4256if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
4280 return; 4257 return;
4281 4258
4282 if (sFrame.pERP != NULL) { 4259 if (sFrame.pERP) {
4283 sERP.byERP = sFrame.pERP->byContext; 4260 sERP.byERP = sFrame.pERP->byContext;
4284 sERP.bERPExist = TRUE; 4261 sERP.bERPExist = TRUE;
4285 } else { 4262 } else {
@@ -4289,31 +4266,32 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
4289 4266
4290 4267
4291 // update or insert the bss 4268 // update or insert the bss
4292 pBSSList = BSSpAddrIsInBSSList((HANDLE)pDevice, sFrame.pHdr->sA3.abyAddr3, sFrame.pSSID); 4269 pBSSList = BSSpAddrIsInBSSList((void *) pDevice,
4270 sFrame.pHdr->sA3.abyAddr3,
4271 sFrame.pSSID);
4293 if (pBSSList) { 4272 if (pBSSList) {
4294 BSSbUpdateToBSSList((HANDLE)pDevice, 4273 BSSbUpdateToBSSList((void *) pDevice,
4295 *sFrame.pqwTimestamp, 4274 *sFrame.pqwTimestamp,
4296 *sFrame.pwBeaconInterval, 4275 *sFrame.pwBeaconInterval,
4297 *sFrame.pwCapInfo, 4276 *sFrame.pwCapInfo,
4298 byCurrChannel, 4277 byCurrChannel,
4299 bChannelHit, 4278 bChannelHit,
4300 sFrame.pSSID, 4279 sFrame.pSSID,
4301 sFrame.pSuppRates, 4280 sFrame.pSuppRates,
4302 sFrame.pExtSuppRates, 4281 sFrame.pExtSuppRates,
4303 &sERP, 4282 &sERP,
4304 sFrame.pRSN, 4283 sFrame.pRSN,
4305 sFrame.pRSNWPA, 4284 sFrame.pRSNWPA,
4306 sFrame.pIE_Country, 4285 sFrame.pIE_Country,
4307 sFrame.pIE_Quiet, 4286 sFrame.pIE_Quiet,
4308 pBSSList, 4287 pBSSList,
4309 sFrame.len - WLAN_HDR_ADDR3_LEN, 4288 sFrame.len - WLAN_HDR_ADDR3_LEN,
4310 sFrame.pHdr->sA4.abyAddr4, // payload of probresponse 4289 /* payload of probresponse */
4311 (HANDLE)pRxPacket 4290 sFrame.pHdr->sA4.abyAddr4,
4312 ); 4291 (void *) pRxPacket);
4313 } 4292 } else {
4314 else {
4315 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Probe resp/insert: RxChannel = : %d\n", byCurrChannel); 4293 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"Probe resp/insert: RxChannel = : %d\n", byCurrChannel);
4316 BSSbInsertToBSSList((HANDLE)pDevice, 4294 BSSbInsertToBSSList((void *) pDevice,
4317 sFrame.pHdr->sA3.abyAddr3, 4295 sFrame.pHdr->sA3.abyAddr3,
4318 *sFrame.pqwTimestamp, 4296 *sFrame.pqwTimestamp,
4319 *sFrame.pwBeaconInterval, 4297 *sFrame.pwBeaconInterval,
@@ -4328,9 +4306,8 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
4328 sFrame.pIE_Country, 4306 sFrame.pIE_Country,
4329 sFrame.pIE_Quiet, 4307 sFrame.pIE_Quiet,
4330 sFrame.len - WLAN_HDR_ADDR3_LEN, 4308 sFrame.len - WLAN_HDR_ADDR3_LEN,
4331 sFrame.pHdr->sA4.abyAddr4, // payload of beacon 4309 sFrame.pHdr->sA4.abyAddr4, /* payload of beacon */
4332 (HANDLE)pRxPacket 4310 (void *) pRxPacket);
4333 );
4334 } 4311 }
4335 return; 4312 return;
4336 4313
@@ -4349,11 +4326,11 @@ if(ChannelExceedZoneType(pDevice,byCurrChannel)==TRUE)
4349 4326
4350 4327
4351static 4328static
4352VOID 4329void
4353s_vMgrRxProbeRequest( 4330s_vMgrRxProbeRequest(
4354 IN PSDevice pDevice, 4331 PSDevice pDevice,
4355 IN PSMgmtObject pMgmt, 4332 PSMgmtObject pMgmt,
4356 IN PSRxMgmtPacket pRxPacket 4333 PSRxMgmtPacket pRxPacket
4357 ) 4334 )
4358{ 4335{
4359 WLAN_FR_PROBEREQ sFrame; 4336 WLAN_FR_PROBEREQ sFrame;
@@ -4426,10 +4403,6 @@ s_vMgrRxProbeRequest(
4426 return; 4403 return;
4427} 4404}
4428 4405
4429
4430
4431
4432
4433/*+ 4406/*+
4434 * 4407 *
4435 * Routine Description: 4408 * Routine Description:
@@ -4444,17 +4417,13 @@ s_vMgrRxProbeRequest(
4444 * 4417 *
4445-*/ 4418-*/
4446 4419
4447 4420void vMgrRxManagePacket(void *hDeviceContext,
4448VOID 4421 PSMgmtObject pMgmt,
4449vMgrRxManagePacket( 4422 PSRxMgmtPacket pRxPacket)
4450 IN HANDLE hDeviceContext,
4451 IN PSMgmtObject pMgmt,
4452 IN PSRxMgmtPacket pRxPacket
4453 )
4454{ 4423{
4455 PSDevice pDevice = (PSDevice)hDeviceContext; 4424 PSDevice pDevice = (PSDevice)hDeviceContext;
4456 BOOL bInScan = FALSE; 4425 BOOL bInScan = FALSE;
4457 UINT uNodeIndex = 0; 4426 unsigned int uNodeIndex = 0;
4458 NODE_STATE eNodeState = 0; 4427 NODE_STATE eNodeState = 0;
4459 CMD_STATUS Status; 4428 CMD_STATUS Status;
4460 4429
@@ -4583,9 +4552,6 @@ vMgrRxManagePacket(
4583 return; 4552 return;
4584} 4553}
4585 4554
4586
4587
4588
4589/*+ 4555/*+
4590 * 4556 *
4591 * Routine Description: 4557 * Routine Description:
@@ -4597,11 +4563,7 @@ vMgrRxManagePacket(
4597 * TRUE if success; FALSE if failed. 4563 * TRUE if success; FALSE if failed.
4598 * 4564 *
4599-*/ 4565-*/
4600BOOL 4566BOOL bMgrPrepareBeaconToSend(void *hDeviceContext, PSMgmtObject pMgmt)
4601bMgrPrepareBeaconToSend(
4602 IN HANDLE hDeviceContext,
4603 IN PSMgmtObject pMgmt
4604 )
4605{ 4567{
4606 PSDevice pDevice = (PSDevice)hDeviceContext; 4568 PSDevice pDevice = (PSDevice)hDeviceContext;
4607 PSTxMgmtPacket pTxPacket; 4569 PSTxMgmtPacket pTxPacket;
@@ -4653,10 +4615,10 @@ bMgrPrepareBeaconToSend(
4653 * 4615 *
4654-*/ 4616-*/
4655static 4617static
4656VOID 4618void
4657s_vMgrLogStatus( 4619s_vMgrLogStatus(
4658 IN PSMgmtObject pMgmt, 4620 PSMgmtObject pMgmt,
4659 IN WORD wStatus 4621 WORD wStatus
4660 ) 4622 )
4661{ 4623{
4662 switch( wStatus ){ 4624 switch( wStatus ){
@@ -4705,7 +4667,6 @@ s_vMgrLogStatus(
4705 } 4667 }
4706} 4668}
4707 4669
4708
4709/* 4670/*
4710 * 4671 *
4711 * Description: 4672 * Description:
@@ -4722,16 +4683,14 @@ s_vMgrLogStatus(
4722 * Return Value: none. 4683 * Return Value: none.
4723 * 4684 *
4724-*/ 4685-*/
4725BOOL 4686
4726bAdd_PMKID_Candidate ( 4687BOOL bAdd_PMKID_Candidate(void *hDeviceContext,
4727 IN HANDLE hDeviceContext, 4688 PBYTE pbyBSSID,
4728 IN PBYTE pbyBSSID, 4689 PSRSNCapObject psRSNCapObj)
4729 IN PSRSNCapObject psRSNCapObj
4730 )
4731{ 4690{
4732 PSDevice pDevice = (PSDevice)hDeviceContext; 4691 PSDevice pDevice = (PSDevice)hDeviceContext;
4733 PPMKID_CANDIDATE pCandidateList; 4692 PPMKID_CANDIDATE pCandidateList;
4734 UINT ii = 0; 4693 unsigned int ii = 0;
4735 4694
4736 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate START: (%d)\n", (int)pDevice->gsPMKIDCandidate.NumCandidates); 4695 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"bAdd_PMKID_Candidate START: (%d)\n", (int)pDevice->gsPMKIDCandidate.NumCandidates);
4737 4696
@@ -4745,13 +4704,16 @@ bAdd_PMKID_Candidate (
4745 4704
4746 // Update Old Candidate 4705 // Update Old Candidate
4747 for (ii = 0; ii < pDevice->gsPMKIDCandidate.NumCandidates; ii++) { 4706 for (ii = 0; ii < pDevice->gsPMKIDCandidate.NumCandidates; ii++) {
4748 pCandidateList = &pDevice->gsPMKIDCandidate.CandidateList[ii]; 4707 pCandidateList = &pDevice->gsPMKIDCandidate.CandidateList[ii];
4749 if ( !memcmp(pCandidateList->BSSID, pbyBSSID, U_ETHER_ADDR_LEN)) { 4708 if (!memcmp(pCandidateList->BSSID, pbyBSSID, ETH_ALEN)) {
4750 if ((psRSNCapObj->bRSNCapExist == TRUE) && (psRSNCapObj->wRSNCap & BIT0)) { 4709 if ((psRSNCapObj->bRSNCapExist == TRUE)
4751 pCandidateList->Flags |= NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED; 4710 && (psRSNCapObj->wRSNCap & BIT0)) {
4752 } else { 4711 pCandidateList->Flags |=
4753 pCandidateList->Flags &= ~(NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED); 4712 NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED;
4754 } 4713 } else {
4714 pCandidateList->Flags &=
4715 ~(NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED);
4716 }
4755 return TRUE; 4717 return TRUE;
4756 } 4718 }
4757 } 4719 }
@@ -4763,7 +4725,7 @@ bAdd_PMKID_Candidate (
4763 } else { 4725 } else {
4764 pCandidateList->Flags &= ~(NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED); 4726 pCandidateList->Flags &= ~(NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED);
4765 } 4727 }
4766 memcpy(pCandidateList->BSSID, pbyBSSID, U_ETHER_ADDR_LEN); 4728 memcpy(pCandidateList->BSSID, pbyBSSID, ETH_ALEN);
4767 pDevice->gsPMKIDCandidate.NumCandidates++; 4729 pDevice->gsPMKIDCandidate.NumCandidates++;
4768 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"NumCandidates:%d\n", (int)pDevice->gsPMKIDCandidate.NumCandidates); 4730 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"NumCandidates:%d\n", (int)pDevice->gsPMKIDCandidate.NumCandidates);
4769 return TRUE; 4731 return TRUE;
@@ -4783,10 +4745,8 @@ bAdd_PMKID_Candidate (
4783 * Return Value: none. 4745 * Return Value: none.
4784 * 4746 *
4785-*/ 4747-*/
4786VOID 4748
4787vFlush_PMKID_Candidate ( 4749void vFlush_PMKID_Candidate(void *hDeviceContext)
4788 IN HANDLE hDeviceContext
4789 )
4790{ 4750{
4791 PSDevice pDevice = (PSDevice)hDeviceContext; 4751 PSDevice pDevice = (PSDevice)hDeviceContext;
4792 4752
@@ -4798,10 +4758,10 @@ vFlush_PMKID_Candidate (
4798 4758
4799static BOOL 4759static BOOL
4800s_bCipherMatch ( 4760s_bCipherMatch (
4801 IN PKnownBSS pBSSNode, 4761 PKnownBSS pBSSNode,
4802 IN NDIS_802_11_ENCRYPTION_STATUS EncStatus, 4762 NDIS_802_11_ENCRYPTION_STATUS EncStatus,
4803 OUT PBYTE pbyCCSPK, 4763 PBYTE pbyCCSPK,
4804 OUT PBYTE pbyCCSGK 4764 PBYTE pbyCCSGK
4805 ) 4765 )
4806{ 4766{
4807 BYTE byMulticastCipher = KEY_CTL_INVALID; 4767 BYTE byMulticastCipher = KEY_CTL_INVALID;
diff --git a/drivers/staging/vt6656/wmgr.h b/drivers/staging/vt6656/wmgr.h
index c682a7fcbef..1e5b916aea1 100644
--- a/drivers/staging/vt6656/wmgr.h
+++ b/drivers/staging/vt6656/wmgr.h
@@ -84,37 +84,37 @@
84//mike define: make timer to expire after desired times 84//mike define: make timer to expire after desired times
85#define timer_expire(timer,next_tick) mod_timer(&timer, RUN_AT(next_tick)) 85#define timer_expire(timer,next_tick) mod_timer(&timer, RUN_AT(next_tick))
86 86
87typedef void (*TimerFunction)(ULONG); 87typedef void (*TimerFunction)(unsigned long);
88 88
89 89
90//+++ NDIS related 90//+++ NDIS related
91 91
92typedef UCHAR NDIS_802_11_MAC_ADDRESS[6]; 92typedef unsigned char NDIS_802_11_MAC_ADDRESS[ETH_ALEN];
93typedef struct _NDIS_802_11_AI_REQFI 93typedef struct _NDIS_802_11_AI_REQFI
94{ 94{
95 USHORT Capabilities; 95 unsigned short Capabilities;
96 USHORT ListenInterval; 96 unsigned short ListenInterval;
97 NDIS_802_11_MAC_ADDRESS CurrentAPAddress; 97 NDIS_802_11_MAC_ADDRESS CurrentAPAddress;
98} NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI; 98} NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI;
99 99
100typedef struct _NDIS_802_11_AI_RESFI 100typedef struct _NDIS_802_11_AI_RESFI
101{ 101{
102 USHORT Capabilities; 102 unsigned short Capabilities;
103 USHORT StatusCode; 103 unsigned short StatusCode;
104 USHORT AssociationId; 104 unsigned short AssociationId;
105} NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI; 105} NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI;
106 106
107typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION 107typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION
108{ 108{
109 ULONG Length; 109 unsigned long Length;
110 USHORT AvailableRequestFixedIEs; 110 unsigned short AvailableRequestFixedIEs;
111 NDIS_802_11_AI_REQFI RequestFixedIEs; 111 NDIS_802_11_AI_REQFI RequestFixedIEs;
112 ULONG RequestIELength; 112 unsigned long RequestIELength;
113 ULONG OffsetRequestIEs; 113 unsigned long OffsetRequestIEs;
114 USHORT AvailableResponseFixedIEs; 114 unsigned short AvailableResponseFixedIEs;
115 NDIS_802_11_AI_RESFI ResponseFixedIEs; 115 NDIS_802_11_AI_RESFI ResponseFixedIEs;
116 ULONG ResponseIELength; 116 unsigned long ResponseIELength;
117 ULONG OffsetResponseIEs; 117 unsigned long OffsetResponseIEs;
118} NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION; 118} NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION;
119 119
120 120
@@ -123,7 +123,7 @@ typedef struct tagSAssocInfo {
123 NDIS_802_11_ASSOCIATION_INFORMATION AssocInfo; 123 NDIS_802_11_ASSOCIATION_INFORMATION AssocInfo;
124 BYTE abyIEs[WLAN_BEACON_FR_MAXLEN+WLAN_BEACON_FR_MAXLEN]; 124 BYTE abyIEs[WLAN_BEACON_FR_MAXLEN+WLAN_BEACON_FR_MAXLEN];
125 // store ReqIEs set by OID_802_11_ASSOCIATION_INFORMATION 125 // store ReqIEs set by OID_802_11_ASSOCIATION_INFORMATION
126 ULONG RequestIELength; 126 unsigned long RequestIELength;
127 BYTE abyReqIEs[WLAN_BEACON_FR_MAXLEN]; 127 BYTE abyReqIEs[WLAN_BEACON_FR_MAXLEN];
128} SAssocInfo, *PSAssocInfo; 128} SAssocInfo, *PSAssocInfo;
129//--- 129//---
@@ -222,8 +222,8 @@ typedef enum tagWMAC_POWER_MODE {
222typedef struct tagSTxMgmtPacket { 222typedef struct tagSTxMgmtPacket {
223 223
224 PUWLAN_80211HDR p80211Header; 224 PUWLAN_80211HDR p80211Header;
225 UINT cbMPDULen; 225 unsigned int cbMPDULen;
226 UINT cbPayloadLen; 226 unsigned int cbPayloadLen;
227 227
228} STxMgmtPacket, *PSTxMgmtPacket; 228} STxMgmtPacket, *PSTxMgmtPacket;
229 229
@@ -233,9 +233,9 @@ typedef struct tagSRxMgmtPacket {
233 233
234 PUWLAN_80211HDR p80211Header; 234 PUWLAN_80211HDR p80211Header;
235 QWORD qwLocalTSF; 235 QWORD qwLocalTSF;
236 UINT cbMPDULen; 236 unsigned int cbMPDULen;
237 UINT cbPayloadLen; 237 unsigned int cbPayloadLen;
238 UINT uRSSI; 238 unsigned int uRSSI;
239 BYTE bySQ; 239 BYTE bySQ;
240 BYTE byRxRate; 240 BYTE byRxRate;
241 BYTE byRxChannel; 241 BYTE byRxChannel;
@@ -246,8 +246,7 @@ typedef struct tagSRxMgmtPacket {
246 246
247typedef struct tagSMgmtObject 247typedef struct tagSMgmtObject
248{ 248{
249 249 void *pAdapter;
250 PVOID pAdapter;
251 // MAC address 250 // MAC address
252 BYTE abyMACAddr[WLAN_ADDR_LEN]; 251 BYTE abyMACAddr[WLAN_ADDR_LEN];
253 252
@@ -273,21 +272,21 @@ typedef struct tagSMgmtObject
273 BOOL bCurrBSSIDFilterOn; 272 BOOL bCurrBSSIDFilterOn;
274 273
275 // Current state vars 274 // Current state vars
276 UINT uCurrChannel; 275 unsigned int uCurrChannel;
277 BYTE abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; 276 BYTE abyCurrSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
278 BYTE abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; 277 BYTE abyCurrExtSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
279 BYTE abyCurrSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; 278 BYTE abyCurrSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
280 BYTE abyCurrBSSID[WLAN_BSSID_LEN]; 279 BYTE abyCurrBSSID[WLAN_BSSID_LEN];
281 WORD wCurrCapInfo; 280 WORD wCurrCapInfo;
282 WORD wCurrAID; 281 WORD wCurrAID;
283 UINT uRSSITrigger; 282 unsigned int uRSSITrigger;
284 WORD wCurrATIMWindow; 283 WORD wCurrATIMWindow;
285 WORD wCurrBeaconPeriod; 284 WORD wCurrBeaconPeriod;
286 BOOL bIsDS; 285 BOOL bIsDS;
287 BYTE byERPContext; 286 BYTE byERPContext;
288 287
289 CMD_STATE eCommandState; 288 CMD_STATE eCommandState;
290 UINT uScanChannel; 289 unsigned int uScanChannel;
291 290
292 // Desire joinning BSS vars 291 // Desire joinning BSS vars
293 BYTE abyDesireSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; 292 BYTE abyDesireSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
@@ -302,22 +301,22 @@ typedef struct tagSMgmtObject
302 // Adhoc or AP configuration vars 301 // Adhoc or AP configuration vars
303 WORD wIBSSBeaconPeriod; 302 WORD wIBSSBeaconPeriod;
304 WORD wIBSSATIMWindow; 303 WORD wIBSSATIMWindow;
305 UINT uIBSSChannel; 304 unsigned int uIBSSChannel;
306 BYTE abyIBSSSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1]; 305 BYTE abyIBSSSuppRates[WLAN_IEHDR_LEN + WLAN_RATES_MAXLEN + 1];
307 BYTE byAPBBType; 306 BYTE byAPBBType;
308 BYTE abyWPAIE[MAX_WPA_IE_LEN]; 307 BYTE abyWPAIE[MAX_WPA_IE_LEN];
309 WORD wWPAIELen; 308 WORD wWPAIELen;
310 309
311 UINT uAssocCount; 310 unsigned int uAssocCount;
312 BOOL bMoreData; 311 BOOL bMoreData;
313 312
314 // Scan state vars 313 // Scan state vars
315 WMAC_SCAN_STATE eScanState; 314 WMAC_SCAN_STATE eScanState;
316 WMAC_SCAN_TYPE eScanType; 315 WMAC_SCAN_TYPE eScanType;
317 UINT uScanStartCh; 316 unsigned int uScanStartCh;
318 UINT uScanEndCh; 317 unsigned int uScanEndCh;
319 WORD wScanSteps; 318 WORD wScanSteps;
320 UINT uScanBSSType; 319 unsigned int uScanBSSType;
321 // Desire scannig vars 320 // Desire scannig vars
322 BYTE abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1]; 321 BYTE abyScanSSID[WLAN_IEHDR_LEN + WLAN_SSID_MAXLEN + 1];
323 BYTE abyScanBSSID[WLAN_BSSID_LEN]; 322 BYTE abyScanBSSID[WLAN_BSSID_LEN];
@@ -345,8 +344,8 @@ typedef struct tagSMgmtObject
345 BYTE abyPSTxMap[MAX_NODE_NUM + 1]; 344 BYTE abyPSTxMap[MAX_NODE_NUM + 1];
346 345
347 // managment command related 346 // managment command related
348 UINT uCmdBusy; 347 unsigned int uCmdBusy;
349 UINT uCmdHostAPBusy; 348 unsigned int uCmdHostAPBusy;
350 349
351 // managment packet pool 350 // managment packet pool
352 PBYTE pbyMgmtPacketPool; 351 PBYTE pbyMgmtPacketPool;
@@ -390,7 +389,7 @@ typedef struct tagSMgmtObject
390 BOOL bSwitchChannel; 389 BOOL bSwitchChannel;
391 BYTE byNewChannel; 390 BYTE byNewChannel;
392 PWLAN_IE_MEASURE_REP pCurrMeasureEIDRep; 391 PWLAN_IE_MEASURE_REP pCurrMeasureEIDRep;
393 UINT uLengthOfRepEIDs; 392 unsigned int uLengthOfRepEIDs;
394 BYTE abyCurrentMSRReq[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; 393 BYTE abyCurrentMSRReq[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN];
395 BYTE abyCurrentMSRRep[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN]; 394 BYTE abyCurrentMSRRep[sizeof(STxMgmtPacket) + WLAN_A3FR_MAXLEN];
396 BYTE abyIECountry[WLAN_A3FR_MAXLEN]; 395 BYTE abyIECountry[WLAN_A3FR_MAXLEN];
@@ -401,102 +400,61 @@ typedef struct tagSMgmtObject
401 400
402} SMgmtObject, *PSMgmtObject; 401} SMgmtObject, *PSMgmtObject;
403 402
404
405/*--------------------- Export Macros ------------------------------*/ 403/*--------------------- Export Macros ------------------------------*/
406 404
407
408/*--------------------- Export Functions --------------------------*/ 405/*--------------------- Export Functions --------------------------*/
409 406
407void vMgrObjectInit(void *hDeviceContext);
410 408
411void 409void vMgrAssocBeginSta(void *hDeviceContext,
412vMgrObjectInit( 410 PSMgmtObject pMgmt,
413 IN HANDLE hDeviceContext 411 PCMD_STATUS pStatus);
414 );
415 412
413void vMgrReAssocBeginSta(void *hDeviceContext,
414 PSMgmtObject pMgmt,
415 PCMD_STATUS pStatus);
416 416
417void 417void vMgrDisassocBeginSta(void *hDeviceContext,
418vMgrAssocBeginSta( 418 PSMgmtObject pMgmt,
419 IN HANDLE hDeviceContext, 419 PBYTE abyDestAddress,
420 IN PSMgmtObject pMgmt, 420 WORD wReason,
421 OUT PCMD_STATUS pStatus 421 PCMD_STATUS pStatus);
422 );
423 422
424VOID 423void vMgrAuthenBeginSta(void *hDeviceContext,
425vMgrReAssocBeginSta( 424 PSMgmtObject pMgmt,
426 IN HANDLE hDeviceContext, 425 PCMD_STATUS pStatus);
427 IN PSMgmtObject pMgmt,
428 OUT PCMD_STATUS pStatus
429 );
430 426
431VOID 427void vMgrCreateOwnIBSS(void *hDeviceContext,
432vMgrDisassocBeginSta( 428 PCMD_STATUS pStatus);
433 IN HANDLE hDeviceContext,
434 IN PSMgmtObject pMgmt,
435 IN PBYTE abyDestAddress,
436 IN WORD wReason,
437 OUT PCMD_STATUS pStatus
438 );
439 429
440VOID 430void vMgrJoinBSSBegin(void *hDeviceContext,
441vMgrAuthenBeginSta( 431 PCMD_STATUS pStatus);
442 IN HANDLE hDeviceContext,
443 IN PSMgmtObject pMgmt,
444 OUT PCMD_STATUS pStatus
445 );
446 432
447VOID 433void vMgrRxManagePacket(void *hDeviceContext,
448vMgrCreateOwnIBSS( 434 PSMgmtObject pMgmt,
449 IN HANDLE hDeviceContext, 435 PSRxMgmtPacket pRxPacket);
450 OUT PCMD_STATUS pStatus
451 );
452
453VOID
454vMgrJoinBSSBegin(
455 IN HANDLE hDeviceContext,
456 OUT PCMD_STATUS pStatus
457 );
458
459VOID
460vMgrRxManagePacket(
461 IN HANDLE hDeviceContext,
462 IN PSMgmtObject pMgmt,
463 IN PSRxMgmtPacket pRxPacket
464 );
465 436
466/* 437/*
467VOID 438void
468vMgrScanBegin( 439vMgrScanBegin(
469 IN HANDLE hDeviceContext, 440 void *hDeviceContext,
470 OUT PCMD_STATUS pStatus 441 PCMD_STATUS pStatus
471 ); 442 );
472*/ 443*/
473 444
474VOID 445void vMgrDeAuthenBeginSta(void *hDeviceContext,
475vMgrDeAuthenBeginSta( 446 PSMgmtObject pMgmt,
476 IN HANDLE hDeviceContext, 447 PBYTE abyDestAddress,
477 IN PSMgmtObject pMgmt, 448 WORD wReason,
478 IN PBYTE abyDestAddress, 449 PCMD_STATUS pStatus);
479 IN WORD wReason,
480 OUT PCMD_STATUS pStatus
481 );
482 450
483BOOL 451BOOL bMgrPrepareBeaconToSend(void *hDeviceContext,
484bMgrPrepareBeaconToSend( 452 PSMgmtObject pMgmt);
485 IN HANDLE hDeviceContext,
486 IN PSMgmtObject pMgmt
487 );
488 453
454BOOL bAdd_PMKID_Candidate(void *hDeviceContext,
455 PBYTE pbyBSSID,
456 PSRSNCapObject psRSNCapObj);
489 457
490BOOL 458void vFlush_PMKID_Candidate(void *hDeviceContext);
491bAdd_PMKID_Candidate (
492 IN HANDLE hDeviceContext,
493 IN PBYTE pbyBSSID,
494 IN PSRSNCapObject psRSNCapObj
495 );
496
497VOID
498vFlush_PMKID_Candidate (
499 IN HANDLE hDeviceContext
500 );
501 459
502#endif // __WMGR_H__ 460#endif /* __WMGR_H__ */
diff --git a/drivers/staging/vt6656/wpa.c b/drivers/staging/vt6656/wpa.c
index 5da671418b5..1fa6c9b88ed 100644
--- a/drivers/staging/vt6656/wpa.c
+++ b/drivers/staging/vt6656/wpa.c
@@ -68,9 +68,9 @@ const BYTE abyOUI05[4] = { 0x00, 0x50, 0xf2, 0x05 };
68 * 68 *
69-*/ 69-*/
70 70
71VOID 71void
72WPA_ClearRSN ( 72WPA_ClearRSN (
73 IN PKnownBSS pBSSList 73 PKnownBSS pBSSList
74 ) 74 )
75{ 75{
76 int ii; 76 int ii;
@@ -104,10 +104,10 @@ WPA_ClearRSN (
104 * Return Value: none. 104 * Return Value: none.
105 * 105 *
106-*/ 106-*/
107VOID 107void
108WPA_ParseRSN ( 108WPA_ParseRSN (
109 IN PKnownBSS pBSSList, 109 PKnownBSS pBSSList,
110 IN PWLAN_IE_RSN_EXT pRSN 110 PWLAN_IE_RSN_EXT pRSN
111 ) 111 )
112{ 112{
113 PWLAN_IE_RSN_AUTH pIE_RSN_Auth = NULL; 113 PWLAN_IE_RSN_AUTH pIE_RSN_Auth = NULL;
@@ -241,7 +241,7 @@ BOOL
241WPA_SearchRSN ( 241WPA_SearchRSN (
242 BYTE byCmd, 242 BYTE byCmd,
243 BYTE byEncrypt, 243 BYTE byEncrypt,
244 IN PKnownBSS pBSSList 244 PKnownBSS pBSSList
245 ) 245 )
246{ 246{
247 int ii; 247 int ii;
@@ -299,7 +299,7 @@ WPA_SearchRSN (
299-*/ 299-*/
300BOOL 300BOOL
301WPAb_Is_RSN ( 301WPAb_Is_RSN (
302 IN PWLAN_IE_RSN_EXT pRSN 302 PWLAN_IE_RSN_EXT pRSN
303 ) 303 )
304{ 304{
305 if (pRSN == NULL) 305 if (pRSN == NULL)
diff --git a/drivers/staging/vt6656/wpa.h b/drivers/staging/vt6656/wpa.h
index 9d9ce01d0c6..889489adbb8 100644
--- a/drivers/staging/vt6656/wpa.h
+++ b/drivers/staging/vt6656/wpa.h
@@ -58,27 +58,27 @@
58 58
59/*--------------------- Export Functions --------------------------*/ 59/*--------------------- Export Functions --------------------------*/
60 60
61VOID 61void
62WPA_ClearRSN( 62WPA_ClearRSN(
63 IN PKnownBSS pBSSList 63 PKnownBSS pBSSList
64 ); 64 );
65 65
66VOID 66void
67WPA_ParseRSN( 67WPA_ParseRSN(
68 IN PKnownBSS pBSSList, 68 PKnownBSS pBSSList,
69 IN PWLAN_IE_RSN_EXT pRSN 69 PWLAN_IE_RSN_EXT pRSN
70 ); 70 );
71 71
72BOOL 72BOOL
73WPA_SearchRSN( 73WPA_SearchRSN(
74 BYTE byCmd, 74 BYTE byCmd,
75 BYTE byEncrypt, 75 BYTE byEncrypt,
76 IN PKnownBSS pBSSList 76 PKnownBSS pBSSList
77 ); 77 );
78 78
79BOOL 79BOOL
80WPAb_Is_RSN( 80WPAb_Is_RSN(
81 IN PWLAN_IE_RSN_EXT pRSN 81 PWLAN_IE_RSN_EXT pRSN
82 ); 82 );
83 83
84#endif // __WPA_H__ 84#endif /* __WPA_H__ */
diff --git a/drivers/staging/vt6656/wpa2.c b/drivers/staging/vt6656/wpa2.c
index fa3aeedfb27..6d13190885d 100644
--- a/drivers/staging/vt6656/wpa2.c
+++ b/drivers/staging/vt6656/wpa2.c
@@ -71,9 +71,9 @@ const BYTE abyOUIPSK[4] = { 0x00, 0x0F, 0xAC, 0x02 };
71 * Return Value: none. 71 * Return Value: none.
72 * 72 *
73-*/ 73-*/
74VOID 74void
75WPA2_ClearRSN ( 75WPA2_ClearRSN (
76 IN PKnownBSS pBSSNode 76 PKnownBSS pBSSNode
77 ) 77 )
78{ 78{
79 int ii; 79 int ii;
@@ -106,10 +106,10 @@ WPA2_ClearRSN (
106 * Return Value: none. 106 * Return Value: none.
107 * 107 *
108-*/ 108-*/
109VOID 109void
110WPA2vParseRSN ( 110WPA2vParseRSN (
111 IN PKnownBSS pBSSNode, 111 PKnownBSS pBSSNode,
112 IN PWLAN_IE_RSN pRSN 112 PWLAN_IE_RSN pRSN
113 ) 113 )
114{ 114{
115 int i, j; 115 int i, j;
@@ -260,15 +260,14 @@ WPA2vParseRSN (
260 * Return Value: length of IEs. 260 * Return Value: length of IEs.
261 * 261 *
262-*/ 262-*/
263UINT 263unsigned int
264WPA2uSetIEs( 264WPA2uSetIEs(void *pMgmtHandle,
265 IN PVOID pMgmtHandle, 265 PWLAN_IE_RSN pRSNIEs
266 OUT PWLAN_IE_RSN pRSNIEs
267 ) 266 )
268{ 267{
269 PSMgmtObject pMgmt = (PSMgmtObject) pMgmtHandle; 268 PSMgmtObject pMgmt = (PSMgmtObject) pMgmtHandle;
270 PBYTE pbyBuffer = NULL; 269 PBYTE pbyBuffer = NULL;
271 UINT ii = 0; 270 unsigned int ii = 0;
272 PWORD pwPMKID = NULL; 271 PWORD pwPMKID = NULL;
273 272
274 if (pRSNIEs == NULL) { 273 if (pRSNIEs == NULL) {
@@ -337,20 +336,25 @@ WPA2uSetIEs(
337 } 336 }
338 pRSNIEs->len +=2; 337 pRSNIEs->len +=2;
339 338
340 if ((pMgmt->gsPMKIDCache.BSSIDInfoCount > 0) && 339 if ((pMgmt->gsPMKIDCache.BSSIDInfoCount > 0) &&
341 (pMgmt->bRoaming == TRUE) && 340 (pMgmt->bRoaming == TRUE) &&
342 (pMgmt->eAuthenMode == WMAC_AUTH_WPA2)) { 341 (pMgmt->eAuthenMode == WMAC_AUTH_WPA2)) {
343 // RSN PMKID 342 /* RSN PMKID, pointer to PMKID count */
344 pwPMKID = (PWORD)(&pRSNIEs->abyRSN[18]); // Point to PMKID count 343 pwPMKID = (PWORD)(&pRSNIEs->abyRSN[18]);
345 *pwPMKID = 0; // Initialize PMKID count 344 *pwPMKID = 0; /* Initialize PMKID count */
346 pbyBuffer = &pRSNIEs->abyRSN[20]; // Point to PMKID list 345 pbyBuffer = &pRSNIEs->abyRSN[20]; /* Point to PMKID list */
347 for (ii = 0; ii < pMgmt->gsPMKIDCache.BSSIDInfoCount; ii++) { 346 for (ii = 0; ii < pMgmt->gsPMKIDCache.BSSIDInfoCount; ii++) {
348 if ( !memcmp(&pMgmt->gsPMKIDCache.BSSIDInfo[ii].abyBSSID[0], pMgmt->abyCurrBSSID, U_ETHER_ADDR_LEN)) { 347 if (!memcmp(&pMgmt->
349 (*pwPMKID) ++; 348 gsPMKIDCache.BSSIDInfo[ii].abyBSSID[0],
350 memcpy(pbyBuffer, pMgmt->gsPMKIDCache.BSSIDInfo[ii].abyPMKID, 16); 349 pMgmt->abyCurrBSSID,
351 pbyBuffer += 16; 350 ETH_ALEN)) {
352 } 351 (*pwPMKID)++;
353 } 352 memcpy(pbyBuffer,
353 pMgmt->gsPMKIDCache.BSSIDInfo[ii].abyPMKID,
354 16);
355 pbyBuffer += 16;
356 }
357 }
354 if (*pwPMKID != 0) { 358 if (*pwPMKID != 0) {
355 pRSNIEs->len += (2 + (*pwPMKID)*16); 359 pRSNIEs->len += (2 + (*pwPMKID)*16);
356 } else { 360 } else {
diff --git a/drivers/staging/vt6656/wpa2.h b/drivers/staging/vt6656/wpa2.h
index e553b386900..429a910a5c5 100644
--- a/drivers/staging/vt6656/wpa2.h
+++ b/drivers/staging/vt6656/wpa2.h
@@ -45,7 +45,7 @@ typedef struct tagsPMKIDInfo {
45} PMKIDInfo, *PPMKIDInfo; 45} PMKIDInfo, *PPMKIDInfo;
46 46
47typedef struct tagSPMKIDCache { 47typedef struct tagSPMKIDCache {
48 ULONG BSSIDInfoCount; 48 unsigned long BSSIDInfoCount;
49 PMKIDInfo BSSIDInfo[MAX_PMKID_CACHE]; 49 PMKIDInfo BSSIDInfo[MAX_PMKID_CACHE];
50} SPMKIDCache, *PSPMKIDCache; 50} SPMKIDCache, *PSPMKIDCache;
51 51
@@ -58,21 +58,21 @@ typedef struct tagSPMKIDCache {
58 58
59/*--------------------- Export Functions --------------------------*/ 59/*--------------------- Export Functions --------------------------*/
60 60
61VOID 61void
62WPA2_ClearRSN ( 62WPA2_ClearRSN (
63 IN PKnownBSS pBSSNode 63 PKnownBSS pBSSNode
64 ); 64 );
65 65
66VOID 66void
67WPA2vParseRSN ( 67WPA2vParseRSN (
68 IN PKnownBSS pBSSNode, 68 PKnownBSS pBSSNode,
69 IN PWLAN_IE_RSN pRSN 69 PWLAN_IE_RSN pRSN
70 ); 70 );
71 71
72UINT 72unsigned int
73WPA2uSetIEs( 73WPA2uSetIEs(
74 IN PVOID pMgmtHandle, 74 void *pMgmtHandle,
75 OUT PWLAN_IE_RSN pRSNIEs 75 PWLAN_IE_RSN pRSNIEs
76 ); 76 );
77 77
78#endif // __WPA2_H__ 78#endif /* __WPA2_H__ */
diff --git a/drivers/staging/vt6656/wpactl.c b/drivers/staging/vt6656/wpactl.c
index 4555bc0448b..961f583368a 100644
--- a/drivers/staging/vt6656/wpactl.c
+++ b/drivers/staging/vt6656/wpactl.c
@@ -103,7 +103,7 @@ static int wpa_init_wpadev(PSDevice pDevice)
103 103
104 wpadev_priv = netdev_priv(pDevice->wpadev); 104 wpadev_priv = netdev_priv(pDevice->wpadev);
105 *wpadev_priv = *pDevice; 105 *wpadev_priv = *pDevice;
106 memcpy(pDevice->wpadev->dev_addr, dev->dev_addr, U_ETHER_ADDR_LEN); 106 memcpy(pDevice->wpadev->dev_addr, dev->dev_addr, ETH_ALEN);
107 pDevice->wpadev->base_addr = dev->base_addr; 107 pDevice->wpadev->base_addr = dev->base_addr;
108 pDevice->wpadev->irq = dev->irq; 108 pDevice->wpadev->irq = dev->irq;
109 pDevice->wpadev->mem_start = dev->mem_start; 109 pDevice->wpadev->mem_start = dev->mem_start;
@@ -489,7 +489,7 @@ static int wpa_set_disassociate(PSDevice pDevice,
489 spin_lock_irq(&pDevice->lock); 489 spin_lock_irq(&pDevice->lock);
490 if (pDevice->bLinkPass) { 490 if (pDevice->bLinkPass) {
491 if (!memcmp(param->addr, pMgmt->abyCurrBSSID, 6)) 491 if (!memcmp(param->addr, pMgmt->abyCurrBSSID, 6))
492 bScheduleCommand((HANDLE)pDevice, WLAN_CMD_DISASSOCIATE, NULL); 492 bScheduleCommand((void *) pDevice, WLAN_CMD_DISASSOCIATE, NULL);
493 } 493 }
494 spin_unlock_irq(&pDevice->lock); 494 spin_unlock_irq(&pDevice->lock);
495 495
@@ -513,7 +513,7 @@ static int wpa_set_disassociate(PSDevice pDevice,
513 */ 513 */
514 514
515static int wpa_set_scan(PSDevice pDevice, 515static int wpa_set_scan(PSDevice pDevice,
516 struct viawget_wpa_param *param) 516 struct viawget_wpa_param *param)
517{ 517{
518 int ret = 0; 518 int ret = 0;
519 519
@@ -531,9 +531,11 @@ memcpy(pItemSSID->abySSID, param->u.scan_req.ssid, param->u.scan_req.ssid_len);
531pItemSSID->len = param->u.scan_req.ssid_len; 531pItemSSID->len = param->u.scan_req.ssid_len;
532 532
533 spin_lock_irq(&pDevice->lock); 533 spin_lock_irq(&pDevice->lock);
534 BSSvClearBSSList((HANDLE)pDevice, pDevice->bLinkPass); 534 BSSvClearBSSList((void *) pDevice, pDevice->bLinkPass);
535 // bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, NULL); 535 /* bScheduleCommand((void *) pDevice, WLAN_CMD_BSSID_SCAN, NULL); */
536 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 536 bScheduleCommand((void *) pDevice,
537 WLAN_CMD_BSSID_SCAN,
538 pMgmt->abyDesireSSID);
537 spin_unlock_irq(&pDevice->lock); 539 spin_unlock_irq(&pDevice->lock);
538 540
539 return ret; 541 return ret;
@@ -676,13 +678,12 @@ static int wpa_get_scan(PSDevice pDevice,
676 count++; 678 count++;
677 }; 679 };
678 680
679 pBuf = kmalloc(sizeof(struct viawget_scan_result) * count, (int)GFP_ATOMIC); 681 pBuf = kcalloc(count, sizeof(struct viawget_scan_result), (int)GFP_ATOMIC);
680 682
681 if (pBuf == NULL) { 683 if (pBuf == NULL) {
682 ret = -ENOMEM; 684 ret = -ENOMEM;
683 return ret; 685 return ret;
684 } 686 }
685 memset(pBuf, 0, sizeof(struct viawget_scan_result) * count);
686 scan_buf = (struct viawget_scan_result *)pBuf; 687 scan_buf = (struct viawget_scan_result *)pBuf;
687 pBSS = &(pMgmt->sBSSList[0]); 688 pBSS = &(pMgmt->sBSSList[0]);
688 for (ii = 0, jj = 0; ii < MAX_BSS_NUM ; ii++) { 689 for (ii = 0, jj = 0; ii < MAX_BSS_NUM ; ii++) {
@@ -886,12 +887,14 @@ static int wpa_set_associate(PSDevice pDevice,
886 887
887 if (pCurr == NULL){ 888 if (pCurr == NULL){
888 printk("wpa_set_associate---->hidden mode site survey before associate.......\n"); 889 printk("wpa_set_associate---->hidden mode site survey before associate.......\n");
889 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_BSSID_SCAN, pMgmt->abyDesireSSID); 890 bScheduleCommand((void *) pDevice,
891 WLAN_CMD_BSSID_SCAN,
892 pMgmt->abyDesireSSID);
890 }; 893 };
891} 894}
892/****************************************************************/ 895/****************************************************************/
893 896
894 bScheduleCommand((HANDLE) pDevice, WLAN_CMD_SSID, NULL); 897 bScheduleCommand((void *) pDevice, WLAN_CMD_SSID, NULL);
895 spin_unlock_irq(&pDevice->lock); 898 spin_unlock_irq(&pDevice->lock);
896 899
897 return ret; 900 return ret;
@@ -922,7 +925,7 @@ int wpa_ioctl(PSDevice pDevice, struct iw_point *p)
922 p->length > VIAWGET_WPA_MAX_BUF_SIZE || !p->pointer) 925 p->length > VIAWGET_WPA_MAX_BUF_SIZE || !p->pointer)
923 return -EINVAL; 926 return -EINVAL;
924 927
925 param = (struct viawget_wpa_param *) kmalloc((int)p->length, (int)GFP_KERNEL); 928 param = kmalloc((int)p->length, (int)GFP_KERNEL);
926 if (param == NULL) 929 if (param == NULL)
927 return -ENOMEM; 930 return -ENOMEM;
928 931
diff --git a/drivers/staging/vt6656/wpactl.h b/drivers/staging/vt6656/wpactl.h
index 56179f01311..00c8451ab50 100644
--- a/drivers/staging/vt6656/wpactl.h
+++ b/drivers/staging/vt6656/wpactl.h
@@ -52,9 +52,7 @@ typedef enum { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE,
52#define GENERIC_INFO_ELEM 0xdd 52#define GENERIC_INFO_ELEM 0xdd
53#define RSN_INFO_ELEM 0x30 53#define RSN_INFO_ELEM 0x30
54 54
55 55typedef unsigned long long NDIS_802_11_KEY_RSC;
56
57typedef ULONGLONG NDIS_802_11_KEY_RSC;
58 56
59/*--------------------- Export Classes ----------------------------*/ 57/*--------------------- Export Classes ----------------------------*/
60 58
@@ -66,7 +64,4 @@ int wpa_set_wpadev(PSDevice pDevice, int val);
66int wpa_ioctl(PSDevice pDevice, struct iw_point *p); 64int wpa_ioctl(PSDevice pDevice, struct iw_point *p);
67int wpa_set_keys(PSDevice pDevice, void *ctx, BOOL fcpfkernel); 65int wpa_set_keys(PSDevice pDevice, void *ctx, BOOL fcpfkernel);
68 66
69#endif // __WPACL_H__ 67#endif /* __WPACL_H__ */
70
71
72