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