]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - drivers/staging/wilc1000/wilc_wlan_if.h
staging: wilc1000: use g_linux_wlan->txq_spinlock not the pointer of it
[karo-tx-linux.git] / drivers / staging / wilc1000 / wilc_wlan_if.h
1 /* ///////////////////////////////////////////////////////////////////////// */
2 /*  */
3 /* Copyright (c) Atmel Corporation.  All rights reserved. */
4 /*  */
5 /* Module Name:  wilc_wlan_if.h */
6 /*  */
7 /*  */
8 /* ///////////////////////////////////////////////////////////////////////// */
9
10 #ifndef WILC_WLAN_IF_H
11 #define WILC_WLAN_IF_H
12
13 /* #define MEMORY_STATIC */
14 /* #define USE_OLD_SPI_SW */
15
16 #include "wilc_oswrapper.h"
17 #include "linux_wlan_common.h"
18
19 /********************************************
20  *
21  *      Debug Flags
22  *
23  ********************************************/
24
25 #define N_INIT                  0x00000001
26 #define N_ERR                   0x00000002
27 #define N_TXQ                   0x00000004
28 #define N_INTR                  0x00000008
29 #define N_RXQ                   0x00000010
30
31 /********************************************
32  *
33  *      Host Interface Defines
34  *
35  ********************************************/
36
37 #define HIF_SDIO                (0)
38 #define HIF_SPI                 BIT(0)
39 #define HIF_SDIO_GPIO_IRQ       BIT(2)
40
41 /********************************************
42  *
43  *      Tx/Rx Buffer Size Defines
44  *
45  ********************************************/
46
47 #define CE_TX_BUFFER_SIZE       (64 * 1024)
48 #define CE_RX_BUFFER_SIZE       (384 * 1024)
49
50 /********************************************
51  *
52  *      Wlan Interface Defines
53  *
54  ********************************************/
55
56 typedef struct {
57         u32 read_write:         1;
58         u32 function:           3;
59         u32 raw:                1;
60         u32 address:            17;
61         u32 data:               8;
62 } sdio_cmd52_t;
63
64 typedef struct {
65         /* struct { */
66         u32 read_write:         1;
67         u32 function:           3;
68         u32 block_mode:         1;
69         u32 increment:          1;
70         u32 address:            17;
71         u32 count:              9;
72         /* } bit; */
73         u8 *buffer;
74         u32 block_size;
75 } sdio_cmd53_t;
76
77 typedef struct {
78         int (*os_wait)(void *, u32);
79 } wilc_wlan_os_func_t;
80
81 typedef struct {
82         int io_type;
83         int (*io_init)(void *);
84         void (*io_deinit)(void *);
85         union {
86                 struct {
87                         int (*sdio_cmd52)(sdio_cmd52_t *);
88                         int (*sdio_cmd53)(sdio_cmd53_t *);
89                         int (*sdio_set_max_speed)(void);
90                         int (*sdio_set_default_speed)(void);
91                 } sdio;
92                 struct {
93                         int (*spi_max_speed)(void);
94                         int (*spi_tx)(u8 *, u32);
95                         int (*spi_rx)(u8 *, u32);
96                         int (*spi_trx)(u8 *, u8 *, u32);
97                 } spi;
98         } u;
99 } wilc_wlan_io_func_t;
100
101 #define WILC_MAC_INDICATE_STATUS        0x1
102 #define WILC_MAC_STATUS_INIT            -1
103 #define WILC_MAC_STATUS_READY           0
104 #define WILC_MAC_STATUS_CONNECT         1
105
106 #define WILC_MAC_INDICATE_SCAN          0x2
107
108 typedef struct {
109         void *os_private;
110
111         struct mutex *hif_critical_section;
112
113         u32 tx_buffer_size;
114         void *txq_critical_section;
115
116         void *txq_add_to_head_critical_section;
117
118         void *txq_wait_event;
119
120 #if defined(MEMORY_STATIC)
121         u32 rx_buffer_size;
122 #endif
123         void *rxq_critical_section;
124
125         struct semaphore *cfg_wait_event;
126 } wilc_wlan_os_context_t;
127
128 typedef struct {
129         wilc_wlan_os_context_t os_context;
130         wilc_wlan_os_func_t os_func;
131         wilc_wlan_io_func_t io_func;
132 } wilc_wlan_inp_t;
133
134 struct tx_complete_data {
135         int size;
136         void *buff;
137         u8 *pBssid;
138         struct sk_buff *skb;
139 };
140
141 typedef void (*wilc_tx_complete_func_t)(void *, int);
142
143 #define WILC_TX_ERR_NO_BUF      (-2)
144
145 typedef struct {
146         int (*wlan_firmware_download)(const u8 *, u32);
147         int (*wlan_start)(void);
148         int (*wlan_stop)(void);
149         int (*wlan_add_to_tx_que)(void *, u8 *, u32, wilc_tx_complete_func_t);
150         int (*wlan_handle_tx_que)(u32 *);
151         void (*wlan_handle_rx_isr)(void);
152         void (*wlan_cleanup)(void);
153         int (*wlan_cfg_set)(int, u32, u8 *, u32, int, u32);
154         int (*wlan_cfg_get)(int, u32, int, u32);
155         int (*wlan_cfg_get_value)(u32, u8 *, u32);
156         int (*wlan_add_mgmt_to_tx_que)(void *, u8 *, u32,
157                                        wilc_tx_complete_func_t);
158 } wilc_wlan_oup_t;
159
160 /********************************************
161  *
162  *      Wlan Configuration ID
163  *
164  ********************************************/
165
166 #define MAX_SSID_LEN            33
167 #define MAX_RATES_SUPPORTED     12
168
169 #define INFINITE_SLEEP_TIME     ((u32)0xFFFFFFFF)
170
171 #ifdef WILC_PARSE_SCAN_IN_HOST
172 typedef enum {
173         SUPP_RATES_IE           = 1,
174         EXT_SUPP_RATES_IE       = 50,
175         HT_CAPABILITY_IE        = 45,
176         RSN_IE                  = 48,
177         WPA_IE                  = 221,
178         WMM_IE                  = 221,
179         P2P_IE                  = 221,
180 } BEACON_IE;
181 #endif
182 typedef enum {
183         INFRASTRUCTURE          = 0,
184         INDEPENDENT,
185         AP,
186 } BSSTYPE_T;
187
188 typedef enum {
189         RATE_AUTO               = 0,
190         RATE_1MB                = 1,
191         RATE_2MB                = 2,
192         RATE_5MB                = 5,
193         RATE_6MB                = 6,
194         RATE_9MB                = 9,
195         RATE_11MB               = 11,
196         RATE_12MB               = 12,
197         RATE_18MB               = 18,
198         RATE_24MB               = 24,
199         RATE_26MB               = 36,
200         RATE_48MB               = 48,
201         RATE_54MB               = 54
202 } TX_RATE_T;
203
204 typedef enum {
205         B_ONLY_MODE             = 0,    /* 1, 2 M, otherwise 5, 11 M */
206         G_ONLY_MODE,                    /* 6,12,24 otherwise 9,18,36,48,54 */
207         G_MIXED_11B_1_MODE,             /* 1,2,5.5,11 otherwise all on */
208         G_MIXED_11B_2_MODE,             /* 1,2,5,11,6,12,24 otherwise all on */
209 } G_OPERATING_MODE_T;
210
211 typedef enum {
212         G_SHORT_PREAMBLE        = 0,    /* Short Preamble */
213         G_LONG_PREAMBLE         = 1,    /* Long Preamble */
214         G_AUTO_PREAMBLE         = 2,    /* Auto Preamble Selection */
215 } G_PREAMBLE_T;
216
217 #define MAC_CONNECTED           1
218 #define MAC_DISCONNECTED        0
219
220 #define SCAN_DONE               TRUE
221 typedef enum {
222         PASSIVE_SCAN            = 0,
223         ACTIVE_SCAN             = 1,
224 } SCANTYPE_T;
225
226 typedef enum {
227         NO_POWERSAVE            = 0,
228         MIN_FAST_PS             = 1,
229         MAX_FAST_PS             = 2,
230         MIN_PSPOLL_PS           = 3,
231         MAX_PSPOLL_PS           = 4
232 } USER_PS_MODE_T;
233
234 typedef enum {
235         CHIP_WAKEDUP            = 0,
236         CHIP_SLEEPING_AUTO      = 1,
237         CHIP_SLEEPING_MANUAL    = 2
238 } CHIP_PS_STATE_T;
239
240 typedef enum {
241         ACQUIRE_ONLY            = 0,
242         ACQUIRE_AND_WAKEUP      = 1,
243 } BUS_ACQUIRE_T;
244
245 typedef enum {
246         RELEASE_ONLY            = 0,
247         RELEASE_ALLOW_SLEEP     = 1,
248 } BUS_RELEASE_T;
249
250 typedef enum {
251         NO_SECURITY             = 0,
252         WEP_40                  = 0x3,
253         WEP_104                 = 0x7,
254         WPA_AES                 = 0x29,
255         WPA_TKIP                = 0x49,
256         WPA_AES_TKIP            = 0x69, /* Aes or Tkip */
257         WPA2_AES                = 0x31,
258         WPA2_TKIP               = 0x51,
259         WPA2_AES_TKIP           = 0x71, /* Aes or Tkip */
260 } SECURITY_T;
261
262 typedef enum {
263         OPEN_SYSTEM             = 1,
264         SHARED_KEY              = 2,
265         ANY                     = 3,
266         IEEE8021                = 5
267 } AUTHTYPE_T;
268
269 typedef enum {
270         SITE_SURVEY_1CH         = 0,
271         SITE_SURVEY_ALL_CH      = 1,
272         SITE_SURVEY_OFF         = 2
273 } SITE_SURVEY_T;
274
275 typedef enum {
276         NORMAL_ACK              = 0,
277         NO_ACK,
278 } ACK_POLICY_T;
279
280 typedef enum {
281         DONT_RESET              = 0,
282         DO_RESET                = 1,
283         NO_REQUEST              = 2,
284 } RESET_REQ_T;
285
286 typedef enum {
287         REKEY_DISABLE           = 1,
288         REKEY_TIME_BASE,
289         REKEY_PKT_BASE,
290         REKEY_TIME_PKT_BASE
291 } RSNA_REKEY_POLICY_T;
292
293 typedef enum {
294         FILTER_NO               = 0x00,
295         FILTER_AP_ONLY          = 0x01,
296         FILTER_STA_ONLY         = 0x02
297 } SCAN_CLASS_FITLER_T;
298
299 typedef enum {
300         PRI_HIGH_RSSI           = 0x00,
301         PRI_LOW_RSSI            = 0x04,
302         PRI_DETECT              = 0x08
303 } SCAN_PRI_T;
304
305 typedef enum {
306         CH_FILTER_OFF           = 0x00,
307         CH_FILTER_ON            = 0x10
308 } CH_FILTER_T;
309
310 typedef enum {
311         AUTO_PROT               = 0,    /* Auto */
312         NO_PROT,                        /* Do not use any protection */
313         ERP_PROT,                       /* Protect all ERP frame exchanges */
314         HT_PROT,                        /* Protect all HT frame exchanges  */
315         GF_PROT,                        /* Protect all GF frame exchanges  */
316 } N_PROTECTION_MODE_T;
317
318 typedef enum {
319         G_SELF_CTS_PROT,
320         G_RTS_CTS_PROT,
321 } G_PROTECTION_MODE_T;
322
323 typedef enum {
324         HT_MIXED_MODE           = 1,
325         HT_ONLY_20MHZ_MODE,
326         HT_ONLY_20_40MHZ_MODE,
327 } N_OPERATING_MODE_T;
328
329 typedef enum {
330         NO_DETECT               = 0,
331         DETECT_ONLY             = 1,
332         DETECT_PROTECT          = 2,
333         DETECT_PROTECT_REPORT   = 3,
334 } N_OBSS_DETECTION_T;
335
336 typedef enum {
337         RTS_CTS_NONHT_PROT      = 0,    /* RTS-CTS at non-HT rate */
338         FIRST_FRAME_NONHT_PROT,         /* First frame at non-HT rate */
339         LSIG_TXOP_PROT,                 /* LSIG TXOP Protection */
340         FIRST_FRAME_MIXED_PROT,         /* First frame at Mixed format */
341 } N_PROTECTION_TYPE_T;
342
343 typedef enum {
344         STATIC_MODE             = 1,
345         DYNAMIC_MODE            = 2,
346         MIMO_MODE               = 3,    /* power save disable */
347 } N_SMPS_MODE_T;
348
349 typedef enum {
350         DISABLE_SELF_CTS,
351         ENABLE_SELF_CTS,
352         DISABLE_TX_ABORT,
353         ENABLE_TX_ABORT,
354         HW_TRIGGER_ABORT,
355         SW_TRIGGER_ABORT,
356 } TX_ABORT_OPTION_T;
357
358 typedef enum {
359         WID_CHAR                = 0,
360         WID_SHORT               = 1,
361         WID_INT                 = 2,
362         WID_STR                 = 3,
363         WID_BIN_DATA            = 4,
364         WID_BIN                 = 5,
365         WID_IP                  = 6,
366         WID_ADR                 = 7,
367         WID_UNDEF               = 8,
368         WID_TYPE_FORCE_32BIT    = 0xFFFFFFFF
369
370 } WID_TYPE_T, tenuWIDtype;
371
372 typedef enum {
373         WID_NIL                         = 0xffff,
374
375         /*
376          *  BSS Type
377          *  -----------------------------------------------------------
378          *  Configuration : Infrastructure   Independent   Access Point
379          *  Values to set :         0               1            2
380          *  -----------------------------------------------------------
381          */
382         WID_BSS_TYPE                    = 0x0000,
383
384         /*
385          *  Transmit Rate
386          *  -----------------------------------------------------------
387          *  Configuration : 1  2  5.5  11  6  9  12  18  24  36  48  54
388          *  Values to set : 1  2    5  11  6  9  12  18  24  36  48  54
389          *  -----------------------------------------------------------
390          */
391         WID_CURRENT_TX_RATE             = 0x0001,
392
393         /*
394          *  Channel
395          *  -----------------------------------------------------------
396          *  Configuration(g) : 1  2  3  4  5  6  7  8  9 10 11 12 13 14
397          *  Values to set    : 1  2  3  4  5  6  7  8  9 10 11 12 13 14
398          *  -----------------------------------------------------------
399          */
400         WID_CURRENT_CHANNEL             = 0x0002,
401
402         /*
403          *  Preamble
404          *  -----------------------------------------------------------
405          *  Configuration :    short    long      Auto
406          *  Values to set :       0       1         2
407          *  -----------------------------------------------------------
408          */
409         WID_PREAMBLE                    = 0x0003,
410
411         /*
412          * 11g operating mode (ignored if 11g not present)
413          *  -----------------------------------------------------------
414          *  Configuration :   HighPerf  Compat(RSet #1) Compat(RSet #2)
415          *  Values to set :          1               2               3
416          *  -----------------------------------------------------------
417          */
418         WID_11G_OPERATING_MODE          = 0x0004,
419
420         /*
421          *  Mac status (response only)
422          *  -----------------------------------------------------------
423          *  Configuration :   disconnect  connect
424          *  Values to get :          0       1
425          *  -----------------------------------------------------------
426          */
427         WID_STATUS                      = 0x0005,
428
429         /*
430          *  Scan type
431          *  -----------------------------------------------------------
432          *  Configuration :   Passive Scanning   Active Scanning
433          *  Values to set :                  0                 1
434          *  -----------------------------------------------------------
435          */
436         WID_SCAN_TYPE                   = 0x0007,
437
438         /*
439          *  Key Id (WEP default key Id)
440          *  -----------------------------------------------------------
441          *  Configuration :   Any value between 0 to 3
442          *  Values to set :   Same value. Default is 0
443          *  -----------------------------------------------------------
444          */
445         WID_KEY_ID                      = 0x0009,
446
447         /*
448          *  QoS Enable
449          *  -----------------------------------------------------------
450          *  Configuration :   QoS Disable   WMM Enable
451          *  Values to set :   0             1
452          *  -----------------------------------------------------------
453          */
454         WID_QOS_ENABLE                  = 0x000A,
455
456         /*
457          *  Power Management
458          *  -----------------------------------------------------------
459          *  Configuration : NO_POWERSAVE MIN_POWERSAVE MAX_POWERSAVE
460          *  Values to set : 0            1             2
461          *  -----------------------------------------------------------
462          */
463         WID_POWER_MANAGEMENT            = 0x000B,
464
465         /*
466          *  WEP/802 11I Configuration
467          *  -----------------------------------------------------------
468          *  Configuration:Disable WP40 WP104 WPA-AES WPA-TKIP RSN-AES RSN-TKIP
469          *  Values (0x)  :   00     03   07     29       49       31      51
470          *  Configuration:WPA-AES+TKIP RSN-AES+TKIP
471          *  Values (0x)  :      69        71
472          *  -----------------------------------------------------------
473          */
474         WID_11I_MODE                    = 0x000C,
475
476         /*
477          *  WEP Configuration: Used in BSS STA mode only when WEP is enabled
478          *  -----------------------------------------------------------
479          *  Configuration : Open System Shared Key Any Type | 802.1x Auth
480          *  Values (0x)   :    01             02         03 |    BIT2
481          *  -----------------------------------------------------------
482          */
483         WID_AUTH_TYPE                   = 0x000D,
484
485         /*
486          *  Site Survey Type
487          *  -----------------------------------------------------------
488          *  Configuration       :  Values to set
489          *  Survey 1 Channel    :  0
490          *  survey all Channels :  1
491          *  Disable Site Survey :  2
492          *  -----------------------------------------------------------
493          */
494         WID_SITE_SURVEY                 = 0x000E,
495
496         /*
497          *  Listen Interval
498          *  -----------------------------------------------------------
499          *  Configuration :   Any value between 1 to 255
500          *  Values to set :   Same value. Default is 3
501          *  -----------------------------------------------------------
502          */
503         WID_LISTEN_INTERVAL             = 0x000F,
504
505         /*
506          *  DTIM Period
507          *  -----------------------------------------------------------
508          *  Configuration :   Any value between 1 to 255
509          *  Values to set :   Same value. Default is 3
510          *  -----------------------------------------------------------
511          */
512         WID_DTIM_PERIOD                 = 0x0010,
513
514         /*
515          *  ACK Policy
516          *  -----------------------------------------------------------
517          *  Configuration :   Normal Ack            No Ack
518          *  Values to set :       0                   1
519          *  -----------------------------------------------------------
520          */
521         WID_ACK_POLICY                  = 0x0011,
522
523         /*
524          *  Reset MAC (Set only)
525          *  -----------------------------------------------------------
526          *  Configuration :   Don't Reset       Reset   No Request
527          *  Values to set :       0               1         2
528          *  -----------------------------------------------------------
529          */
530         WID_RESET                       = 0x0012,
531
532         /*
533          *  Broadcast SSID Option: Setting this will adhere to "" SSID element
534          *  -----------------------------------------------------------
535          *  Configuration :   Enable             Disable
536          *  Values to set :   1                  0
537          *  -----------------------------------------------------------
538          */
539         WID_BCAST_SSID                  = 0x0015,
540
541         /*
542          *  Disconnect (Station)
543          *  -----------------------------------------------------------
544          *  Configuration :   Association ID
545          *  Values to set :   Association ID
546          *  -----------------------------------------------------------
547          */
548         WID_DISCONNECT                  = 0x0016,
549
550         /*
551          *  11a Tx Power Level
552          *  -----------------------------------------------------------
553          *  Configuration : Sets TX Power (Higher the value greater the power)
554          *  Values to set : Any value between 0 and 63 (inclusive Default 48)
555          *  -----------------------------------------------------------
556          */
557         WID_TX_POWER_LEVEL_11A          = 0x0018,
558
559         /*
560          *  Group Key Update Policy Selection
561          *  -----------------------------------------------------------
562          *  Configuration : Disabled timeBased packetBased timePacketBased
563          *  Values to set :   1            2          3              4
564          *  -----------------------------------------------------------
565          */
566         WID_REKEY_POLICY                = 0x0019,
567
568         /*
569          *  Allow Short Slot
570          *  -----------------------------------------------------------
571          *  Configuration : Disallow Short Slot      Allow Short Slot
572          *          (Enable Only Long Slot) (Enable Short Slot if applicable)
573          *  Values to set :    0         1
574          *  -----------------------------------------------------------
575          */
576         WID_SHORT_SLOT_ALLOWED          = 0x001A,
577
578         WID_PHY_ACTIVE_REG              = 0x001B,
579
580         /*
581          *  11b Tx Power Level
582          *  -----------------------------------------------------------
583          *  Configuration : Sets TX Power (Higher the value greater the power)
584          *  Values to set : Any value between 0 and 63 (inclusive Default 48)
585          *  -----------------------------------------------------------
586          */
587         WID_TX_POWER_LEVEL_11B          = 0x001D,
588
589         /*
590          *  Scan Request
591          *  -----------------------------------------------------------
592          *  Configuration : Request default scan
593          *  Values to set : 0
594          *  -----------------------------------------------------------
595          */
596         WID_START_SCAN_REQ              = 0x001E,
597
598         /*
599          *  Rssi (get only)
600          *  -----------------------------------------------------------
601          *  Configuration :
602          *  Values to get : Rssi value
603          *  -----------------------------------------------------------
604          */
605         WID_RSSI                        = 0x001F,
606
607         /*
608          * Join Request
609          *  -----------------------------------------------------------
610          *  Configuration : Request to join
611          *  Values to set : index of scan result
612          *  -----------------------------------------------------------
613          */
614         WID_JOIN_REQ                    = 0x0020,
615
616         WID_LINKSPEED                   = 0x0026,
617
618         /*
619          *  Enable User Control of TX Power
620          *  -----------------------------------------------------------
621          *  Configuration : Disable                  Enable
622          *  Values to set :    0                       1
623          *  -----------------------------------------------------------
624          */
625         WID_USER_CONTROL_ON_TX_POWER    = 0x0027,
626
627         WID_MEMORY_ACCESS_8BIT          = 0x0029,
628
629         /*
630          *  Enable Auto RX Sensitivity feature
631          *  -----------------------------------------------------------
632          *  Configuration : Disable                  Enable
633          *  Values to set :    0                       1
634          *  -----------------------------------------------------------
635          */
636         WID_AUTO_RX_SENSITIVITY         = 0x0032,
637
638         /*
639          *  Receive Buffer Based Ack
640          *  -----------------------------------------------------------
641          *  Configuration : Disable                  Enable
642          *  Values to set :    0                       1
643          *  -----------------------------------------------------------
644          */
645         WID_DATAFLOW_CONTROL            = 0x0033,
646
647         /*
648          *  Scan Filter
649          *  -----------------------------------------------------------
650          *  Configuration : Class       No filter   AP only   Station Only
651          *  Values to set :                0           1           2
652          *  Configuration : Priority    High Rssi   Low Rssi     Detect
653          *  Values to set :                0          0x4         0x0
654          *  Configuration : Channel     filter off  filter on
655          *  Values to set :                0          0x10
656          *  -----------------------------------------------------------
657          */
658         WID_SCAN_FILTER                 = 0x0036,
659
660         /*
661          *  Link Loss Threshold (measure in the beacon period)
662          *  -----------------------------------------------------------
663          *  Configuration : Any value between 10 and 254(Set to 255 disable)
664          *  Values to set : Same value. Default is 10
665          *  -----------------------------------------------------------
666          */
667         WID_LINK_LOSS_THRESHOLD         = 0x0037,
668
669         WID_ABORT_RUNNING_SCAN          = 0x003E,
670
671         /* NMAC Character WID list */
672         WID_WPS_START                   = 0x0043,
673
674         /*
675          *  Protection mode for MAC
676          *  -----------------------------------------------------------
677          *  Configuration :  Auto  No protection  ERP    HT    GF
678          *  Values to set :  0     1              2      3     4
679          *  -----------------------------------------------------------
680          */
681         WID_11N_PROT_MECH               = 0x0080,
682
683         /*
684          *  ERP Protection type for MAC
685          *  -----------------------------------------------------------
686          *  Configuration :  Self-CTS   RTS-CTS
687          *  Values to set :  0          1
688          *  -----------------------------------------------------------
689          */
690         WID_11N_ERP_PROT_TYPE           = 0x0081,
691
692         /*
693          *  HT Option Enable
694          *  -----------------------------------------------------------
695          *  Configuration :   HT Enable          HT Disable
696          *  Values to set :   1                  0
697          *  -----------------------------------------------------------
698          */
699         WID_11N_ENABLE                  = 0x0082,
700
701         /*
702          *  11n Operating mode (Note that 11g operating mode will also be
703          *  used in addition to this, if this is set to HT Mixed mode)
704          *  -----------------------------------------------------------
705          *   Configuration :  HT Mixed  HT Only-20MHz   HT Only-20/40MHz
706          *  Values to set :     1         2               3
707          *  -----------------------------------------------------------
708          */
709         WID_11N_OPERATING_MODE          = 0x0083,
710
711         /*
712          *  11n OBSS non-HT STA Detection flag
713          *  -----------------------------------------------------------
714          *  Configuration :  Do not detect
715          *  Values to set :  0
716          *  Configuration :  Detect, do not protect or report
717          *  Values to set :  1
718          *  Configuration :  Detect, protect and do not report
719          *  Values to set :  2
720          *  Configuration :  Detect, protect and report to other BSS
721          *  Values to set :  3
722          *  -----------------------------------------------------------
723          */
724         WID_11N_OBSS_NONHT_DETECTION    = 0x0084,
725
726         /*
727          *  11n HT Protection Type
728          *  -----------------------------------------------------------
729          *  Configuration :  RTS-CTS   First Frame Exchange at non-HT-rate
730          *  Values to set :  0         1
731          *  Configuration :  LSIG TXOP First Frame Exchange in Mixed Fmt
732          *  Values to set :  2         3
733          *  -----------------------------------------------------------
734          */
735         WID_11N_HT_PROT_TYPE            = 0x0085,
736
737         /*
738          *  11n RIFS Protection Enable Flag
739          *  -----------------------------------------------------------
740          *  Configuration :  Disable    Enable
741          *  Values to set :  0          1
742          *  -----------------------------------------------------------
743          */
744         WID_11N_RIFS_PROT_ENABLE        = 0x0086,
745
746         /*
747          *  SMPS Mode
748          *  -----------------------------------------------------------
749          *  Configuration :  Static   Dynamic   MIMO (Power Save Disabled)
750          *  Values to set :  1        2         3
751          *  -----------------------------------------------------------
752          */
753         WID_11N_SMPS_MODE               = 0x0087,
754
755         /*
756          *  Current transmit MCS
757          *  -----------------------------------------------------------
758          *  Configuration :  MCS Index for data rate
759          *  Values to set :  0 to 7
760          *  -----------------------------------------------------------
761          */
762         WID_11N_CURRENT_TX_MCS          = 0x0088,
763
764         WID_11N_PRINT_STATS             = 0x0089,
765
766         /*
767          *  11n Short GI Enable Flag
768          *  -----------------------------------------------------------
769          *  Configuration :  Disable    Enable
770          *  Values to set :  0          1
771          *  -----------------------------------------------------------
772          */
773         WID_11N_SHORT_GI_ENABLE         = 0x008D,
774
775         /*
776          *  11n RIFS Enable Flag
777          *  -----------------------------------------------------------
778          *  Configuration :  Disable    Enable
779          *  Values to set :  0          1
780          *  -----------------------------------------------------------
781          */
782         WID_RIFS_MODE                   = 0x0094,
783
784         /*
785          *  TX Abort Feature
786          *  -----------------------------------------------------------
787          *  Configuration :  Disable Self CTS    Enable Self CTS
788          *  Values to set :             0                      1
789          *  Configuration :  Disable TX Abort    Enable TX Abort
790          *  Values to set :             2                      3
791          *  Configuration :  Enable HW TX Abort Enable SW TX Abort
792          *  Values to set :             4                      5
793          *  -----------------------------------------------------------
794          */
795         WID_TX_ABORT_CONFIG             = 0x00A1,
796
797         WID_REG_TSSI_11B_VALUE          = 0x00A6,
798         WID_REG_TSSI_11G_VALUE          = 0x00A7,
799         WID_REG_TSSI_11N_VALUE          = 0x00A8,
800         WID_TX_CALIBRATION              = 0x00A9,
801         WID_DSCR_TSSI_11B_VALUE         = 0x00AA,
802         WID_DSCR_TSSI_11G_VALUE         = 0x00AB,
803         WID_DSCR_TSSI_11N_VALUE         = 0x00AC,
804
805         /*
806          *  Immediate Block-Ack Support
807          *  -----------------------------------------------------------
808          *  Configuration : Disable                  Enable
809          *  Values to set :    0                       1
810          *  -----------------------------------------------------------
811          */
812         WID_11N_IMMEDIATE_BA_ENABLED    = 0x00AF,
813
814         /*
815          *  TXOP Disable Flag
816          *  -----------------------------------------------------------
817          *  Configuration : Disable                  Enable
818          *  Values to set :    1                        0
819          *  -----------------------------------------------------------
820          */
821         WID_11N_TXOP_PROT_DISABLE       = 0x00B0,
822
823         WID_TX_POWER_LEVEL_11N          = 0x00B1,
824
825         /* Custom Character WID list */
826         WID_PC_TEST_MODE                = 0x00C8,
827         /* SCAN Complete notification WID*/
828         WID_SCAN_COMPLETE               = 0x00C9,
829
830         WID_DEL_BEACON                  = 0x00CA,
831
832         WID_LOGTerminal_Switch          = 0x00CD,
833         /*  EMAC Short WID list */
834         /*  RTS Threshold */
835         /*
836          *  -----------------------------------------------------------
837          *  Configuration :   Any value between 256 to 2347
838          *  Values to set :   Same value. Default is 2347
839          *  -----------------------------------------------------------
840          */
841         WID_RTS_THRESHOLD               = 0x1000,
842
843         /*
844          *  Fragmentation Threshold
845          *  -----------------------------------------------------------
846          *  Configuration :   Any value between 256 to 2346
847          *  Values to set :   Same value. Default is 2346
848          *  -----------------------------------------------------------
849          */
850         WID_FRAG_THRESHOLD              = 0x1001,
851
852         WID_SHORT_RETRY_LIMIT           = 0x1002,
853         WID_LONG_RETRY_LIMIT            = 0x1003,
854         WID_BEACON_INTERVAL             = 0x1006,
855         WID_MEMORY_ACCESS_16BIT         = 0x1008,
856         WID_RX_SENSE                    = 0x100B,
857         WID_ACTIVE_SCAN_TIME            = 0x100C,
858         WID_PASSIVE_SCAN_TIME           = 0x100D,
859
860         WID_SITE_SURVEY_SCAN_TIME       = 0x100E,
861         WID_JOIN_START_TIMEOUT          = 0x100F,
862         WID_AUTH_TIMEOUT                = 0x1010,
863         WID_ASOC_TIMEOUT                = 0x1011,
864         WID_11I_PROTOCOL_TIMEOUT        = 0x1012,
865         WID_EAPOL_RESPONSE_TIMEOUT      = 0x1013,
866
867         /* NMAC Short WID list */
868         WID_11N_SIG_QUAL_VAL            = 0x1085,
869         WID_CCA_THRESHOLD               = 0x1087,
870
871         /* Custom Short WID list */
872
873         /* EMAC Integer WID list */
874         WID_FAILED_COUNT                = 0x2000,
875         WID_RETRY_COUNT                 = 0x2001,
876         WID_MULTIPLE_RETRY_COUNT        = 0x2002,
877         WID_FRAME_DUPLICATE_COUNT       = 0x2003,
878         WID_ACK_FAILURE_COUNT           = 0x2004,
879         WID_RECEIVED_FRAGMENT_COUNT     = 0x2005,
880         WID_MCAST_RECEIVED_FRAME_COUNT  = 0x2006,
881         WID_FCS_ERROR_COUNT             = 0x2007,
882         WID_SUCCESS_FRAME_COUNT         = 0x2008,
883         WID_HUT_TX_COUNT                = 0x200A,
884         WID_TX_FRAGMENT_COUNT           = 0x200B,
885         WID_TX_MULTICAST_FRAME_COUNT    = 0x200C,
886         WID_RTS_SUCCESS_COUNT           = 0x200D,
887         WID_RTS_FAILURE_COUNT           = 0x200E,
888         WID_WEP_UNDECRYPTABLE_COUNT     = 0x200F,
889         WID_REKEY_PERIOD                = 0x2010,
890         WID_REKEY_PACKET_COUNT          = 0x2011,
891         WID_1X_SERV_ADDR                = 0x2012,
892         WID_STACK_IP_ADDR               = 0x2013,
893         WID_STACK_NETMASK_ADDR          = 0x2014,
894         WID_HW_RX_COUNT                 = 0x2015,
895         WID_MEMORY_ADDRESS              = 0x201E,
896         WID_MEMORY_ACCESS_32BIT         = 0x201F,
897         WID_RF_REG_VAL                  = 0x2021,
898
899         /* NMAC Integer WID list */
900         WID_11N_PHY_ACTIVE_REG_VAL      = 0x2080,
901
902         /* Custom Integer WID list */
903         WID_GET_INACTIVE_TIME           = 0x2084,
904         WID_SET_DRV_HANDLER             = 0X2085,
905         WID_SET_OPERATION_MODE          = 0X2086,
906         /* EMAC String WID list */
907         WID_SSID                        = 0x3000,
908         WID_FIRMWARE_VERSION            = 0x3001,
909         WID_OPERATIONAL_RATE_SET        = 0x3002,
910         WID_BSSID                       = 0x3003,
911         WID_WEP_KEY_VALUE               = 0x3004,
912         WID_11I_PSK                     = 0x3008,
913         WID_11E_P_ACTION_REQ            = 0x3009,
914         WID_1X_KEY                      = 0x300A,
915         WID_HARDWARE_VERSION            = 0x300B,
916         WID_MAC_ADDR                    = 0x300C,
917         WID_HUT_DEST_ADDR               = 0x300D,
918         WID_PHY_VERSION                 = 0x300F,
919         WID_SUPP_USERNAME               = 0x3010,
920         WID_SUPP_PASSWORD               = 0x3011,
921         WID_SITE_SURVEY_RESULTS         = 0x3012,
922         WID_RX_POWER_LEVEL              = 0x3013,
923         WID_DEL_ALL_RX_BA               = 0x3014,
924         WID_SET_STA_MAC_INACTIVE_TIME   = 0x3017,
925         WID_ADD_WEP_KEY                 = 0x3019,
926         WID_REMOVE_WEP_KEY              = 0x301A,
927         WID_ADD_PTK                     = 0x301B,
928         WID_ADD_RX_GTK                  = 0x301C,
929         WID_ADD_TX_GTK                  = 0x301D,
930         WID_REMOVE_KEY                  = 0x301E,
931         WID_ASSOC_REQ_INFO              = 0x301F,
932         WID_ASSOC_RES_INFO              = 0x3020,
933         WID_MANUFACTURER                = 0x3026, /*Added for CAPI tool */
934         WID_MODEL_NAME                  = 0x3027, /*Added for CAPI tool */
935         WID_MODEL_NUM                   = 0x3028, /*Added for CAPI tool */
936         WID_DEVICE_NAME                 = 0x3029, /*Added for CAPI tool */
937
938         /* NMAC String WID list */
939         WID_11N_P_ACTION_REQ            = 0x3080,
940         WID_HUT_TEST_ID                 = 0x3081,
941         WID_PMKID_INFO                  = 0x3082,
942         WID_FIRMWARE_INFO               = 0x3083,
943         WID_REGISTER_FRAME              = 0x3084,
944         WID_DEL_ALL_STA                 = 0x3085,
945         WID_REMAIN_ON_CHAN              = 0x3996,
946         WID_SSID_PROBE_REQ              = 0x3997,
947         WID_JOIN_REQ_EXTENDED           = 0x3998,
948
949         WID_IP_ADDRESS                  = 0x3999,
950
951         /* Custom String WID list */
952
953         /* EMAC Binary WID list */
954         WID_UAPSD_CONFIG                = 0x4001,
955         WID_UAPSD_STATUS                = 0x4002,
956         WID_WMM_AP_AC_PARAMS            = 0x4003,
957         WID_WMM_STA_AC_PARAMS           = 0x4004,
958         WID_NETWORK_INFO                = 0x4005,
959         WID_STA_JOIN_INFO               = 0x4006,
960         WID_CONNECTED_STA_LIST          = 0x4007,
961
962         /* NMAC Binary WID list */
963         WID_11N_AUTORATE_TABLE          = 0x4080,
964
965         WID_SCAN_CHANNEL_LIST           = 0x4084,
966
967         WID_INFO_ELEMENT_PROBE          = 0x4085,
968         WID_INFO_ELEMENT_ASSOCIATE      = 0x4086,
969         WID_ADD_STA                     = 0X4087,
970         WID_REMOVE_STA                  = 0X4088,
971         WID_EDIT_STA                    = 0X4089,
972         WID_ADD_BEACON                  = 0x408a,
973
974         WID_SETUP_MULTICAST_FILTER      = 0x408b,
975
976         /* Miscellaneous WIDs */
977         WID_ALL                         = 0x7FFE,
978         WID_MAX                         = 0xFFFF
979 } WID_T;
980
981 int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup);
982
983 void wilc_bus_set_max_speed(void);
984 void wilc_bus_set_default_speed(void);
985 u32 wilc_get_chipid(u8 update);
986 extern wilc_wlan_oup_t *gpstrWlanOps;
987
988 #endif