xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/nxp/mlinux/moal_priv.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun 
2*4882a593Smuzhiyun /** @file moal_priv.h
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * @brief This file contains definition for extended private IOCTL call.
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  *
7*4882a593Smuzhiyun  * Copyright 2008-2021 NXP
8*4882a593Smuzhiyun  *
9*4882a593Smuzhiyun  * This software file (the File) is distributed by NXP
10*4882a593Smuzhiyun  * under the terms of the GNU General Public License Version 2, June 1991
11*4882a593Smuzhiyun  * (the License).  You may use, redistribute and/or modify the File in
12*4882a593Smuzhiyun  * accordance with the terms and conditions of the License, a copy of which
13*4882a593Smuzhiyun  * is available by writing to the Free Software Foundation, Inc.,
14*4882a593Smuzhiyun  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
15*4882a593Smuzhiyun  * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
16*4882a593Smuzhiyun  *
17*4882a593Smuzhiyun  * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
18*4882a593Smuzhiyun  * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
19*4882a593Smuzhiyun  * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
20*4882a593Smuzhiyun  * this warranty disclaimer.
21*4882a593Smuzhiyun  *
22*4882a593Smuzhiyun  */
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun /********************************************************
25*4882a593Smuzhiyun Change log:
26*4882a593Smuzhiyun     10/31/2008: initial version
27*4882a593Smuzhiyun ********************************************************/
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun #ifndef _WOAL_PRIV_H_
30*4882a593Smuzhiyun #define _WOAL_PRIV_H_
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun /** 2K bytes */
33*4882a593Smuzhiyun #define WOAL_2K_BYTES 2000
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun /** PRIVATE CMD ID */
36*4882a593Smuzhiyun #define WOAL_IOCTL (SIOCIWFIRSTPRIV) /* 0x8BE0 defined in wireless.h */
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun /** Private command ID to set one int/get word char */
39*4882a593Smuzhiyun #define WOAL_SETONEINT_GETWORDCHAR (WOAL_IOCTL + 1)
40*4882a593Smuzhiyun /** Private command ID to get version */
41*4882a593Smuzhiyun #define WOAL_VERSION 1
42*4882a593Smuzhiyun /** Private command ID to get extended version */
43*4882a593Smuzhiyun #define WOAL_VEREXT 2
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun /** Private command ID to set/get none */
46*4882a593Smuzhiyun #define WOAL_SETNONE_GETNONE (WOAL_IOCTL + 2)
47*4882a593Smuzhiyun /** Private command ID for warm reset */
48*4882a593Smuzhiyun #define WOAL_WARMRESET 1
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun /**
51*4882a593Smuzhiyun  * Linux Kernels later 3.9 use CONFIG_PM_RUNTIME instead of
52*4882a593Smuzhiyun  * CONFIG_USB_SUSPEND
53*4882a593Smuzhiyun  */
54*4882a593Smuzhiyun #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
55*4882a593Smuzhiyun #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
56*4882a593Smuzhiyun #ifdef CONFIG_PM
57*4882a593Smuzhiyun #ifndef CONFIG_USB_SUSPEND
58*4882a593Smuzhiyun #define CONFIG_USB_SUSPEND
59*4882a593Smuzhiyun #endif
60*4882a593Smuzhiyun #endif
61*4882a593Smuzhiyun #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
62*4882a593Smuzhiyun #ifdef CONFIG_PM_RUNTIME
63*4882a593Smuzhiyun #ifndef CONFIG_USB_SUSPEND
64*4882a593Smuzhiyun #define CONFIG_USB_SUSPEND
65*4882a593Smuzhiyun #endif
66*4882a593Smuzhiyun #endif
67*4882a593Smuzhiyun #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
68*4882a593Smuzhiyun #endif
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun #ifdef CONFIG_USB_SUSPEND
71*4882a593Smuzhiyun /** Private command ID for usb suspend */
72*4882a593Smuzhiyun #define WOAL_USB_SUSPEND 2
73*4882a593Smuzhiyun /** Private command ID for usb resume */
74*4882a593Smuzhiyun #define WOAL_USB_RESUME 3
75*4882a593Smuzhiyun #endif /* CONFIG_USB_SUSPEND */
76*4882a593Smuzhiyun /** Private command ID to clear 11d chan table */
77*4882a593Smuzhiyun #define WOAL_11D_CLR_CHAN_TABLE 4
78*4882a593Smuzhiyun 
79*4882a593Smuzhiyun /** Private command ID to set/get sixteen int */
80*4882a593Smuzhiyun #define WOAL_SET_GET_SIXTEEN_INT (WOAL_IOCTL + 3)
81*4882a593Smuzhiyun /** Private command ID to set/get TX power configurations */
82*4882a593Smuzhiyun #define WOAL_TX_POWERCFG 1
83*4882a593Smuzhiyun #ifdef DEBUG_LEVEL1
84*4882a593Smuzhiyun /** Private command ID to set/get driver debug */
85*4882a593Smuzhiyun #define WOAL_DRV_DBG 2
86*4882a593Smuzhiyun #endif
87*4882a593Smuzhiyun /** Private command ID to set/get beacon interval */
88*4882a593Smuzhiyun #define WOAL_BEACON_INTERVAL 3
89*4882a593Smuzhiyun /** Private command ID to get RSSI */
90*4882a593Smuzhiyun #define WOAL_SIGNAL 5
91*4882a593Smuzhiyun /** Private command ID to set/get Deep Sleep mode */
92*4882a593Smuzhiyun #define WOAL_DEEP_SLEEP 7
93*4882a593Smuzhiyun /** Private command ID for 11n ht configration */
94*4882a593Smuzhiyun #define WOAL_11N_TX_CFG 8
95*4882a593Smuzhiyun /** Private command ID for 11n usr ht configration */
96*4882a593Smuzhiyun #define WOAL_11N_HTCAP_CFG 9
97*4882a593Smuzhiyun /** Private command ID for TX Aggregation */
98*4882a593Smuzhiyun #define WOAL_PRIO_TBL 10
99*4882a593Smuzhiyun /** Private command ID for Updating ADDBA variables */
100*4882a593Smuzhiyun #define WOAL_ADDBA_UPDT 11
101*4882a593Smuzhiyun /** Private command ID to set/get Host Sleep configuration */
102*4882a593Smuzhiyun #define WOAL_HS_CFG 12
103*4882a593Smuzhiyun /** Private command ID to set Host Sleep parameters */
104*4882a593Smuzhiyun #define WOAL_HS_SETPARA 13
105*4882a593Smuzhiyun /** Private command ID to read/write registers */
106*4882a593Smuzhiyun #define WOAL_REG_READ_WRITE 14
107*4882a593Smuzhiyun /** Private command ID to set/get band/adhocband */
108*4882a593Smuzhiyun #define WOAL_BAND_CFG 15
109*4882a593Smuzhiyun /** Private command ID for TX Aggregation */
110*4882a593Smuzhiyun #define WOAL_11N_AMSDU_AGGR_CTRL 17
111*4882a593Smuzhiyun /** Private command ID to set/get Inactivity timeout */
112*4882a593Smuzhiyun #define WOAL_INACTIVITY_TIMEOUT_EXT 18
113*4882a593Smuzhiyun #ifdef SDIO
114*4882a593Smuzhiyun /** Private command ID to turn on/off sdio clock */
115*4882a593Smuzhiyun #define WOAL_SDIO_CLOCK 19
116*4882a593Smuzhiyun /** Private command ID to read/write Command 52 */
117*4882a593Smuzhiyun #define WOAL_CMD_52RDWR 20
118*4882a593Smuzhiyun #endif
119*4882a593Smuzhiyun /** Private command ID to set/get scan configuration parameter */
120*4882a593Smuzhiyun #define WOAL_SCAN_CFG 21
121*4882a593Smuzhiyun /** Private command ID to set/get PS configuration parameter */
122*4882a593Smuzhiyun #define WOAL_PS_CFG 22
123*4882a593Smuzhiyun /** Private command ID to read/write memory */
124*4882a593Smuzhiyun #define WOAL_MEM_READ_WRITE 23
125*4882a593Smuzhiyun #ifdef SDIO
126*4882a593Smuzhiyun /** Private command ID to control SDIO MP-A */
127*4882a593Smuzhiyun #define WOAL_SDIO_MPA_CTRL 25
128*4882a593Smuzhiyun #endif
129*4882a593Smuzhiyun /** Private command ID for Updating ADDBA variables */
130*4882a593Smuzhiyun #define WOAL_ADDBA_REJECT 27
131*4882a593Smuzhiyun /** Private command ID to set/get sleep parameters */
132*4882a593Smuzhiyun #define WOAL_SLEEP_PARAMS 28
133*4882a593Smuzhiyun /** Private command ID to set/get network monitor */
134*4882a593Smuzhiyun #define WOAL_NET_MONITOR 30
135*4882a593Smuzhiyun /** Private command ID to set/get TX BF capabilities */
136*4882a593Smuzhiyun #define WOAL_TX_BF_CAP 31
137*4882a593Smuzhiyun /** Private command ID to set/get dfs testing settings */
138*4882a593Smuzhiyun #define WOAL_DFS_TESTING 33
139*4882a593Smuzhiyun /** Private command ID to set/get CFP table codes */
140*4882a593Smuzhiyun #define WOAL_CFP_CODE 34
141*4882a593Smuzhiyun /** Private command ID to set/get tx/rx antenna */
142*4882a593Smuzhiyun #define WOAL_SET_GET_TX_RX_ANT 35
143*4882a593Smuzhiyun /** Private command ID to set/get management frame passthru mask */
144*4882a593Smuzhiyun #define WOAL_MGMT_FRAME_CTRL 36
145*4882a593Smuzhiyun 
146*4882a593Smuzhiyun /** Private command ID to configure gpio independent reset */
147*4882a593Smuzhiyun #define WOAL_IND_RST_CFG 37
148*4882a593Smuzhiyun 
149*4882a593Smuzhiyun /** Private command ID to set one int/get one int */
150*4882a593Smuzhiyun #define WOAL_SETONEINT_GETONEINT (WOAL_IOCTL + 5)
151*4882a593Smuzhiyun /** Private command ID to set/get Tx rate */
152*4882a593Smuzhiyun #define WOAL_SET_GET_TXRATE 1
153*4882a593Smuzhiyun /** Private command ID to set/get region code */
154*4882a593Smuzhiyun #define WOAL_SET_GET_REGIONCODE 2
155*4882a593Smuzhiyun /** Private command ID to turn on/off radio */
156*4882a593Smuzhiyun #define WOAL_SET_RADIO 3
157*4882a593Smuzhiyun /** Private command ID to enable WMM */
158*4882a593Smuzhiyun #define WOAL_WMM_ENABLE 4
159*4882a593Smuzhiyun /** Private command ID to enable 802.11D */
160*4882a593Smuzhiyun #define WOAL_11D_ENABLE 5
161*4882a593Smuzhiyun /** Private command ID to set/get QoS configuration */
162*4882a593Smuzhiyun #define WOAL_SET_GET_QOS_CFG 7
163*4882a593Smuzhiyun #if defined(REASSOCIATION)
164*4882a593Smuzhiyun /** Private command ID to set/get reassociation setting */
165*4882a593Smuzhiyun #define WOAL_SET_GET_REASSOC 9
166*4882a593Smuzhiyun #endif /* REASSOCIATION */
167*4882a593Smuzhiyun /** Private command ID for Updating Transmit buffer configration */
168*4882a593Smuzhiyun #define WOAL_TXBUF_CFG 10
169*4882a593Smuzhiyun /** Private command ID to set/get WWS mode */
170*4882a593Smuzhiyun #define WOAL_SET_GET_WWS_CFG 12
171*4882a593Smuzhiyun /** Private command ID to set/get sleep period */
172*4882a593Smuzhiyun #define WOAL_SLEEP_PD 13
173*4882a593Smuzhiyun /** Private command ID to set/get auth type */
174*4882a593Smuzhiyun #define WOAL_AUTH_TYPE 18
175*4882a593Smuzhiyun /** Private command ID to set/get port control */
176*4882a593Smuzhiyun #define WOAL_PORT_CTRL 19
177*4882a593Smuzhiyun #ifdef WIFI_DIRECT_SUPPORT
178*4882a593Smuzhiyun #if defined(STA_SUPPORT) && defined(UAP_SUPPORT)
179*4882a593Smuzhiyun /** Private command ID for set/get BSS role */
180*4882a593Smuzhiyun #define WOAL_SET_GET_BSS_ROLE 21
181*4882a593Smuzhiyun #endif
182*4882a593Smuzhiyun #endif
183*4882a593Smuzhiyun /** Private command ID for set/get 11h local power constraint */
184*4882a593Smuzhiyun #define WOAL_SET_GET_11H_LOCAL_PWR_CONSTRAINT 22
185*4882a593Smuzhiyun /** Private command ID to set/get 11N HT stream configuration */
186*4882a593Smuzhiyun #define WOAL_HT_STREAM_CFG 23
187*4882a593Smuzhiyun /** Private command ID to set/get MAC control */
188*4882a593Smuzhiyun #define WOAL_MAC_CONTROL 24
189*4882a593Smuzhiyun /** Private command ID to get thermal value */
190*4882a593Smuzhiyun #define WOAL_THERMAL 25
191*4882a593Smuzhiyun /** Private command ID to set/get hs cfg param */
192*4882a593Smuzhiyun #define WOAL_CFG_HOTSPOT 26
193*4882a593Smuzhiyun 
194*4882a593Smuzhiyun /** Private command ID to get log */
195*4882a593Smuzhiyun #define WOALGETLOG (WOAL_IOCTL + 7)
196*4882a593Smuzhiyun 
197*4882a593Smuzhiyun /** Private command ID to set a wext address variable */
198*4882a593Smuzhiyun #define WOAL_SETADDR_GETNONE (WOAL_IOCTL + 8)
199*4882a593Smuzhiyun /** Private command ID to send deauthentication */
200*4882a593Smuzhiyun #define WOAL_DEAUTH 1
201*4882a593Smuzhiyun 
202*4882a593Smuzhiyun /** Private command to get/set 256 chars */
203*4882a593Smuzhiyun #define WOAL_SET_GET_256_CHAR (WOAL_IOCTL + 9)
204*4882a593Smuzhiyun /** Private command to read/write passphrase */
205*4882a593Smuzhiyun #define WOAL_PASSPHRASE 1
206*4882a593Smuzhiyun #define WOAL_ASSOCIATE 3
207*4882a593Smuzhiyun /** Private command ID to get WMM queue status */
208*4882a593Smuzhiyun #define WOAL_WMM_QUEUE_STATUS 4
209*4882a593Smuzhiyun /** Private command ID to get Traffic stream status */
210*4882a593Smuzhiyun #define WOAL_WMM_TS_STATUS 5
211*4882a593Smuzhiyun #define WOAL_IP_ADDRESS 7
212*4882a593Smuzhiyun /** Private command ID to set/get TX bemaforming */
213*4882a593Smuzhiyun #define WOAL_TX_BF_CFG 8
214*4882a593Smuzhiyun /** Private command ID to get PTK/GTK */
215*4882a593Smuzhiyun #define WOAL_GET_KEY 9
216*4882a593Smuzhiyun 
217*4882a593Smuzhiyun /** Get log buffer size */
218*4882a593Smuzhiyun #define GETLOG_BUFSIZE 1500
219*4882a593Smuzhiyun 
220*4882a593Smuzhiyun /** Private command ID to set none/get twelve chars*/
221*4882a593Smuzhiyun #define WOAL_SETNONE_GETTWELVE_CHAR (WOAL_IOCTL + 11)
222*4882a593Smuzhiyun /** Private command ID for WPS session */
223*4882a593Smuzhiyun #define WOAL_WPS_SESSION 1
224*4882a593Smuzhiyun 
225*4882a593Smuzhiyun /** Private command ID to set none/get four int */
226*4882a593Smuzhiyun #define WOAL_SETNONE_GET_FOUR_INT (WOAL_IOCTL + 13)
227*4882a593Smuzhiyun /** Private command ID to get data rates */
228*4882a593Smuzhiyun #define WOAL_DATA_RATE 1
229*4882a593Smuzhiyun /** Private command ID to get E-Supplicant mode */
230*4882a593Smuzhiyun #define WOAL_ESUPP_MODE 2
231*4882a593Smuzhiyun 
232*4882a593Smuzhiyun /** Private command to get/set 64 ints */
233*4882a593Smuzhiyun #define WOAL_SET_GET_64_INT (WOAL_IOCTL + 15)
234*4882a593Smuzhiyun /** Private command ID to set/get ECL system clock */
235*4882a593Smuzhiyun #define WOAL_ECL_SYS_CLOCK 1
236*4882a593Smuzhiyun 
237*4882a593Smuzhiyun /** Private command ID for hostcmd */
238*4882a593Smuzhiyun #define WOAL_HOST_CMD (WOAL_IOCTL + 17)
239*4882a593Smuzhiyun 
240*4882a593Smuzhiyun /** Private command ID for arpfilter */
241*4882a593Smuzhiyun #define WOAL_ARP_FILTER (WOAL_IOCTL + 19)
242*4882a593Smuzhiyun 
243*4882a593Smuzhiyun /** Private command ID to set ints and get chars */
244*4882a593Smuzhiyun #define WOAL_SET_INTS_GET_CHARS (WOAL_IOCTL + 21)
245*4882a593Smuzhiyun /** Private command ID to read EEPROM data */
246*4882a593Smuzhiyun #define WOAL_READ_EEPROM 1
247*4882a593Smuzhiyun 
248*4882a593Smuzhiyun /** Private command ID to set/get 2K bytes */
249*4882a593Smuzhiyun #define WOAL_SET_GET_2K_BYTES (WOAL_IOCTL + 23)
250*4882a593Smuzhiyun 
251*4882a593Smuzhiyun #ifdef SDIO
252*4882a593Smuzhiyun /** Private command ID to read/write Command 53 */
253*4882a593Smuzhiyun #define WOAL_CMD_53RDWR 2
254*4882a593Smuzhiyun #endif
255*4882a593Smuzhiyun 
256*4882a593Smuzhiyun /** Private command ID for setuserscan */
257*4882a593Smuzhiyun #define WOAL_SET_USER_SCAN 3
258*4882a593Smuzhiyun /** Private command ID for getscantable */
259*4882a593Smuzhiyun #define WOAL_GET_SCAN_TABLE 4
260*4882a593Smuzhiyun /** Private command ID for setuserscanext: async without wait */
261*4882a593Smuzhiyun #define WOAL_SET_USER_SCAN_EXT 5
262*4882a593Smuzhiyun 
263*4882a593Smuzhiyun /** Private command ID to request ADDTS */
264*4882a593Smuzhiyun #define WOAL_WMM_ADDTS 7
265*4882a593Smuzhiyun /** Private command ID to request DELTS */
266*4882a593Smuzhiyun #define WOAL_WMM_DELTS 8
267*4882a593Smuzhiyun /** Private command ID to queue configuration */
268*4882a593Smuzhiyun #define WOAL_WMM_QUEUE_CONFIG 9
269*4882a593Smuzhiyun /** Private command ID to queue stats */
270*4882a593Smuzhiyun #define WOAL_WMM_QUEUE_STATS 10
271*4882a593Smuzhiyun /** Private command ID to Bypass auth packet */
272*4882a593Smuzhiyun #define WOAL_BYPASSED_PACKET 11
273*4882a593Smuzhiyun 
274*4882a593Smuzhiyun #ifdef UAP_WEXT
275*4882a593Smuzhiyun /** The following command IDs are for Froyo app */
276*4882a593Smuzhiyun /** Private command ID to start driver */
277*4882a593Smuzhiyun #define WOAL_FROYO_START (WOAL_IOCTL + 28)
278*4882a593Smuzhiyun /** Private command ID to reload FW */
279*4882a593Smuzhiyun #define WOAL_FROYO_WL_FW_RELOAD (WOAL_IOCTL + 29)
280*4882a593Smuzhiyun /** Private command ID to stop driver */
281*4882a593Smuzhiyun #define WOAL_FROYO_STOP (WOAL_IOCTL + 30)
282*4882a593Smuzhiyun #endif
283*4882a593Smuzhiyun 
284*4882a593Smuzhiyun /** moal_802_11_rates  */
285*4882a593Smuzhiyun typedef struct _moal_802_11_rates {
286*4882a593Smuzhiyun 	/** Num of rates */
287*4882a593Smuzhiyun 	t_u8 num_of_rates;
288*4882a593Smuzhiyun 	/** Rates */
289*4882a593Smuzhiyun 	t_u8 rates[MLAN_SUPPORTED_RATES];
290*4882a593Smuzhiyun } moal_802_11_rates, *pmoal_802_11_rates;
291*4882a593Smuzhiyun 
292*4882a593Smuzhiyun #if defined(STA_WEXT) || defined(UAP_WEXT)
293*4882a593Smuzhiyun int woal_wext_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd);
294*4882a593Smuzhiyun #endif
295*4882a593Smuzhiyun 
296*4882a593Smuzhiyun #endif /* _WOAL_PRIV_H_ */
297