wifi: renew patch drivers/net/wireless
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / mt5931 / os / linux / include / gl_p2p_kal.h
1 /*
2 ** $Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/os/linux/include/gl_p2p_kal.h#2 $
3 */
4
5 /*! \file   gl_p2p_kal.h
6     \brief  Declaration of KAL functions for Wi-Fi Direct support
7             - kal*() which is provided by GLUE Layer.
8
9     Any definitions in this file will be shared among GLUE Layer and internal Driver Stack.
10 */
11
12
13
14 /*
15 ** $Log: gl_p2p_kal.h $
16 ** 
17 ** 08 29 2012 chinglan.wang
18 ** [ALPS00349655] [Need Patch] [Volunteer Patch] [ALPS.JB] Daily build warning on [mt6575_phone_mhl-eng]
19 ** .
20  *
21  * 07 17 2012 yuche.tsai
22  * NULL
23  * Compile no error before trial run.
24  *
25  * 10 18 2011 yuche.tsai
26  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
27  * New 2.1 branch
28
29  *
30  * 08 15 2011 yuche.tsai
31  * [WCXRP00000919] [Volunteer Patch][WiFi Direct][Driver] Invitation New Feature.
32  * Add group BSSID in invitation request indication.
33  * The BSSID is used for APP to decide the configure method.
34  *
35  * 08 09 2011 yuche.tsai
36  * [WCXRP00000919] [Volunteer Patch][WiFi Direct][Driver] Invitation New Feature.
37  * Invitation Feature add on.
38  *
39  * 03 19 2011 terry.wu
40  * [WCXRP00000577] [MT6620 Wi-Fi][Driver][FW] Create V2.0 branch for firmware and driver
41  * create V2.0 p2p driver release based on label "MT6620_WIFI_P2P_DRIVER_V2_0_2100_0319_2011" from main trunk.
42  *
43  * 03 07 2011 wh.su
44  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
45  * rename the define to anti_pviracy.
46  *
47  * 03 05 2011 wh.su
48  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
49  * add the code to get the check rsponse and indicate to app.
50  *
51  * 03 02 2011 wh.su
52  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
53  * Add Security check related code.
54  *
55  * 12 22 2010 cp.wu
56  * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
57  * 1. header file restructure for more clear module isolation
58  * 2. add function interface definition for implementing Service Discovery callbacks
59  *
60 */
61
62 #ifndef _GL_P2P_KAL_H
63 #define _GL_P2P_KAL_H
64
65
66 /*******************************************************************************
67 *                         C O M P I L E R   F L A G S
68 ********************************************************************************
69 */
70
71 /*******************************************************************************
72 *                    E X T E R N A L   R E F E R E N C E S
73 ********************************************************************************
74 */
75 #include "config.h"
76 #include "gl_typedef.h"
77 #include "gl_os.h"
78 #include "wlan_lib.h"
79 #include "wlan_oid.h"
80 #include "wlan_p2p.h"
81 #include "gl_kal.h"
82 #include "gl_wext_priv.h"
83 #include "gl_p2p_ioctl.h"
84 #include "nic/p2p.h"
85
86
87 #if DBG
88     extern int allocatedMemSize;
89 #endif
90
91 /*******************************************************************************
92 *                              C O N S T A N T S
93 ********************************************************************************
94 */
95
96 /*******************************************************************************
97 *                                 M A C R O S
98 ********************************************************************************
99 */
100
101 /*******************************************************************************
102 *                             D A T A   T Y P E S
103 ********************************************************************************
104 */
105
106 /*******************************************************************************
107 *                            P U B L I C   D A T A
108 ********************************************************************************
109 */
110
111 /*******************************************************************************
112 *                           P R I V A T E   D A T A
113 ********************************************************************************
114 */
115
116 /*******************************************************************************
117 *                  F U N C T I O N   D E C L A R A T I O N S
118 ********************************************************************************
119 */
120
121 /* Service Discovery */
122 VOID
123 kalP2PIndicateSDRequest(
124     IN P_GLUE_INFO_T        prGlueInfo,
125     IN PARAM_MAC_ADDRESS    rPeerAddr,
126     IN UINT_8 ucSeqNum
127     );
128
129 void
130 kalP2PIndicateSDResponse(
131     IN P_GLUE_INFO_T        prGlueInfo,
132     IN PARAM_MAC_ADDRESS    rPeerAddr,
133     IN UINT_8 ucSeqNum
134     );
135
136 VOID
137 kalP2PIndicateTXDone(
138     IN P_GLUE_INFO_T        prGlueInfo,
139     IN UINT_8               ucSeqNum,
140     IN UINT_8               ucStatus
141     );
142
143 /*----------------------------------------------------------------------------*/
144 /* Wi-Fi Direct handling                                                      */
145 /*----------------------------------------------------------------------------*/
146 ENUM_PARAM_MEDIA_STATE_T
147 kalP2PGetState (
148     IN P_GLUE_INFO_T        prGlueInfo
149     );
150
151 VOID
152 kalP2PSetState (
153     IN P_GLUE_INFO_T            prGlueInfo,
154     IN ENUM_PARAM_MEDIA_STATE_T eState,
155     IN PARAM_MAC_ADDRESS        rPeerAddr,
156     IN UINT_8                   ucRole
157     );
158
159 VOID
160 kalP2PUpdateAssocInfo(
161     IN P_GLUE_INFO_T    prGlueInfo,
162     IN PUINT_8          pucFrameBody,
163     IN UINT_32          u4FrameBodyLen,
164     IN BOOLEAN          fgReassocRequest
165     );
166
167 UINT_32
168 kalP2PGetFreqInKHz(
169     IN P_GLUE_INFO_T prGlueInfo
170     );
171
172 UINT_8
173 kalP2PGetRole(
174     IN P_GLUE_INFO_T    prGlueInfo
175     );
176
177 VOID
178 kalP2PSetRole(
179     IN P_GLUE_INFO_T    prGlueInfo,
180     IN UINT_8           ucResult,
181     IN PUINT_8          pucSSID,
182     IN UINT_8           ucSSIDLen,
183     IN UINT_8           ucRole
184     );
185
186 VOID
187 kalP2PSetCipher(
188     IN P_GLUE_INFO_T    prGlueInfo,
189     IN UINT_32          u4Cipher
190     );
191
192 BOOLEAN
193 kalP2PGetCipher(
194     IN P_GLUE_INFO_T    prGlueInfo
195     );
196
197 BOOLEAN
198 kalP2PGetTkipCipher(
199     IN P_GLUE_INFO_T    prGlueInfo
200     );
201
202
203 BOOLEAN
204 kalP2PGetCcmpCipher(
205     IN P_GLUE_INFO_T    prGlueInfo
206     );
207
208
209 VOID
210 kalP2PSetWscMode (
211     IN P_GLUE_INFO_T    prGlueInfo,
212     IN UINT_8           ucWscMode
213     );
214
215 UINT_8
216 kalP2PGetWscMode(
217     IN P_GLUE_INFO_T    prGlueInfo
218     );
219
220 UINT_16
221 kalP2PCalWSC_IELen(
222     IN P_GLUE_INFO_T    prGlueInfo,
223     IN UINT_8           ucType
224     );
225
226 VOID
227 kalP2PGenWSC_IE(
228     IN P_GLUE_INFO_T    prGlueInfo,
229     IN UINT_8           ucType,
230     IN PUINT_8          pucBuffer
231     );
232
233
234 VOID
235 kalP2PUpdateWSC_IE(
236     IN P_GLUE_INFO_T prGlueInfo,
237     IN UINT_8 ucType,
238     IN PUINT_8 pucBuffer,
239     IN UINT_16 u2BufferLength
240     );
241
242
243
244 BOOLEAN
245 kalP2PIndicateFound(
246     IN P_GLUE_INFO_T    prGlueInfo
247     );
248
249 VOID
250 kalP2PIndicateConnReq(
251     IN P_GLUE_INFO_T        prGlueInfo,
252     IN PUINT_8              pucDevName,
253     IN INT_32               u4NameLength,
254     IN PARAM_MAC_ADDRESS    rPeerAddr,
255     IN UINT_8               ucDevType, /* 0: P2P Device / 1: GC / 2: GO */
256     IN INT_32               i4ConfigMethod,
257     IN INT_32               i4ActiveConfigMethod
258     );
259
260 VOID
261 kalP2PInvitationStatus (
262     IN P_GLUE_INFO_T prGlueInfo,
263     IN UINT_32       u4InvStatus
264     );
265
266 VOID
267 kalP2PInvitationIndication(
268         IN P_GLUE_INFO_T prGlueInfo,
269         IN P_P2P_DEVICE_DESC_T prP2pDevDesc,
270         IN PUINT_8 pucSsid,
271         IN UINT_8 ucSsidLen,
272         IN UINT_8 ucOperatingChnl,
273         IN UINT_8 ucInvitationType,
274         IN PUINT_8 pucGroupBssid
275         );
276
277
278 struct net_device*
279 kalP2PGetDevHdlr(
280     P_GLUE_INFO_T prGlueInfo
281     );
282
283 VOID
284 kalGetChnlList(
285     IN P_GLUE_INFO_T        prGlueInfo,
286     IN ENUM_BAND_T          eSpecificBand,
287     IN UINT_8               ucMaxChannelNum,
288     IN PUINT_8              pucNumOfChannel,
289     IN P_RF_CHANNEL_INFO_T  paucChannelList
290     );
291
292 #if CFG_SUPPORT_ANTI_PIRACY
293 VOID
294 kalP2PIndicateSecCheckRsp(
295     IN P_GLUE_INFO_T prGlueInfo,
296     IN PUINT_8       pucRsp,
297     IN UINT_16       u2RspLen
298     );
299 #endif
300
301 /*******************************************************************************
302 *                              F U N C T I O N S
303 ********************************************************************************
304 */
305
306 VOID
307 kalP2PIndicateChannelReady(
308     IN P_GLUE_INFO_T prGlueInfo,
309     IN UINT_64 u8SeqNum,
310     IN UINT_32 u4ChannelNum,
311     IN ENUM_BAND_T eBand,
312     IN ENUM_CHNL_EXT_T eSco,
313     IN UINT_32 u4Duration
314     );
315
316 VOID
317 kalP2PIndicateScanDone(
318     IN P_GLUE_INFO_T prGlueInfo,
319     IN BOOLEAN fgIsAbort
320     );
321
322 VOID
323 kalP2PIndicateBssInfo(
324     IN P_GLUE_INFO_T prGlueInfo,
325     IN PUINT_8 pucFrameBuf,
326     IN UINT_32 u4BufLen,
327     IN P_RF_CHANNEL_INFO_T prChannelInfo,
328     IN INT_32 i4SignalStrength
329     );
330
331 VOID
332 kalP2PIndicateRxMgmtFrame(
333         IN P_GLUE_INFO_T prGlueInfo,
334         IN P_SW_RFB_T prSwRfb
335         );
336
337 VOID
338 kalP2PIndicateMgmtTxStatus(
339         IN P_GLUE_INFO_T prGlueInfo,
340         IN UINT_64 u8Cookie,
341         IN BOOLEAN fgIsAck,
342         IN PUINT_8 pucFrameBuf,
343         IN UINT_32 u4FrameLen
344         );
345
346 VOID
347 kalP2PIndicateChannelExpired(
348     IN P_GLUE_INFO_T prGlueInfo,
349     IN P_P2P_CHNL_REQ_INFO_T prChnlReqInfo
350     );
351
352 VOID
353 kalP2PGCIndicateConnectionStatus(
354     IN P_GLUE_INFO_T prGlueInfo,
355     IN P_P2P_CONNECTION_REQ_INFO_T prP2pConnInfo,
356     IN PUINT_8 pucRxIEBuf,
357     IN UINT_16 u2RxIELen,
358     IN UINT_16 u2StatusReason
359     );
360
361
362 VOID
363 kalP2PGOStationUpdate(
364     IN P_GLUE_INFO_T prGlueInfo,
365     IN P_STA_RECORD_T prCliStaRec,
366     IN BOOLEAN fgIsNew
367     );
368
369 BOOLEAN
370 kalP2PSetBlackList (
371     IN P_GLUE_INFO_T    prGlueInfo,
372     IN PARAM_MAC_ADDRESS rbssid,
373     IN BOOLEAN fgIsblock
374     );
375
376 BOOLEAN
377 kalP2PCmpBlackList (
378     IN P_GLUE_INFO_T    prGlueInfo,
379     IN PARAM_MAC_ADDRESS rbssid
380     );
381
382 VOID
383 kalP2PSetMaxClients (
384     IN P_GLUE_INFO_T    prGlueInfo,
385     IN UINT_32 u4MaxClient
386     );
387
388 BOOLEAN
389 kalP2PMaxClients (
390     IN P_GLUE_INFO_T    prGlueInfo,
391     IN UINT_32 u4NumClient
392     );
393
394 #endif /* _GL_P2P_KAL_H */
395