add rk3288 pinctrl dts code
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / mt5931_kk / drv_wlan / include / wlan_p2p.h
1 /*
2 ** $Id: //Department/DaVinci/TRUNK/WiFi_P2P_Driver/include/wlan_p2p.h#3 $
3 */
4
5 /*! \file   "wlan_p2p.h"
6     \brief This file contains the declairations of Wi-Fi Direct command 
7            processing routines 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: wlan_p2p.h $
54 ** 
55 ** 08 24 2012 cp.wu
56 ** [WCXRP00001269] [MT6620 Wi-Fi][Driver] cfg80211 porting merge back to DaVinci
57 ** .
58 ** 
59 ** 08 24 2012 cp.wu
60 ** [WCXRP00001269] [MT6620 Wi-Fi][Driver] cfg80211 porting merge back to DaVinci
61 ** cfg80211 support merge back from ALPS.JB to DaVinci - MT6620 Driver v2.3 branch.
62  *
63  * 07 17 2012 yuche.tsai
64  * NULL
65  * Compile no error before trial run.
66  *
67  * 11 19 2011 yuche.tsai
68  * NULL
69  * Add RSSI support for P2P network.
70  *
71  * 11 08 2011 yuche.tsai
72  * [WCXRP00001094] [Volunteer Patch][Driver] Driver version & supplicant version query & set support for service discovery version check.
73  * Add support for driver version query & p2p supplicant verseion set.
74  * For new service discovery mechanism sync.
75  *
76  * 10 18 2011 yuche.tsai
77  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
78  * Support Channle Query.
79  *
80  * 10 18 2011 yuche.tsai
81  * [WCXRP00001045] [WiFi Direct][Driver] Check 2.1 branch.
82  * New 2.1 branch
83
84  *
85  * 04 27 2011 george.huang
86  * [WCXRP00000684] [MT6620 Wi-Fi][Driver] Support P2P setting ARP filter
87  * Support P2P ARP filter setting on early suspend/ late resume
88  *
89  * 04 08 2011 george.huang
90  * [WCXRP00000621] [MT6620 Wi-Fi][Driver] Support P2P supplicant to set power mode
91  * separate settings of P2P and AIS
92  *
93  * 03 22 2011 george.huang
94  * [WCXRP00000504] [MT6620 Wi-Fi][FW] Support Sigma CAPI for power saving related command
95  * link with supplicant commands
96  *
97  * 03 07 2011 wh.su
98  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
99  * rename the define to anti_pviracy.
100  *
101  * 03 02 2011 wh.su
102  * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
103  * Add Security check related code.
104  *
105  * 01 05 2011 cp.wu
106  * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
107  * ioctl implementations for P2P Service Discovery
108  *
109  * 12 22 2010 cp.wu
110  * [WCXRP00000283] [MT6620 Wi-Fi][Driver][Wi-Fi Direct] Implementation of interface for supporting Wi-Fi Direct Service Discovery
111  * 1. header file restructure for more clear module isolation
112  * 2. add function interface definition for implementing Service Discovery callbacks
113  *
114  * 09 21 2010 kevin.huang
115  * [WCXRP00000054] [MT6620 Wi-Fi][Driver] Restructure driver for second Interface
116  * Isolate P2P related function for Hardware Software Bundle
117  *
118  * 08 16 2010 cp.wu
119  * NULL
120  * add subroutines for P2P to set multicast list.
121  *
122  * 08 16 2010 george.huang
123  * NULL
124  * support wlanoidSetP2pPowerSaveProfile() in P2P
125  *
126  * 08 16 2010 george.huang
127  * NULL
128  * Support wlanoidSetNetworkAddress() for P2P
129  *
130  * 07 08 2010 cp.wu
131  *
132  * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
133  *
134  * 06 06 2010 kevin.huang
135  * [WPD00003832][MT6620 5931] Create driver base
136  * [MT6620 5931] Create driver base
137  *
138  * 05 17 2010 cp.wu
139  * [WPD00001943]Create WiFi test driver framework on WinXP
140  * MT6620 is not supporting NDIS_PACKET_TYPE_PROMISCUOUS.
141  *
142
143  *
144 **
145 */
146
147 #ifndef _WLAN_P2P_H
148 #define _WLAN_P2P_H
149
150 /*******************************************************************************
151 *                         C O M P I L E R   F L A G S
152 ********************************************************************************
153 */
154
155 /*******************************************************************************
156 *                    E X T E R N A L   R E F E R E N C E S
157 ********************************************************************************
158 */
159
160 #if CFG_ENABLE_WIFI_DIRECT
161 /*******************************************************************************
162 *                              C O N S T A N T S
163 ********************************************************************************
164 */
165
166 /*******************************************************************************
167 *                            P U B L I C   D A T A
168 ********************************************************************************
169 */
170
171 /* Service Discovery */
172 typedef struct _PARAM_P2P_SEND_SD_RESPONSE {
173     PARAM_MAC_ADDRESS   rReceiverAddr;
174     UINT_8              fgNeedTxDoneIndication;
175     UINT_8              ucChannelNum;
176     UINT_16                 u2PacketLength;
177     UINT_8              aucPacketContent[0]; /*native 802.11*/
178 } PARAM_P2P_SEND_SD_RESPONSE, *P_PARAM_P2P_SEND_SD_RESPONSE;
179
180 typedef struct _PARAM_P2P_GET_SD_REQUEST {
181     PARAM_MAC_ADDRESS   rTransmitterAddr;
182     UINT_16                 u2PacketLength;
183     UINT_8              aucPacketContent[0]; /*native 802.11*/
184 } PARAM_P2P_GET_SD_REQUEST, *P_PARAM_P2P_GET_SD_REQUEST;
185
186 typedef struct _PARAM_P2P_GET_SD_REQUEST_EX {
187     PARAM_MAC_ADDRESS   rTransmitterAddr;
188     UINT_16                 u2PacketLength;
189     UINT_8                  ucChannelNum;            /* Channel Number Where SD Request is received. */
190     UINT_8                  ucSeqNum;                   /* Get SD Request by sequence number. */
191     UINT_8              aucPacketContent[0]; /*native 802.11*/
192 } PARAM_P2P_GET_SD_REQUEST_EX, *P_PARAM_P2P_GET_SD_REQUEST_EX;
193
194 typedef struct _PARAM_P2P_SEND_SD_REQUEST {
195     PARAM_MAC_ADDRESS   rReceiverAddr;
196     UINT_8              fgNeedTxDoneIndication;
197     UINT_8              ucVersionNum;               /* Indicate the Service Discovery Supplicant Version. */
198     UINT_16             u2PacketLength;
199     UINT_8              aucPacketContent[0]; /*native 802.11*/
200 } PARAM_P2P_SEND_SD_REQUEST, *P_PARAM_P2P_SEND_SD_REQUEST;
201
202 /* Service Discovery 1.0. */
203 typedef struct _PARAM_P2P_GET_SD_RESPONSE {
204     PARAM_MAC_ADDRESS   rTransmitterAddr;
205     UINT_16             u2PacketLength;
206     UINT_8              aucPacketContent[0]; /*native 802.11*/
207 } PARAM_P2P_GET_SD_RESPONSE, *P_PARAM_P2P_GET_SD_RESPONSE;
208
209 /* Service Discovery 2.0. */
210 typedef struct _PARAM_P2P_GET_SD_RESPONSE_EX {
211     PARAM_MAC_ADDRESS   rTransmitterAddr;
212     UINT_16             u2PacketLength;
213     UINT_8              ucSeqNum;                       /* Get SD Response by sequence number. */
214     UINT_8              aucPacketContent[0]; /*native 802.11*/
215 } PARAM_P2P_GET_SD_RESPONSE_EX, *P_PARAM_P2P_GET_SD_RESPONSE_EX;
216
217
218 typedef struct _PARAM_P2P_TERMINATE_SD_PHASE {
219     PARAM_MAC_ADDRESS   rPeerAddr;
220 } PARAM_P2P_TERMINATE_SD_PHASE, *P_PARAM_P2P_TERMINATE_SD_PHASE;
221
222
223 /*! \brief Key mapping of BSSID */
224 typedef struct _P2P_PARAM_KEY_T
225 {
226     UINT_32             u4Length;             /*!< Length of structure */
227     UINT_32             u4KeyIndex;           /*!< KeyID */
228     UINT_32             u4KeyLength;          /*!< Key length in bytes */
229     PARAM_MAC_ADDRESS   arBSSID;              /*!< MAC address */
230     PARAM_KEY_RSC       rKeyRSC;
231     UINT_8              aucKeyMaterial[32];    /*!< Key content by above setting */
232 } P2P_PARAM_KEY_T, *P_P2P_PARAM_KEY_T;
233
234 #if CONFIG_NL80211_TESTMODE
235
236 typedef struct _NL80211_DRIVER_TEST_PRE_PARAMS {
237         UINT_16 idx_mode;
238         UINT_16 idx;
239         UINT_32 value;
240 } NL80211_DRIVER_TEST_PRE_PARAMS, *P_NL80211_DRIVER_TEST_PRE_PARAMS;
241
242
243 typedef struct _NL80211_DRIVER_TEST_PARAMS {
244         UINT_32  index;
245         UINT_32  buflen;
246 } NL80211_DRIVER_TEST_PARAMS, *P_NL80211_DRIVER_TEST_PARAMS;
247
248
249 /* P2P Sigma*/
250 typedef struct _NL80211_DRIVER_P2P_SIGMA_PARAMS {
251     NL80211_DRIVER_TEST_PARAMS hdr;
252     UINT_32  idx;
253     UINT_32  value;
254 }NL80211_DRIVER_P2P_SIGMA_PARAMS, *P_NL80211_DRIVER_P2P_SIGMA_PARAMS;
255
256
257 /* Hotspot Client Management */
258 typedef struct _NL80211_DRIVER_hotspot_block_PARAMS {
259     NL80211_DRIVER_TEST_PARAMS hdr;
260     UINT_8   ucblocked;
261     UINT_8   aucBssid[MAC_ADDR_LEN];
262 }NL80211_DRIVER_hotspot_block_PARAMS, *P_NL80211_DRIVER_hotspot_block_PARAMS;
263
264
265 #if CFG_SUPPORT_WFD
266 typedef struct _NL80211_DRIVER_WFD_PARAMS {
267     NL80211_DRIVER_TEST_PARAMS hdr;
268     UINT_32  WfdCmdType;
269     UINT_8       WfdEnable;
270     UINT_8       WfdCoupleSinkStatus;
271     UINT_8   WfdSessionAvailable;
272     UINT_8   WfdSigmaMode;
273     UINT_16  WfdDevInfo;
274     UINT_16  WfdControlPort;
275     UINT_16  WfdMaximumTp;
276     UINT_16  WfdExtendCap;
277     UINT_8       WfdCoupleSinkAddress[MAC_ADDR_LEN];
278     UINT_8       WfdAssociatedBssid[MAC_ADDR_LEN];
279     UINT_8       WfdVideoIp[4];
280     UINT_8       WfdAudioIp[4];
281     UINT_16  WfdVideoPort;
282     UINT_16  WfdAudioPort;
283     UINT_32  WfdFlag;
284     UINT_32  WfdPolicy;
285     UINT_32  WfdState;
286     UINT_8       WfdSessionInformationIE[24*8]; // Include Subelement ID, length
287     UINT_16  WfdSessionInformationIELen;
288     UINT_8   aucReserved1[2];
289     UINT_8   aucWfdPrimarySinkMac[MAC_ADDR_LEN];
290     UINT_8   aucWfdSecondarySinkMac[MAC_ADDR_LEN];
291     UINT_32  WfdAdvanceFlag;
292     UINT_8   aucWfdLocalIp[4];
293     UINT_8       aucReserved2[64];
294     UINT_8       aucReserved3[64];
295     UINT_8       aucReserved4[64];
296 }NL80211_DRIVER_WFD_PARAMS, *P_NL80211_DRIVER_WFD_PARAMS;
297 #endif
298
299
300
301 #endif
302
303
304 /*******************************************************************************
305 *                           P R I V A T E   D A T A
306 ********************************************************************************
307 */
308
309 /*******************************************************************************
310 *                                 M A C R O S
311 ********************************************************************************
312 */
313
314 /*******************************************************************************
315 *                   F U N C T I O N   D E C L A R A T I O N S
316 ********************************************************************************
317 */
318
319 /*--------------------------------------------------------------*/
320 /* Routines to handle command                                   */
321 /*--------------------------------------------------------------*/
322 WLAN_STATUS
323 wlanoidSetAddP2PKey(
324     IN  P_ADAPTER_T prAdapter,
325     IN  PVOID       pvSetBuffer,
326     IN  UINT_32     u4SetBufferLen,
327     OUT PUINT_32    pu4SetInfoLen
328     );
329
330 WLAN_STATUS
331 wlanoidSetRemoveP2PKey(
332     IN  P_ADAPTER_T prAdapter,
333     IN  PVOID       pvSetBuffer,
334     IN  UINT_32     u4SetBufferLen,
335     OUT PUINT_32    pu4SetInfoLen
336     );
337
338 WLAN_STATUS
339 wlanoidSetNetworkAddress(
340     IN  P_ADAPTER_T prAdapter,
341     IN  PVOID       pvSetBuffer,
342     IN  UINT_32     u4SetBufferLen,
343     OUT PUINT_32    pu4SetInfoLen
344     );
345
346 WLAN_STATUS
347 wlanoidSetP2PMulticastList(
348     IN  P_ADAPTER_T prAdapter,
349     IN  PVOID       pvSetBuffer,
350     IN  UINT_32     u4SetBufferLen,
351     OUT PUINT_32    pu4SetInfoLen
352     );
353
354 /*--------------------------------------------------------------*/
355 /* Service Discovery Subroutines                                */
356 /*--------------------------------------------------------------*/
357 WLAN_STATUS
358 wlanoidSendP2PSDRequest(
359     IN  P_ADAPTER_T prAdapter,
360     IN  PVOID       pvSetBuffer,
361     IN  UINT_32     u4SetBufferLen,
362     OUT PUINT_32    pu4SetInfoLen
363     );
364
365 WLAN_STATUS
366 wlanoidSendP2PSDResponse(
367     IN  P_ADAPTER_T prAdapter,
368     IN  PVOID       pvSetBuffer,
369     IN  UINT_32     u4SetBufferLen,
370     OUT PUINT_32    pu4SetInfoLen
371     );
372
373 WLAN_STATUS
374 wlanoidGetP2PSDRequest(
375     IN  P_ADAPTER_T prAdapter,
376     IN  PVOID       pvSetBuffer,
377     IN  UINT_32     u4SetBufferLen,
378     OUT PUINT_32    pu4SetInfoLen
379     );
380
381 WLAN_STATUS
382 wlanoidGetP2PSDResponse(
383     IN  P_ADAPTER_T prAdapter,
384     IN  PVOID       pvQueryBuffer,
385     IN  UINT_32     u4QueryBufferLen,
386     OUT PUINT_32    puQueryInfoLen
387     );
388
389 WLAN_STATUS
390 wlanoidSetP2PTerminateSDPhase(
391     IN  P_ADAPTER_T prAdapter,
392     IN  PVOID       pvQueryBuffer,
393     IN  UINT_32     u4QueryBufferLen,
394     OUT PUINT_32    pu4QueryInfoLen
395     );
396
397 #if CFG_SUPPORT_ANTI_PIRACY
398 WLAN_STATUS
399 wlanoidSetSecCheckRequest(
400     IN  P_ADAPTER_T prAdapter,
401     IN  PVOID       pvSetBuffer,
402     IN  UINT_32     u4SetBufferLen,
403     OUT PUINT_32    pu4SetInfoLen
404     );
405
406 WLAN_STATUS
407 wlanoidGetSecCheckResponse(
408     IN  P_ADAPTER_T prAdapter,
409     IN  PVOID       pvQueryBuffer,
410     IN  UINT_32     u4QueryBufferLen,
411     OUT PUINT_32    pu4QueryInfoLen
412     );
413 #endif
414
415 WLAN_STATUS
416 wlanoidSetNoaParam (
417     IN  P_ADAPTER_T       prAdapter,
418     IN  PVOID             pvSetBuffer,
419     IN  UINT_32           u4SetBufferLen,
420     OUT PUINT_32          pu4SetInfoLen
421     );
422
423 WLAN_STATUS
424 wlanoidSetOppPsParam (
425     IN  P_ADAPTER_T       prAdapter,
426     IN  PVOID             pvSetBuffer,
427     IN  UINT_32           u4SetBufferLen,
428     OUT PUINT_32          pu4SetInfoLen
429     );
430
431 WLAN_STATUS
432 wlanoidSetUApsdParam (
433     IN  P_ADAPTER_T       prAdapter,
434     IN  PVOID             pvSetBuffer,
435     IN  UINT_32           u4SetBufferLen,
436     OUT PUINT_32          pu4SetInfoLen
437     );
438
439 WLAN_STATUS
440 wlanoidQueryP2pPowerSaveProfile (
441     IN  P_ADAPTER_T prAdapter,
442     IN  PVOID       pvQueryBuffer,
443     IN  UINT_32     u4QueryBufferLen,
444     OUT PUINT_32    pu4QueryInfoLen
445     );
446
447 WLAN_STATUS
448 wlanoidSetP2pPowerSaveProfile (
449     IN  P_ADAPTER_T prAdapter,
450     IN  PVOID       pvSetBuffer,
451     IN  UINT_32     u4SetBufferLen,
452     OUT PUINT_32    pu4SetInfoLen
453     );
454
455 WLAN_STATUS
456 wlanoidSetP2pSetNetworkAddress (
457     IN  P_ADAPTER_T prAdapter,
458     IN  PVOID       pvSetBuffer,
459     IN  UINT_32     u4SetBufferLen,
460     OUT PUINT_32    pu4SetInfoLen
461     );
462
463 WLAN_STATUS
464 wlanoidQueryP2pOpChannel(
465     IN P_ADAPTER_T prAdapter,
466     IN PVOID pvQueryBuffer,
467     IN UINT_32 u4QueryBufferLen,
468     OUT PUINT_32 pu4QueryInfoLen
469     );
470
471 WLAN_STATUS
472 wlanoidQueryP2pVersion(
473     IN P_ADAPTER_T prAdapter,
474     IN PVOID pvQueryBuffer,
475     IN UINT_32 u4QueryBufferLen,
476     OUT PUINT_32 pu4QueryInfoLen
477     );
478
479 WLAN_STATUS
480 wlanoidSetP2pSupplicantVersion(
481     IN  P_ADAPTER_T       prAdapter,
482     IN  PVOID             pvSetBuffer,
483     IN  UINT_32           u4SetBufferLen,
484     OUT PUINT_32          pu4SetInfoLen
485     );
486
487 #if CFG_SUPPORT_P2P_RSSI_QUERY
488 WLAN_STATUS
489 wlanoidQueryP2pRssi(
490     IN P_ADAPTER_T prAdapter,
491     IN PVOID pvQueryBuffer,
492     IN UINT_32 u4QueryBufferLen,
493     OUT PUINT_32 pu4QueryInfoLen
494     );
495 #endif
496
497
498 /*--------------------------------------------------------------*/
499 /* Callbacks for event indication                               */
500 /*--------------------------------------------------------------*/
501
502 /*******************************************************************************
503 *                              F U N C T I O N S
504 ********************************************************************************
505 */
506
507 #endif
508 #endif /* _WLAN_P2P_H */
509