add MTK-combo-module,continue with commit 17f39ed917874e77e80411f33faba1b7ee8138c8
[firefly-linux-kernel-4.4.55.git] / drivers / mtk_wcn_combo / drv_wlan / wlan / include / nic_init_cmd_event.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_2/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 * Copyright (c) 2007 MediaTek Inc.
12 *
13 * All rights reserved. Copying, compilation, modification, distribution
14 * or any other use whatsoever of this material is strictly prohibited
15 * except in accordance with a Software License Agreement with
16 * MediaTek Inc.
17 ********************************************************************************
18 */
19
20 /*******************************************************************************
21 * LEGAL DISCLAIMER
22 *
23 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
24 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
25 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
26 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
27 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
28 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
29 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
30 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
31 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
32 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
33 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
34 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
35 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
36 *
37 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
38 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
39 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
40 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
41 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
42 *
43 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
44 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
45 * OF LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
46 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
47 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
48 * (ICC).
49 ********************************************************************************
50 */
51
52 /*
53 ** $Log: nic_init_cmd_event.h $
54  *
55  * 10 19 2011 yuche.tsai
56  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
57  * Branch 2.1
58  * Davinci Maintrunk Label: MT6620_WIFI_DRIVER_FW_TRUNK_MT6620E5_111019_0926.
59  *
60  * 03 18 2011 cp.wu
61  * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
62  * create V2.0 driver release based on label "MT6620_WIFI_DRIVER_V2_0_110318_1600" from main trunk
63  *
64  * 07 08 2010 cp.wu
65  * 
66  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
67  *
68  * 06 06 2010 kevin.huang
69  * [WPD00003832][MT6620 5931] Create driver base 
70  * [MT6620 5931] Create driver base
71  *
72  * 03 12 2010 cp.wu
73  * [WPD00001943]Create WiFi test driver framework on WinXP 
74  * add two option for ACK and ENCRYPTION for firmware download
75  *
76  * 03 01 2010 cp.wu
77  * [WPD00001943]Create WiFi test driver framework on WinXP 
78  * add command/event definitions for initial states
79  *
80  * 02 10 2010 cp.wu
81  * [WPD00001943]Create WiFi test driver framework on WinXP 
82  * implement host-side firmware download logic
83  *
84  * 02 08 2010 cp.wu
85  * [WPD00001943]Create WiFi test driver framework on WinXP 
86  * prepare for implementing fw download logic
87  *
88 */
89 #ifndef _NIC_INIT_CMD_EVENT_H
90 #define _NIC_INIT_CMD_EVENT_H
91
92 /*******************************************************************************
93 *                         C O M P I L E R   F L A G S
94 ********************************************************************************
95 */
96
97 /*******************************************************************************
98 *                    E X T E R N A L   R E F E R E N C E S
99 ********************************************************************************
100 */
101
102 #include "gl_typedef.h"
103
104 /*******************************************************************************
105 *                              C O N S T A N T S
106 ********************************************************************************
107 */
108 #define INIT_CMD_STATUS_SUCCESS                 0
109 #define INIT_CMD_STATUS_REJECTED_INVALID_PARAMS 1
110 #define INIT_CMD_STATUS_REJECTED_CRC_ERROR      2
111 #define INIT_CMD_STATUS_REJECTED_DECRYPT_FAIL   3
112 #define INIT_CMD_STATUS_UNKNOWN                 4
113
114 #define EVENT_HDR_SIZE          OFFSET_OF(WIFI_EVENT_T, aucBuffer[0])
115
116 typedef enum _ENUM_INIT_CMD_ID {
117     INIT_CMD_ID_DOWNLOAD_BUF = 1,
118     INIT_CMD_ID_WIFI_START,
119     INIT_CMD_ID_ACCESS_REG,
120     INIT_CMD_ID_QUERY_PENDING_ERROR
121 } ENUM_INIT_CMD_ID, *P_ENUM_INIT_CMD_ID;
122
123 typedef enum _ENUM_INIT_EVENT_ID {
124     INIT_EVENT_ID_CMD_RESULT = 1,
125     INIT_EVENT_ID_ACCESS_REG,
126     INIT_EVENT_ID_PENDING_ERROR
127 } ENUM_INIT_EVENT_ID, *P_ENUM_INIT_EVENT_ID;
128
129 /*******************************************************************************
130 *                             D A T A   T Y P E S
131 ********************************************************************************
132 */
133 typedef UINT_8 CMD_STATUS;
134
135 // commands
136 typedef struct _INIT_WIFI_CMD_T {
137     UINT_8      ucCID;
138     UINT_8      ucSeqNum;
139     UINT_16     u2Reserved;
140     UINT_8      aucBuffer[0];
141 } INIT_WIFI_CMD_T, *P_INIT_WIFI_CMD_T;
142
143 typedef struct _INIT_HIF_TX_HEADER_T {
144     UINT_16     u2TxByteCount;
145     UINT_8      ucEtherTypeOffset;
146     UINT_8      ucCSflags;
147     INIT_WIFI_CMD_T rInitWifiCmd;
148 } INIT_HIF_TX_HEADER_T, *P_INIT_HIF_TX_HEADER_T;
149
150 #define DOWNLOAD_BUF_ENCRYPTION_MODE    BIT(0)
151 #define DOWNLOAD_BUF_NO_CRC_CHECKING    BIT(30)
152 #define DOWNLOAD_BUF_ACK_OPTION         BIT(31)
153 typedef struct _INIT_CMD_DOWNLOAD_BUF {
154     UINT_32     u4Address;
155     UINT_32     u4Length;
156     UINT_32     u4CRC32;
157     UINT_32     u4DataMode;
158     UINT_8      aucBuffer[0];
159 } INIT_CMD_DOWNLOAD_BUF, *P_INIT_CMD_DOWNLOAD_BUF;
160
161 typedef struct _INIT_CMD_WIFI_START {
162     UINT_32     u4Override;
163     UINT_32     u4Address;
164 } INIT_CMD_WIFI_START, *P_INIT_CMD_WIFI_START;
165
166 typedef struct _INIT_CMD_ACCESS_REG {
167     UINT_8      ucSetQuery;
168     UINT_8      aucReserved[3];
169     UINT_32     u4Address;
170     UINT_32     u4Data;
171 } INIT_CMD_ACCESS_REG, *P_INIT_CMD_ACCESS_REG;
172
173 // Events
174 typedef struct _INIT_WIFI_EVENT_T {
175     UINT_16     u2RxByteCount;
176     UINT_8      ucEID;
177     UINT_8      ucSeqNum;
178     UINT_8      aucBuffer[0];
179 } INIT_WIFI_EVENT_T, *P_INIT_WIFI_EVENT_T;
180
181 typedef struct _INIT_HIF_RX_HEADER_T {
182     INIT_WIFI_EVENT_T rInitWifiEvent;
183 } INIT_HIF_RX_HEADER_T, *P_INIT_HIF_RX_HEADER_T;
184
185 typedef struct _INIT_EVENT_CMD_RESULT {
186     UINT_8      ucStatus;   // 0: success 
187                             // 1: rejected by invalid param 
188                             // 2: rejected by incorrect CRC
189                             // 3: rejected by decryption failure
190                             // 4: unknown CMD
191     UINT_8      aucReserved[3];
192 } INIT_EVENT_CMD_RESULT, *P_INIT_EVENT_CMD_RESULT, INIT_EVENT_PENDING_ERROR, *P_INIT_EVENT_PENDING_ERROR;
193
194 typedef struct _INIT_EVENT_ACCESS_REG {
195     UINT_32     u4Address;
196     UINT_32     u4Data;
197 } INIT_EVENT_ACCESS_REG, *P_INIT_EVENT_ACCESS_REG;
198
199 /*******************************************************************************
200 *                            P U B L I C   D A T A
201 ********************************************************************************
202 */
203
204 /*******************************************************************************
205 *                           P R I V A T E   D A T A
206 ********************************************************************************
207 */
208
209 /*******************************************************************************
210 *                                 M A C R O S
211 ********************************************************************************
212 */
213
214 /*******************************************************************************
215 *                   F U N C T I O N   D E C L A R A T I O N S
216 ********************************************************************************
217 */
218
219 /*******************************************************************************
220 *                              F U N C T I O N S
221 ********************************************************************************
222 */
223
224 #endif /* _NIC_INIT_CMD_EVENT_H */
225