staging: tidspbridge: ioremap dsp sync addr
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / staging / vt6656 / rxtx.h
CommitLineData
92b96797
FB
1/*
2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3 * All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * File: rxtx.h
20 *
21 * Purpose:
22 *
23 * Author: Jerry Chen
24 *
25 * Date: Jun. 27, 2002
26 *
27 */
28
92b96797
FB
29#ifndef __RXTX_H__
30#define __RXTX_H__
31
92b96797 32#include "ttype.h"
92b96797 33#include "device.h"
92b96797 34#include "wcmd.h"
92b96797
FB
35
36/*--------------------- Export Definitions -------------------------*/
37
38/*--------------------- Export Classes ----------------------------*/
39
40//
41// RTS buffer header
42//
43typedef struct tagSRTSDataF {
44 WORD wFrameControl;
45 WORD wDurationID;
9a0e756c
AM
46 BYTE abyRA[ETH_ALEN];
47 BYTE abyTA[ETH_ALEN];
193a823c 48} SRTSDataF, *PSRTSDataF;
92b96797
FB
49
50//
51// CTS buffer header
52//
53typedef struct tagSCTSDataF {
54 WORD wFrameControl;
55 WORD wDurationID;
9a0e756c 56 BYTE abyRA[ETH_ALEN];
92b96797 57 WORD wReserved;
193a823c 58} SCTSDataF, *PSCTSDataF;
92b96797
FB
59
60//
61// MICHDR data header
62//
63typedef struct tagSMICHDR {
64 DWORD adwHDR0[4];
65 DWORD adwHDR1[4];
66 DWORD adwHDR2[4];
193a823c 67} SMICHDR, *PSMICHDR;
92b96797
FB
68
69
70typedef struct tagSTX_NAF_G_RTS
71{
72 //RsvTime
73 WORD wRTSTxRrvTime_ba;
74 WORD wRTSTxRrvTime_aa;
75 WORD wRTSTxRrvTime_bb;
76 WORD wReserved2;
77 WORD wTxRrvTime_b;
78 WORD wTxRrvTime_a;
79
80 //RTS
81 BYTE byRTSSignalField_b;
82 BYTE byRTSServiceField_b;
83 WORD wRTSTransmitLength_b;
84 BYTE byRTSSignalField_a;
85 BYTE byRTSServiceField_a;
86 WORD wRTSTransmitLength_a;
87 WORD wRTSDuration_ba;
88 WORD wRTSDuration_aa;
89 WORD wRTSDuration_bb;
90 WORD wReserved3;
91 SRTSDataF sRTS;
92
93 //Data
94 BYTE bySignalField_b;
95 BYTE byServiceField_b;
96 WORD wTransmitLength_b;
97 BYTE bySignalField_a;
98 BYTE byServiceField_a;
99 WORD wTransmitLength_a;
100 WORD wDuration_b;
101 WORD wDuration_a;
102 WORD wTimeStampOff_b;
103 WORD wTimeStampOff_a;
104
193a823c 105} TX_NAF_G_RTS, *PTX_NAF_G_RTS;
92b96797
FB
106
107typedef struct tagSTX_NAF_G_RTS_MIC
108{
109 //RsvTime
110 WORD wRTSTxRrvTime_ba;
111 WORD wRTSTxRrvTime_aa;
112 WORD wRTSTxRrvTime_bb;
113 WORD wReserved2;
114 WORD wTxRrvTime_b;
115 WORD wTxRrvTime_a;
116
117 SMICHDR sMICHDR;
118
119 //RTS
120 BYTE byRTSSignalField_b;
121 BYTE byRTSServiceField_b;
122 WORD wRTSTransmitLength_b;
123 BYTE byRTSSignalField_a;
124 BYTE byRTSServiceField_a;
125 WORD wRTSTransmitLength_a;
126 WORD wRTSDuration_ba;
127 WORD wRTSDuration_aa;
128 WORD wRTSDuration_bb;
129 WORD wReserved3;
130 SRTSDataF sRTS;
131
132 //Data
133 BYTE bySignalField_b;
134 BYTE byServiceField_b;
135 WORD wTransmitLength_b;
136 BYTE bySignalField_a;
137 BYTE byServiceField_a;
138 WORD wTransmitLength_a;
139 WORD wDuration_b;
140 WORD wDuration_a;
141 WORD wTimeStampOff_b;
142 WORD wTimeStampOff_a;
143
193a823c 144} TX_NAF_G_RTS_MIC, *PTX_NAF_G_RTS_MIC;
92b96797
FB
145
146typedef struct tagSTX_NAF_G_CTS
147{
148 //RsvTime
149 WORD wCTSTxRrvTime_ba;
150 WORD wReserved2;
151 WORD wTxRrvTime_b;
152 WORD wTxRrvTime_a;
153
154 //CTS
155 BYTE byCTSSignalField_b;
156 BYTE byCTSServiceField_b;
157 WORD wCTSTransmitLength_b;
158 WORD wCTSDuration_ba;
159 WORD wReserved3;
160 SCTSDataF sCTS;
161
162 //Data
163 BYTE bySignalField_b;
164 BYTE byServiceField_b;
165 WORD wTransmitLength_b;
166 BYTE bySignalField_a;
167 BYTE byServiceField_a;
168 WORD wTransmitLength_a;
169 WORD wDuration_b;
170 WORD wDuration_a;
171 WORD wTimeStampOff_b;
172 WORD wTimeStampOff_a;
173
193a823c 174} TX_NAF_G_CTS, *PTX_NAF_G_CTS;
92b96797
FB
175
176
177typedef struct tagSTX_NAF_G_CTS_MIC
178{
179 //RsvTime
180 WORD wCTSTxRrvTime_ba;
181 WORD wReserved2;
182 WORD wTxRrvTime_b;
183 WORD wTxRrvTime_a;
184
185
186 SMICHDR sMICHDR;
187
188 //CTS
189 BYTE byCTSSignalField_b;
190 BYTE byCTSServiceField_b;
191 WORD wCTSTransmitLength_b;
192 WORD wCTSDuration_ba;
193 WORD wReserved3;
194 SCTSDataF sCTS;
195
196 //Data
197 BYTE bySignalField_b;
198 BYTE byServiceField_b;
199 WORD wTransmitLength_b;
200 BYTE bySignalField_a;
201 BYTE byServiceField_a;
202 WORD wTransmitLength_a;
203 WORD wDuration_b;
204 WORD wDuration_a;
205 WORD wTimeStampOff_b;
206 WORD wTimeStampOff_a;
207
193a823c 208} TX_NAF_G_CTS_MIC, *PTX_NAF_G_CTS_MIC;
92b96797
FB
209
210
211typedef struct tagSTX_NAF_G_BEACON
212{
213 WORD wFIFOCtl;
214 WORD wTimeStamp;
215
216 //CTS
217 BYTE byCTSSignalField_b;
218 BYTE byCTSServiceField_b;
219 WORD wCTSTransmitLength_b;
220 WORD wCTSDuration_ba;
221 WORD wReserved1;
222 SCTSDataF sCTS;
223
224 //Data
225 BYTE bySignalField_a;
226 BYTE byServiceField_a;
227 WORD wTransmitLength_a;
228 WORD wDuration_a;
229 WORD wTimeStampOff_a;
230
231
193a823c 232} TX_NAF_G_BEACON, *PTX_NAF_G_BEACON;
92b96797
FB
233
234
235typedef struct tagSTX_NAF_AB_RTS
236{
237 //RsvTime
238 WORD wRTSTxRrvTime_ab;
239 WORD wTxRrvTime_ab;
240
241 //RTS
242 BYTE byRTSSignalField_ab;
243 BYTE byRTSServiceField_ab;
244 WORD wRTSTransmitLength_ab;
245 WORD wRTSDuration_ab;
246 WORD wReserved2;
247 SRTSDataF sRTS;
248
249 //Data
250 BYTE bySignalField_ab;
251 BYTE byServiceField_ab;
252 WORD wTransmitLength_ab;
253 WORD wDuration_ab;
254 WORD wTimeStampOff_ab;
255
256
193a823c 257} TX_NAF_AB_RTS, *PTX_NAF_AB_RTS;
92b96797
FB
258
259
260typedef struct tagSTX_NAF_AB_RTS_MIC
261{
262 //RsvTime
263 WORD wRTSTxRrvTime_ab;
264 WORD wTxRrvTime_ab;
265
266 SMICHDR sMICHDR;
267
268 //RTS
269 BYTE byRTSSignalField_ab;
270 BYTE byRTSServiceField_ab;
271 WORD wRTSTransmitLength_ab;
272 WORD wRTSDuration_ab;
273 WORD wReserved2;
274 SRTSDataF sRTS;
275
276 //Data
277 BYTE bySignalField_ab;
278 BYTE byServiceField_ab;
279 WORD wTransmitLength_ab;
280 WORD wDuration_ab;
281 WORD wTimeStampOff_ab;
282
283
193a823c 284} TX_NAF_AB_RTS_MIC, *PTX_NAF_AB_RTS_MIC;
92b96797
FB
285
286
287
288typedef struct tagSTX_NAF_AB_CTS
289{
290 //RsvTime
291 WORD wReserved2;
292 WORD wTxRrvTime_ab;
293
294 //Data
295 BYTE bySignalField_ab;
296 BYTE byServiceField_ab;
297 WORD wTransmitLength_ab;
298 WORD wDuration_ab;
299 WORD wTimeStampOff_ab;
300
193a823c 301} TX_NAF_AB_CTS, *PTX_NAF_AB_CTS;
92b96797
FB
302
303typedef struct tagSTX_NAF_AB_CTS_MIC
304{
305 //RsvTime
306 WORD wReserved2;
307 WORD wTxRrvTime_ab;
308
309 SMICHDR sMICHDR;
310
311 //Data
312 BYTE bySignalField_ab;
313 BYTE byServiceField_ab;
314 WORD wTransmitLength_ab;
315 WORD wDuration_ab;
316 WORD wTimeStampOff_ab;
317
193a823c 318} TX_NAF_AB_CTS_MIC, *PTX_NAF_AB_CTS_MIC;
92b96797
FB
319
320
321typedef struct tagSTX_NAF_AB_BEACON
322{
323 WORD wFIFOCtl;
324 WORD wTimeStamp;
325
326 //Data
327 BYTE bySignalField_ab;
328 BYTE byServiceField_ab;
329 WORD wTransmitLength_ab;
330 WORD wDuration_ab;
331 WORD wTimeStampOff_ab;
332
193a823c 333} TX_NAF_AB_BEACON, *PTX_NAF_AB_BEACON;
92b96797
FB
334
335typedef struct tagSTX_AF_G_RTS
336{
337 //RsvTime
338 WORD wRTSTxRrvTime_ba;
339 WORD wRTSTxRrvTime_aa;
340 WORD wRTSTxRrvTime_bb;
341 WORD wReserved2;
342 WORD wTxRrvTime_b;
343 WORD wTxRrvTime_a;
344
345 //RTS
346 BYTE byRTSSignalField_b;
347 BYTE byRTSServiceField_b;
348 WORD wRTSTransmitLength_b;
349 BYTE byRTSSignalField_a;
350 BYTE byRTSServiceField_a;
351 WORD wRTSTransmitLength_a;
352 WORD wRTSDuration_ba;
353 WORD wRTSDuration_aa;
354 WORD wRTSDuration_bb;
355 WORD wReserved3;
356 WORD wRTSDuration_ba_f0;
357 WORD wRTSDuration_aa_f0;
358 WORD wRTSDuration_ba_f1;
359 WORD wRTSDuration_aa_f1;
360 SRTSDataF sRTS;
361
362 //Data
363 BYTE bySignalField_b;
364 BYTE byServiceField_b;
365 WORD wTransmitLength_b;
366 BYTE bySignalField_a;
367 BYTE byServiceField_a;
368 WORD wTransmitLength_a;
369 WORD wDuration_b;
370 WORD wDuration_a;
371 WORD wDuration_a_f0;
372 WORD wDuration_a_f1;
373 WORD wTimeStampOff_b;
374 WORD wTimeStampOff_a;
375
193a823c 376} TX_AF_G_RTS, *PTX_AF_G_RTS;
92b96797
FB
377
378
379typedef struct tagSTX_AF_G_RTS_MIC
380{
381 //RsvTime
382 WORD wRTSTxRrvTime_ba;
383 WORD wRTSTxRrvTime_aa;
384 WORD wRTSTxRrvTime_bb;
385 WORD wReserved2;
386 WORD wTxRrvTime_b;
387 WORD wTxRrvTime_a;
388
389 SMICHDR sMICHDR;
390
391 //RTS
392 BYTE byRTSSignalField_b;
393 BYTE byRTSServiceField_b;
394 WORD wRTSTransmitLength_b;
395 BYTE byRTSSignalField_a;
396 BYTE byRTSServiceField_a;
397 WORD wRTSTransmitLength_a;
398 WORD wRTSDuration_ba;
399 WORD wRTSDuration_aa;
400 WORD wRTSDuration_bb;
401 WORD wReserved3;
402 WORD wRTSDuration_ba_f0;
403 WORD wRTSDuration_aa_f0;
404 WORD wRTSDuration_ba_f1;
405 WORD wRTSDuration_aa_f1;
406 SRTSDataF sRTS;
407
408 //Data
409 BYTE bySignalField_b;
410 BYTE byServiceField_b;
411 WORD wTransmitLength_b;
412 BYTE bySignalField_a;
413 BYTE byServiceField_a;
414 WORD wTransmitLength_a;
415 WORD wDuration_b;
416 WORD wDuration_a;
417 WORD wDuration_a_f0;
418 WORD wDuration_a_f1;
419 WORD wTimeStampOff_b;
420 WORD wTimeStampOff_a;
421
193a823c 422} TX_AF_G_RTS_MIC, *PTX_AF_G_RTS_MIC;
92b96797
FB
423
424
425
426typedef struct tagSTX_AF_G_CTS
427{
428 //RsvTime
429 WORD wCTSTxRrvTime_ba;
430 WORD wReserved2;
431 WORD wTxRrvTime_b;
432 WORD wTxRrvTime_a;
433
434 //CTS
435 BYTE byCTSSignalField_b;
436 BYTE byCTSServiceField_b;
437 WORD wCTSTransmitLength_b;
438 WORD wCTSDuration_ba;
439 WORD wReserved3;
440 WORD wCTSDuration_ba_f0;
441 WORD wCTSDuration_ba_f1;
442 SCTSDataF sCTS;
443
444 //Data
445 BYTE bySignalField_b;
446 BYTE byServiceField_b;
447 WORD wTransmitLength_b;
448 BYTE bySignalField_a;
449 BYTE byServiceField_a;
450 WORD wTransmitLength_a;
451 WORD wDuration_b;
452 WORD wDuration_a;
453 WORD wDuration_a_f0;
454 WORD wDuration_a_f1;
455 WORD wTimeStampOff_b;
456 WORD wTimeStampOff_a;
457
193a823c 458} TX_AF_G_CTS, *PTX_AF_G_CTS;
92b96797
FB
459
460
461typedef struct tagSTX_AF_G_CTS_MIC
462{
463 //RsvTime
464 WORD wCTSTxRrvTime_ba;
465 WORD wReserved2;
466 WORD wTxRrvTime_b;
467 WORD wTxRrvTime_a;
468
469
470 SMICHDR sMICHDR;
471
472 //CTS
473 BYTE byCTSSignalField_b;
474 BYTE byCTSServiceField_b;
475 WORD wCTSTransmitLength_b;
476 WORD wCTSDuration_ba;
477 WORD wReserved3;
478 WORD wCTSDuration_ba_f0;
479 WORD wCTSDuration_ba_f1;
480 SCTSDataF sCTS;
481
482 //Data
483 BYTE bySignalField_b;
484 BYTE byServiceField_b;
485 WORD wTransmitLength_b;
486 BYTE bySignalField_a;
487 BYTE byServiceField_a;
488 WORD wTransmitLength_a;
489 WORD wDuration_b;
490 WORD wDuration_a;
491 WORD wDuration_a_f0;
492 WORD wDuration_a_f1;
493 WORD wTimeStampOff_b;
494 WORD wTimeStampOff_a;
495
193a823c 496} TX_AF_G_CTS_MIC, *PTX_AF_G_CTS_MIC;
92b96797
FB
497
498
499
500typedef struct tagSTX_AF_A_RTS
501{
502 //RsvTime
503 WORD wRTSTxRrvTime_a;
504 WORD wTxRrvTime_a;
505
506 //RTS
507 BYTE byRTSSignalField_a;
508 BYTE byRTSServiceField_a;
509 WORD wRTSTransmitLength_a;
510 WORD wRTSDuration_a;
511 WORD wReserved2;
512 WORD wRTSDuration_a_f0;
513 WORD wRTSDuration_a_f1;
514 SRTSDataF sRTS;
515
516 //Data
517 BYTE bySignalField_a;
518 BYTE byServiceField_a;
519 WORD wTransmitLength_a;
520 WORD wDuration_a;
521 WORD wTimeStampOff_a;
522 WORD wDuration_a_f0;
523 WORD wDuration_a_f1;
524
193a823c 525} TX_AF_A_RTS, *PTX_AF_A_RTS;
92b96797
FB
526
527
528typedef struct tagSTX_AF_A_RTS_MIC
529{
530 //RsvTime
531 WORD wRTSTxRrvTime_a;
532 WORD wTxRrvTime_a;
533
534 SMICHDR sMICHDR;
535
536 //RTS
537 BYTE byRTSSignalField_a;
538 BYTE byRTSServiceField_a;
539 WORD wRTSTransmitLength_a;
540 WORD wRTSDuration_a;
541 WORD wReserved2;
542 WORD wRTSDuration_a_f0;
543 WORD wRTSDuration_a_f1;
544 SRTSDataF sRTS;
545
546 //Data
547 BYTE bySignalField_a;
548 BYTE byServiceField_a;
549 WORD wTransmitLength_a;
550 WORD wDuration_a;
551 WORD wTimeStampOff_a;
552 WORD wDuration_a_f0;
553 WORD wDuration_a_f1;
554
193a823c 555} TX_AF_A_RTS_MIC, *PTX_AF_A_RTS_MIC;
92b96797
FB
556
557
558
559typedef struct tagSTX_AF_A_CTS
560{
561 //RsvTime
562 WORD wReserved2;
563 WORD wTxRrvTime_a;
564
565 //Data
566 BYTE bySignalField_a;
567 BYTE byServiceField_a;
568 WORD wTransmitLength_a;
569 WORD wDuration_a;
570 WORD wTimeStampOff_a;
571 WORD wDuration_a_f0;
572 WORD wDuration_a_f1;
573
193a823c 574} TX_AF_A_CTS, *PTX_AF_A_CTS;
92b96797
FB
575
576
577typedef struct tagSTX_AF_A_CTS_MIC
578{
579 //RsvTime
580 WORD wReserved2;
581 WORD wTxRrvTime_a;
582
583 SMICHDR sMICHDR;
584
585 //Data
586 BYTE bySignalField_a;
587 BYTE byServiceField_a;
588 WORD wTransmitLength_a;
589 WORD wDuration_a;
590 WORD wTimeStampOff_a;
591 WORD wDuration_a_f0;
592 WORD wDuration_a_f1;
593
193a823c 594} TX_AF_A_CTS_MIC, *PTX_AF_A_CTS_MIC;
92b96797
FB
595
596
597//
598// union with all of the TX Buffer Type
599//
600typedef union tagUTX_BUFFER_CONTAINER
601{
602 TX_NAF_G_RTS RTS_G;
603 TX_NAF_G_RTS_MIC RTS_G_MIC;
604 TX_NAF_G_CTS CTS_G;
605 TX_NAF_G_CTS_MIC CTS_G_MIC;
606 //TX_NAF_G_BEACON Beacon_G;
607 TX_NAF_AB_RTS RTS_AB;
608 TX_NAF_AB_RTS_MIC RTS_AB_MIC;
609 TX_NAF_AB_CTS CTS_AB;
610 TX_NAF_AB_CTS_MIC CTS_AB_MIC;
611 //TX_NAF_AB_BEACON Beacon_AB;
612 TX_AF_G_RTS RTS_G_AutoFB;
613 TX_AF_G_RTS_MIC RTS_G_AutoFB_MIC;
614 TX_AF_G_CTS CTS_G_AutoFB;
615 TX_AF_G_CTS_MIC CTS_G_AutoFB_MIC;
616 TX_AF_A_RTS RTS_A_AutoFB;
617 TX_AF_A_RTS_MIC RTS_A_AutoFB_MIC;
618 TX_AF_A_CTS CTS_A_AutoFB;
619 TX_AF_A_CTS_MIC CTS_A_AutoFB_MIC;
620
193a823c 621} TX_BUFFER_CONTAINER, *PTX_BUFFER_CONTAINER;
92b96797
FB
622
623
624//
625// Remote NDIS message format
626//
627typedef struct tagSTX_BUFFER
628{
629 BYTE byType;
630 BYTE byPKTNO;
631 WORD wTxByteCount;
632
633 DWORD adwTxKey[4];
634 WORD wFIFOCtl;
635 WORD wTimeStamp;
636 WORD wFragCtl;
637 WORD wReserved;
638
639
640 // Actual message
641 TX_BUFFER_CONTAINER BufferHeader;
642
193a823c 643} TX_BUFFER, *PTX_BUFFER;
92b96797
FB
644
645
646//
647// Remote NDIS message format
648//
649typedef struct tagSBEACON_BUFFER
650{
651 BYTE byType;
652 BYTE byPKTNO;
653 WORD wTxByteCount;
654
655 WORD wFIFOCtl;
656 WORD wTimeStamp;
657
658 // Actual message
659 TX_BUFFER_CONTAINER BufferHeader;
660
193a823c 661} BEACON_BUFFER, *PBEACON_BUFFER;
92b96797
FB
662
663
664/*--------------------- Export Variables --------------------------*/
665
666/*--------------------- Export Functions --------------------------*/
667
92b96797
FB
668BOOL
669bPacketToWirelessUsb(
592ccfeb
AM
670 PSDevice pDevice,
671 BYTE byPktType,
672 PBYTE usbPacketBuf,
673 BOOL bNeedEncrypt,
cc856e61
AM
674 unsigned int cbPayloadSize,
675 unsigned int uDMAIdx,
592ccfeb
AM
676 PSEthernetHeader psEthHeader,
677 PBYTE pPacket,
678 PSKeyItem pTransmitKey,
cc856e61 679 unsigned int uNodeIndex,
592ccfeb 680 WORD wCurrentRate,
cc856e61
AM
681 unsigned int *pcbHeaderLen,
682 unsigned int *pcbTotalLen
92b96797
FB
683 );
684
8611a29a 685void vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb);
6487c49e
AM
686int nsDMA_tx_packet(PSDevice pDevice,
687 unsigned int uDMAIdx,
688 struct sk_buff *skb);
92b96797
FB
689CMD_STATUS csMgmt_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket);
690CMD_STATUS csBeacon_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket);
cc856e61
AM
691BOOL bRelayPacketSend(PSDevice pDevice, PBYTE pbySkbData,
692 unsigned int uDataLen, unsigned int uNodeIndex);
92b96797 693
e7b07d1d 694#endif /* __RXTX_H__ */