2 ** $Id: //Department/DaVinci/BRANCHES/MT662X_593X_WIFI_DRIVER_V2_3/os/linux/include/gl_wext_priv.h#1 $
5 /*! \file gl_wext_priv.h
6 \brief This file includes private ioctl support.
9 /*******************************************************************************
10 * Copyright (c) 2007 MediaTek Inc.
12 * All rights reserved. Copying, compilation, modification, distribution
13 * or any other use whatsoever of this material is strictly prohibited
14 * except in accordance with a Software License Agreement with
16 ********************************************************************************
19 /*******************************************************************************
22 * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND
23 * AGREES THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK
24 * SOFTWARE") RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE
25 * PROVIDED TO BUYER ON AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY
26 * DISCLAIMS ANY AND ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
27 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
28 * PARTICULAR PURPOSE OR NONINFRINGEMENT. NEITHER DOES MEDIATEK PROVIDE
29 * ANY WARRANTY WHATSOEVER WITH RESPECT TO THE SOFTWARE OF ANY THIRD PARTY
30 * WHICH MAY BE USED BY, INCORPORATED IN, OR SUPPLIED WITH THE MEDIATEK
31 * SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY
32 * WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE
33 * FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S SPECIFICATION OR TO
34 * CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
36 * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
37 * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL
38 * BE, AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT
39 * ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY
40 * BUYER TO MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
42 * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
43 * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT
44 * OF LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING
45 * THEREOF AND RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN
46 * FRANCISCO, CA, UNDER THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE
48 ********************************************************************************
52 ** $Log: gl_wext_priv.h $
55 * [WCXRP00001170] [MT6620 Wi-Fi][Driver] Adding the related code for set/get band ioctl
56 * Adding the template code for set / get band IOCTL (with ICS supplicant_6)..
59 * [WCXRP00001153] [MT6620 Wi-Fi][Driver] Adding the get_ch_list and set_tx_power proto type function
60 * Adding the related ioctl / wlan oid function to set the Tx power cfg.
63 * [WCXRP00001153] [MT6620 Wi-Fi][Driver] Adding the get_ch_list and set_tx_power proto type function
64 * Adding the proto type function for set_int set_tx_power and get int get_ch_list.
66 * 11 08 2011 yuche.tsai
67 * [WCXRP00001094] [Volunteer Patch][Driver] Driver version & supplicant version query & set support for service discovery version check.
68 * Add a CMD ID for P2P driver version query.
70 * 03 17 2011 chinglan.wang
71 * [WCXRP00000570] [MT6620 Wi-Fi][Driver] Add Wi-Fi Protected Setup v2.0 feature
75 * [WCXRP00000506] [MT6620 Wi-Fi][Driver][FW] Add Security check related code
76 * Add security check code.
79 * [WCXRP00000402] [MT6620 Wi-Fi][Driver] Enable MCR read/write by iwpriv by default
82 * 01 20 2011 eddie.chen
83 * [WCXRP00000374] [MT6620 Wi-Fi][DRV] SW debug control
84 * Add Oid for sw control debug command
87 * [WCXRP00000336] [MT6620 Wi-Fi][Driver] Add test mode commands in normal phone operation
88 * Add a new compiling option to control if MCR read/write is permitted
91 * [WCXRP00000336] [MT6620 Wi-Fi][Driver] Add test mode commands in normal phone operation
92 * Add some iwpriv commands to support test mode operation
95 * [WCXRP00000171] [MT6620 Wi-Fi][Driver] Add message check code same behavior as mt5921
96 * add the message check code from mt5921.
99 * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check[WCXRP00000086] [MT6620 Wi-Fi][Driver] The mac address is all zero at android
100 * complete implementation of Android NVRAM access
103 * [WCXRP00000056] [MT6620 Wi-Fi][Driver] NVRAM implementation with Version Check
104 * add skeleton for NVRAM integration
108 * revert changelist #15371, efuse read/write access will be done by RF test approach
112 * add OID definitions for EFUSE read/write access.
116 * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
118 * 06 06 2010 kevin.huang
119 * [WPD00003832][MT6620 5931] Create driver base
120 * [MT6620 5931] Create driver base
123 * [WPD00003816][MT6620 Wi-Fi] Adding the security support
124 * modify the wapi related code for new driver's design.
126 * 03 24 2010 jeffrey.chang
127 * [WPD00003826]Initial import for Linux port
128 * initial import for Linux port
129 ** \main\maintrunk.MT5921\16 2009-09-29 16:47:23 GMT mtk01090
130 ** Remove unused functions
131 ** \main\maintrunk.MT5921\15 2009-09-28 20:19:31 GMT mtk01090
132 ** Add private ioctl to carry OID structures. Restructure public/private ioctl interfaces to Linux kernel.
133 ** \main\maintrunk.MT5921\14 2009-05-07 22:26:06 GMT mtk01089
134 ** add private IO control for Linux BWCS
135 ** \main\maintrunk.MT5921\13 2008-08-29 14:55:20 GMT mtk01088
136 ** adjust the code to meet coding style
137 ** \main\maintrunk.MT5921\12 2008-07-16 15:23:45 GMT mtk01104
138 ** Support GPIO2 mode
139 ** \main\maintrunk.MT5921\11 2008-07-14 13:55:58 GMT mtk01104
140 ** Support PRIV_CMD_BT_COEXIST
141 ** \main\maintrunk.MT5921\10 2008-07-09 00:20:24 GMT mtk01461
142 ** Add priv oid to support WMM_PS_TEST
143 ** \main\maintrunk.MT5921\9 2008-05-30 20:27:24 GMT mtk01461
144 ** Add POWER_MODE Private IOCTL cmd
145 ** \main\maintrunk.MT5921\8 2008-04-17 23:06:44 GMT mtk01461
146 ** Add iwpriv support for AdHocMode setting
147 ** \main\maintrunk.MT5921\7 2008-03-31 21:01:24 GMT mtk01461
148 ** Add priv IOCTL for VOIP settings
149 ** \main\maintrunk.MT5921\6 2008-03-31 13:49:47 GMT mtk01461
150 ** add priv ioctl arg definition for turning on / off roaming
151 ** \main\maintrunk.MT5921\5 2008-03-26 15:35:09 GMT mtk01461
152 ** Add CSUM offload priv ioctl for Linux
153 ** \main\maintrunk.MT5921\4 2008-03-11 14:51:11 GMT mtk01461
154 ** Refine private IOCTL functions
155 ** \main\maintrunk.MT5921\3 2007-11-06 19:36:25 GMT mtk01088
156 ** add the WPS related code
159 #ifndef _GL_WEXT_PRIV_H
160 #define _GL_WEXT_PRIV_H
161 /*******************************************************************************
162 * C O M P I L E R F L A G S
163 ********************************************************************************
165 /* If it is set to 1, iwpriv will support register read/write */
166 #define CFG_SUPPORT_PRIV_MCR_RW 1
168 /*******************************************************************************
169 * E X T E R N A L R E F E R E N C E S
170 ********************************************************************************
173 /*******************************************************************************
175 ********************************************************************************
177 /* New wireless extensions API - SET/GET convention (even ioctl numbers are
180 #define IOCTL_SET_INT (SIOCIWFIRSTPRIV + 0)
181 #define IOCTL_GET_INT (SIOCIWFIRSTPRIV + 1)
183 #define IOCTL_SET_ADDRESS (SIOCIWFIRSTPRIV + 2)
184 #define IOCTL_GET_ADDRESS (SIOCIWFIRSTPRIV + 3)
185 #define IOCTL_SET_STR (SIOCIWFIRSTPRIV + 4)
186 #define IOCTL_GET_STR (SIOCIWFIRSTPRIV + 5)
187 #define IOCTL_SET_KEY (SIOCIWFIRSTPRIV + 6)
188 #define IOCTL_GET_KEY (SIOCIWFIRSTPRIV + 7)
189 #define IOCTL_SET_STRUCT (SIOCIWFIRSTPRIV + 8)
190 #define IOCTL_GET_STRUCT (SIOCIWFIRSTPRIV + 9)
191 #define IOCTL_SET_STRUCT_FOR_EM (SIOCIWFIRSTPRIV + 11)
192 #define IOCTL_SET_INTS (SIOCIWFIRSTPRIV + 12)
193 #define IOCTL_GET_INTS (SIOCIWFIRSTPRIV + 13)
195 #define PRIV_CMD_REG_DOMAIN 0
196 #define PRIV_CMD_BEACON_PERIOD 1
197 #define PRIV_CMD_ADHOC_MODE 2
199 #if CFG_TCP_IP_CHKSUM_OFFLOAD
200 #define PRIV_CMD_CSUM_OFFLOAD 3
201 #endif /* CFG_TCP_IP_CHKSUM_OFFLOAD */
203 #define PRIV_CMD_ROAMING 4
204 #define PRIV_CMD_VOIP_DELAY 5
205 #define PRIV_CMD_POWER_MODE 6
207 #define PRIV_CMD_WMM_PS 7
208 #define PRIV_CMD_BT_COEXIST 8
209 #define PRIV_GPIO2_MODE 9
211 #define PRIV_CUSTOM_SET_PTA 10
212 #define PRIV_CUSTOM_CONTINUOUS_POLL 11
213 #define PRIV_CUSTOM_SINGLE_ANTENNA 12
214 #define PRIV_CUSTOM_BWCS_CMD 13
215 #define PRIV_CUSTOM_DISABLE_BEACON_DETECTION 14//later
216 #define PRIV_CMD_OID 15
217 #define PRIV_SEC_MSG_OID 16
219 #define PRIV_CMD_TEST_MODE 17
220 #define PRIV_CMD_TEST_CMD 18
221 #define PRIV_CMD_ACCESS_MCR 19
222 #define PRIV_CMD_SW_CTRL 20
224 #if 1 /* ANTI_PRIVCY */
225 #define PRIV_SEC_CHECK_OID 21
228 #define PRIV_CMD_WSC_PROBE_REQ 22
230 #define PRIV_CMD_P2P_VERSION 23
232 #define PRIV_CMD_GET_CH_LIST 24
234 #define PRIV_CMD_SET_TX_POWER 25
236 #define PRIV_CMD_BAND_CONFIG 26
238 #define PRIV_CMD_DUMP_MEM 27
240 #define PRIV_CMD_P2P_MODE 28
242 #define PRIV_CMD_GET_BUILD_DATE_CODE 29
244 /* 802.3 Objects (Ethernet) */
245 #define OID_802_3_CURRENT_ADDRESS 0x01010102
247 /* IEEE 802.11 OIDs */
248 #define OID_802_11_SUPPORTED_RATES 0x0D01020E
249 #define OID_802_11_CONFIGURATION 0x0D010211
251 /* PnP and PM OIDs, NDIS default OIDS */
252 #define OID_PNP_SET_POWER 0xFD010101
254 #define OID_CUSTOM_OID_INTERFACE_VERSION 0xFFA0C000
256 /* MT5921 specific OIDs */
257 #define OID_CUSTOM_BT_COEXIST_CTRL 0xFFA0C580
258 #define OID_CUSTOM_POWER_MANAGEMENT_PROFILE 0xFFA0C581
259 #define OID_CUSTOM_PATTERN_CONFIG 0xFFA0C582
260 #define OID_CUSTOM_BG_SSID_SEARCH_CONFIG 0xFFA0C583
261 #define OID_CUSTOM_VOIP_SETUP 0xFFA0C584
262 #define OID_CUSTOM_ADD_TS 0xFFA0C585
263 #define OID_CUSTOM_DEL_TS 0xFFA0C586
264 #define OID_CUSTOM_SLT 0xFFA0C587
265 #define OID_CUSTOM_ROAMING_EN 0xFFA0C588
266 #define OID_CUSTOM_WMM_PS_TEST 0xFFA0C589
267 #define OID_CUSTOM_COUNTRY_STRING 0xFFA0C58A
268 #define OID_CUSTOM_MULTI_DOMAIN_CAPABILITY 0xFFA0C58B
269 #define OID_CUSTOM_GPIO2_MODE 0xFFA0C58C
270 #define OID_CUSTOM_CONTINUOUS_POLL 0xFFA0C58D
271 #define OID_CUSTOM_DISABLE_BEACON_DETECTION 0xFFA0C58E
273 /* CR1460, WPS privacy bit check disable */
274 #define OID_CUSTOM_DISABLE_PRIVACY_CHECK 0xFFA0C600
277 #define OID_CUSTOM_MCR_RW 0xFFA0C801
278 #define OID_CUSTOM_EEPROM_RW 0xFFA0C803
279 #define OID_CUSTOM_SW_CTRL 0xFFA0C805
280 #define OID_CUSTOM_MEM_DUMP 0xFFA0C807
283 /* RF Test specific OIDs */
284 #define OID_CUSTOM_TEST_MODE 0xFFA0C901
285 #define OID_CUSTOM_TEST_RX_STATUS 0xFFA0C903
286 #define OID_CUSTOM_TEST_TX_STATUS 0xFFA0C905
287 #define OID_CUSTOM_ABORT_TEST_MODE 0xFFA0C906
288 #define OID_CUSTOM_MTK_WIFI_TEST 0xFFA0C911
291 #define OID_CUSTOM_BWCS_CMD 0xFFA0C931
292 #define OID_CUSTOM_SINGLE_ANTENNA 0xFFA0C932
293 #define OID_CUSTOM_SET_PTA 0xFFA0C933
296 #define OID_CUSTOM_MTK_NVRAM_RW 0xFFA0C941
297 #define OID_CUSTOM_CFG_SRC_TYPE 0xFFA0C942
298 #define OID_CUSTOM_EEPROM_TYPE 0xFFA0C943
302 #define OID_802_11_WAPI_MODE 0xFFA0CA00
303 #define OID_802_11_WAPI_ASSOC_INFO 0xFFA0CA01
304 #define OID_802_11_SET_WAPI_KEY 0xFFA0CA02
308 #define OID_802_11_WSC_ASSOC_INFO 0xFFA0CB00
312 /* Define magic key of test mode (Don't change it for future compatibity) */
313 #define PRIV_CMD_TEST_MAGIC_KEY 2011
315 /*******************************************************************************
317 ********************************************************************************
319 /* NIC BBCR configuration entry structure */
320 typedef struct _PRIV_CONFIG_ENTRY {
323 } PRIV_CONFIG_ENTRY, *PPRIV_CONFIG_ENTRY;
325 typedef WLAN_STATUS (*PFN_OID_HANDLER_FUNC_REQ) (
329 OUT PUINT_32 pu4OutInfoLen
332 typedef enum _ENUM_OID_METHOD_T {
334 ENUM_OID_GLUE_EXTENSION,
336 } ENUM_OID_METHOD_T, *P_ENUM_OID_METHOD_T;
338 /* OID set/query processing entry */
339 typedef struct _WLAN_REQ_ENTRY {
340 UINT_32 rOid; /* OID */
341 PUINT_8 pucOidName; /* OID name text */
342 BOOLEAN fgQryBufLenChecking;
343 BOOLEAN fgSetBufLenChecking;
344 ENUM_OID_METHOD_T eOidMethod;
345 UINT_32 u4InfoBufLen;
346 PFN_OID_HANDLER_FUNC_REQ pfOidQueryHandler; /* PFN_OID_HANDLER_FUNC*/
347 PFN_OID_HANDLER_FUNC_REQ pfOidSetHandler; /* PFN_OID_HANDLER_FUNC */
348 } WLAN_REQ_ENTRY, *P_WLAN_REQ_ENTRY;
350 typedef struct _NDIS_TRANSPORT_STRUCT {
352 UINT_32 inNdisOidlength;
353 UINT_32 outNdisOidLength;
354 UINT_8 ndisOidContent[16];
355 } NDIS_TRANSPORT_STRUCT, *P_NDIS_TRANSPORT_STRUCT;
357 /*******************************************************************************
358 * P U B L I C D A T A
359 ********************************************************************************
362 /*******************************************************************************
363 * P R I V A T E D A T A
364 ********************************************************************************
367 /*******************************************************************************
369 ********************************************************************************
372 /*******************************************************************************
373 * F U N C T I O N D E C L A R A T I O N S
374 ********************************************************************************
379 IN struct net_device *prNetDev,
380 IN struct iw_request_info *prIwReqInfo,
381 IN union iwreq_data *prIwReqData,
387 IN struct net_device *prNetDev,
388 IN struct iw_request_info *prIwReqInfo,
389 IN union iwreq_data *prIwReqData,
395 IN struct net_device *prNetDev,
396 IN struct iw_request_info *prIwReqInfo,
397 IN union iwreq_data *prIwReqData,
403 IN struct net_device *prNetDev,
404 IN struct iw_request_info *prIwReqInfo,
405 IN union iwreq_data *prIwReqData,
411 IN struct net_device *prNetDev,
412 IN struct iw_request_info *prIwReqInfo,
413 IN union iwreq_data *prIwReqData,
419 IN struct net_device *prNetDev,
420 IN struct iw_request_info *prIwReqInfo,
421 IN union iwreq_data *prIwReqData,
427 IN struct net_device *prDev,
428 IN OUT struct ifreq *prReq,
432 /*******************************************************************************
434 ********************************************************************************
437 #endif /* _GL_WEXT_PRIV_H */