add MTK-combo-module,continue with commit 17f39ed917874e77e80411f33faba1b7ee8138c8
[firefly-linux-kernel-4.4.55.git] / drivers / mtk_wcn_combo / drv_wlan / wlan / include / nic / hif_emu.h
1 /*
2 ** $Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_2/include/nic/hif_emu.h#1 $
3 */
4 /*! \file   hif.h"
5     \brief  Sdio specific structure for GLUE layer on WinXP
6
7     Sdio specific structure for GLUE layer on WinXP
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: hif_emu.h $
54  *
55  * 03 18 2011 cp.wu
56  * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
57  * create V2.0 driver release based on label "MT6620_WIFI_DRIVER_V2_0_110318_1600" from main trunk
58  *
59  * 07 08 2010 cp.wu
60  * 
61  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
62  *
63  * 06 06 2010 kevin.huang
64  * [WPD00003832][MT6620 5931] Create driver base 
65  * [MT6620 5931] Create driver base
66 **  \main\maintrunk.MT6620WiFiDriver_Prj\6 2009-11-04 14:11:18 GMT mtk01084
67 **  add new test func
68 **  \main\maintrunk.MT6620WiFiDriver_Prj\5 2009-10-30 18:17:42 GMT mtk01084
69 **  modify return value
70 **  \main\maintrunk.MT6620WiFiDriver_Prj\4 2009-10-29 19:50:45 GMT mtk01084
71 **  add emu test cases
72 **  \main\maintrunk.MT6620WiFiDriver_Prj\3 2009-10-23 16:08:54 GMT mtk01084
73 **  \main\maintrunk.MT6620WiFiDriver_Prj\2 2009-10-23 16:08:16 GMT mtk01084
74 **  \main\maintrunk.MT6620WiFiDriver_Prj\1 2009-10-13 21:27:05 GMT mtk01084
75 **
76 */
77
78 #ifndef _HIF_EMU_H
79 #define _HIF_EMU_H
80
81 /*******************************************************************************
82 *                         C O M P I L E R   F L A G S
83 ********************************************************************************
84 */
85
86 /*******************************************************************************
87 *                    E X T E R N A L   R E F E R E N C E S
88 ********************************************************************************
89 */
90
91 /*******************************************************************************
92 *                              C O N S T A N T S
93 ********************************************************************************
94 */
95
96 /*******************************************************************************
97 *                             D A T A   T Y P E S
98 ********************************************************************************
99 */
100 typedef enum
101 {
102     HIF_TC_MBOX_LB = 0x100,
103     HIF_TC_SW_INT,
104     HIF_TC_COUNT_INCREASE,
105     HIF_TC_COUNT_RESET,
106     HIF_TC_TX_SINGLE_PACKET,
107     HIF_TC_TX_AGG_PACKET,
108     HIF_TC_TX_CLEAR_TC_COUNT,
109     HIF_TC_TX_CHK_STATE,
110     HIF_TC_RX_SINGLE_PACKET = 0x200,
111     HIF_TC_RX_PACKET_LEN,
112     HIF_TC_RX_PACKET_LEN_OVERFLOW,
113     HIF_TC_RX_AGG_PACKET,
114     HIF_TC_RX_CHK_STATE,
115     HIF_TC_RX_SW_PKT_FORMAT,
116     HIF_TC_RX_READ_HALF,
117     HIF_TC_MIX_TX_RX_STRESS,
118     HIF_TC_INTR_ENHANCE,
119     HIF_TC_RX_ENHANCE_MODE,
120     HIF_TC_TX_BURST,
121     HIF_TC_RX_BURST,
122 } HIF_TEST_CASE;
123
124 #define HIF_TEST_CASE_START     BIT(16)
125
126
127 /*******************************************************************************
128 *                            P U B L I C   D A T A
129 ********************************************************************************
130 */
131
132 /*******************************************************************************
133 *                           P R I V A T E   D A T A
134 ********************************************************************************
135 */
136
137 /*******************************************************************************
138 *                                 M A C R O S
139 ********************************************************************************
140 */
141
142 /*******************************************************************************
143 *                  F U N C T I O N   D E C L A R A T I O N S
144 ********************************************************************************
145 */
146 VOID
147 emuInit (
148     IN P_ADAPTER_T prAdapter
149     );
150
151 BOOLEAN
152 emuStart (
153     IN P_ADAPTER_T prAdapter
154     );
155
156
157 BOOLEAN
158 emuInitChkCis (
159     IN P_ADAPTER_T prAdapter
160     );
161
162 BOOLEAN
163 emuMailboxLoopback (
164     IN P_ADAPTER_T prAdapter,
165     IN BOOLEAN fgReadClearChk
166     );
167
168 BOOLEAN
169 emuSoftwareInterruptLoopback (
170     IN P_ADAPTER_T prAdapter,
171     IN BOOLEAN fgIntrReadClear
172     );
173
174 BOOLEAN
175 emuCheckTxCount (
176     IN P_ADAPTER_T prAdapter,
177     IN BOOLEAN fgReadByIntrEnhanMode
178     );
179
180 BOOLEAN
181 emuSendPacket1 (
182     IN P_ADAPTER_T prAdapter,
183     IN UINT_32     u4PortId,
184     IN BOOLEAN     fgUseEnhanceModeRead
185     );
186
187 BOOLEAN
188 emuSendPacketAggN (
189     IN P_ADAPTER_T prAdapter,
190     IN UINT_32     u4PortId,
191     IN UINT_32     u4AggNum,
192     IN UINT_32     u4LenStart,
193     IN UINT_32     u4LenEnd,
194     IN BOOLEAN     fgUseIntrEnhanceModeRead
195     );
196
197 BOOLEAN
198 emuReadHalfRxPacket (
199     IN P_ADAPTER_T prAdapter
200     );
201
202 BOOLEAN
203 emuLPown_ownback_stress (
204     IN P_ADAPTER_T prAdapter,
205     IN UINT_32     u4LoopCount
206     );
207
208 BOOLEAN
209 emuLPown_illegal_access (
210     IN P_ADAPTER_T prAdapter
211     );
212
213 BOOLEAN
214 emuIntrEnhanceChk (
215     IN P_ADAPTER_T prAdapter
216     );
217
218 BOOLEAN
219 emuResetTxCount (
220     IN P_ADAPTER_T prAdapter
221     );
222
223 BOOLEAN
224 emuChkTxState (
225     IN P_ADAPTER_T prAdapter
226     );
227
228 BOOLEAN
229 emuChkRxState (
230     IN P_ADAPTER_T prAdapter
231     );
232
233 BOOLEAN
234 emuRxPacket1 (
235     IN P_ADAPTER_T prAdapter,
236     IN UINT_32      u4PortId,
237     IN UINT_32      u4RxLen,
238     IN BOOLEAN fgEnIntrEnhanceMode,
239     IN BOOLEAN fgEnRxEnhanceMode,
240     IN BOOLEAN fgMBoxReadClearByRxEnhance
241     );
242
243 BOOLEAN
244 emuRxPacketLenChk (
245     IN P_ADAPTER_T prAdapter
246     );
247
248 BOOLEAN
249 emuRxPacketAggN (
250     IN P_ADAPTER_T prAdapter,
251     IN UINT_32      u4PortId,
252     IN BOOLEAN fgEnRxEnhanceMode,
253     IN UINT_32 u4RxLen,
254     IN UINT_32 u4AggNum,
255     IN UINT_32 u4MaxReadAggNum//0: unlimited
256     );
257
258 BOOLEAN
259 emuRxPacketSwHdrFormat (
260     IN P_ADAPTER_T prAdapter,
261     IN UINT_32      u4PortId,
262     IN UINT_32      u4RxLen,
263     IN UINT_32      u4Num
264     );
265
266 BOOLEAN
267 emuRxPacketLenOverflow (
268     IN P_ADAPTER_T prAdapter
269     );
270
271 BOOLEAN
272 emuTxPacketBurstInSwHdrFormat (
273     IN P_ADAPTER_T prAdapter,
274     IN BOOLEAN      fgEnable
275     );
276
277 BOOLEAN
278 emuRxPacketBurstInSwHdrFormat (
279     IN P_ADAPTER_T prAdapter,
280     IN BOOLEAN      fgEnable
281     );
282
283 BOOLEAN
284 emuSendPacketAggNSwHdrFormat (
285     IN P_ADAPTER_T prAdapter,
286     IN UINT_32     u4PortId,
287     IN UINT_32     u4LenStart
288     );
289
290 #define RUN_TEST_CASE(_Fmt) \
291     { \
292         if (status == FALSE) { \
293             break; \
294         } \
295         if (_Fmt == FALSE) { \
296             status = FALSE; \
297             break; \
298         } \
299     }
300 /*******************************************************************************
301 *                              F U N C T I O N S
302 ********************************************************************************
303 */
304
305 #endif /* _HIF_EMU_H */
306
307
308