33886c98045a16990fae30e457e1e4fce5046a39
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rockchip_wlan / mt5931 / include / nic_init_cmd_event.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/nic_init_cmd_event.h#1 $
3 */
4
5 /*! \file   "nic_init_cmd_event.h"
6     \brief This file contains the declairation file of the WLAN initialization routines
7            for MediaTek Inc. 802.11 Wireless LAN Adapters.
8 */
9
10
11
12 /*
13 ** $Log: nic_init_cmd_event.h $
14  *
15  * 09 26 2011 cp.wu
16  * [WCXRP00001011] [MT6628 Wi-Fi] Firmware Download Agent: make CRC validation as an optional feature
17  * add definition for disabling CRC32 validation (for MT6628 only)
18  *
19  * 07 08 2010 cp.wu
20  * 
21  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
22  *
23  * 06 06 2010 kevin.huang
24  * [WPD00003832][MT6620 5931] Create driver base 
25  * [MT6620 5931] Create driver base
26  *
27  * 03 12 2010 cp.wu
28  * [WPD00001943]Create WiFi test driver framework on WinXP 
29  * add two option for ACK and ENCRYPTION for firmware download
30  *
31  * 03 01 2010 cp.wu
32  * [WPD00001943]Create WiFi test driver framework on WinXP 
33  * add command/event definitions for initial states
34  *
35  * 02 10 2010 cp.wu
36  * [WPD00001943]Create WiFi test driver framework on WinXP 
37  * implement host-side firmware download logic
38  *
39  * 02 08 2010 cp.wu
40  * [WPD00001943]Create WiFi test driver framework on WinXP 
41  * prepare for implementing fw download logic
42  *
43 */
44 #ifndef _NIC_INIT_CMD_EVENT_H
45 #define _NIC_INIT_CMD_EVENT_H
46
47 /*******************************************************************************
48 *                         C O M P I L E R   F L A G S
49 ********************************************************************************
50 */
51
52 /*******************************************************************************
53 *                    E X T E R N A L   R E F E R E N C E S
54 ********************************************************************************
55 */
56
57 #include "gl_typedef.h"
58
59 /*******************************************************************************
60 *                              C O N S T A N T S
61 ********************************************************************************
62 */
63 #define INIT_CMD_STATUS_SUCCESS                 0
64 #define INIT_CMD_STATUS_REJECTED_INVALID_PARAMS 1
65 #define INIT_CMD_STATUS_REJECTED_CRC_ERROR      2
66 #define INIT_CMD_STATUS_REJECTED_DECRYPT_FAIL   3
67 #define INIT_CMD_STATUS_UNKNOWN                 4
68
69 #define EVENT_HDR_SIZE          OFFSET_OF(WIFI_EVENT_T, aucBuffer[0])
70
71 typedef enum _ENUM_INIT_CMD_ID {
72     INIT_CMD_ID_DOWNLOAD_BUF = 1,
73     INIT_CMD_ID_WIFI_START,
74     INIT_CMD_ID_ACCESS_REG,
75     INIT_CMD_ID_QUERY_PENDING_ERROR
76 } ENUM_INIT_CMD_ID, *P_ENUM_INIT_CMD_ID;
77
78 typedef enum _ENUM_INIT_EVENT_ID {
79     INIT_EVENT_ID_CMD_RESULT = 1,
80     INIT_EVENT_ID_ACCESS_REG,
81     INIT_EVENT_ID_PENDING_ERROR
82 } ENUM_INIT_EVENT_ID, *P_ENUM_INIT_EVENT_ID;
83
84 /*******************************************************************************
85 *                             D A T A   T Y P E S
86 ********************************************************************************
87 */
88 typedef UINT_8 CMD_STATUS;
89
90 // commands
91 typedef struct _INIT_WIFI_CMD_T {
92     UINT_8      ucCID;
93     UINT_8      ucSeqNum;
94     UINT_16     u2Reserved;
95     UINT_8      aucBuffer[0];
96 } INIT_WIFI_CMD_T, *P_INIT_WIFI_CMD_T;
97
98 typedef struct _INIT_HIF_TX_HEADER_T {
99     UINT_16     u2TxByteCount;
100     UINT_8      ucEtherTypeOffset;
101     UINT_8      ucCSflags;
102     INIT_WIFI_CMD_T rInitWifiCmd;
103 } INIT_HIF_TX_HEADER_T, *P_INIT_HIF_TX_HEADER_T;
104
105 #define DOWNLOAD_BUF_ENCRYPTION_MODE    BIT(0)
106 #define DOWNLOAD_BUF_NO_CRC_CHECKING    BIT(30)
107 #define DOWNLOAD_BUF_ACK_OPTION         BIT(31)
108 typedef struct _INIT_CMD_DOWNLOAD_BUF {
109     UINT_32     u4Address;
110     UINT_32     u4Length;
111     UINT_32     u4CRC32;
112     UINT_32     u4DataMode;
113     UINT_8      aucBuffer[0];
114 } INIT_CMD_DOWNLOAD_BUF, *P_INIT_CMD_DOWNLOAD_BUF;
115
116 typedef struct _INIT_CMD_WIFI_START {
117     UINT_32     u4Override;
118     UINT_32     u4Address;
119 } INIT_CMD_WIFI_START, *P_INIT_CMD_WIFI_START;
120
121 typedef struct _INIT_CMD_ACCESS_REG {
122     UINT_8      ucSetQuery;
123     UINT_8      aucReserved[3];
124     UINT_32     u4Address;
125     UINT_32     u4Data;
126 } INIT_CMD_ACCESS_REG, *P_INIT_CMD_ACCESS_REG;
127
128 // Events
129 typedef struct _INIT_WIFI_EVENT_T {
130     UINT_16     u2RxByteCount;
131     UINT_8      ucEID;
132     UINT_8      ucSeqNum;
133     UINT_8      aucBuffer[0];
134 } INIT_WIFI_EVENT_T, *P_INIT_WIFI_EVENT_T;
135
136 typedef struct _INIT_HIF_RX_HEADER_T {
137     INIT_WIFI_EVENT_T rInitWifiEvent;
138 } INIT_HIF_RX_HEADER_T, *P_INIT_HIF_RX_HEADER_T;
139
140 typedef struct _INIT_EVENT_CMD_RESULT {
141     UINT_8      ucStatus;   // 0: success 
142                             // 1: rejected by invalid param 
143                             // 2: rejected by incorrect CRC
144                             // 3: rejected by decryption failure
145                             // 4: unknown CMD
146     UINT_8      aucReserved[3];
147 } INIT_EVENT_CMD_RESULT, *P_INIT_EVENT_CMD_RESULT, INIT_EVENT_PENDING_ERROR, *P_INIT_EVENT_PENDING_ERROR;
148
149 typedef struct _INIT_EVENT_ACCESS_REG {
150     UINT_32     u4Address;
151     UINT_32     u4Data;
152 } INIT_EVENT_ACCESS_REG, *P_INIT_EVENT_ACCESS_REG;
153
154 /*******************************************************************************
155 *                            P U B L I C   D A T A
156 ********************************************************************************
157 */
158
159 /*******************************************************************************
160 *                           P R I V A T E   D A T A
161 ********************************************************************************
162 */
163
164 /*******************************************************************************
165 *                                 M A C R O S
166 ********************************************************************************
167 */
168
169 /*******************************************************************************
170 *                   F U N C T I O N   D E C L A R A T I O N S
171 ********************************************************************************
172 */
173
174 /*******************************************************************************
175 *                              F U N C T I O N S
176 ********************************************************************************
177 */
178
179 #endif /* _NIC_INIT_CMD_EVENT_H */
180