xref: /wlan-driver/qcacld-3.0/core/hdd/inc/qc_sap_ioctl.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
5*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
6*5113495bSYour Name  * above copyright notice and this permission notice appear in all
7*5113495bSYour Name  * copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
17*5113495bSYour Name  */
18*5113495bSYour Name 
19*5113495bSYour Name #ifndef _QC_SAP_IOCTL_H_
20*5113495bSYour Name #define _QC_SAP_IOCTL_H_
21*5113495bSYour Name 
22*5113495bSYour Name /*
23*5113495bSYour Name  * QCSAP ioctls.
24*5113495bSYour Name  */
25*5113495bSYour Name 
26*5113495bSYour Name /*
27*5113495bSYour Name  * Channel List Info
28*5113495bSYour Name  */
29*5113495bSYour Name 
30*5113495bSYour Name struct channel_list_info {
31*5113495bSYour Name 	uint8_t num_channels;
32*5113495bSYour Name 	uint8_t channels[NUM_CHANNELS];
33*5113495bSYour Name };
34*5113495bSYour Name 
35*5113495bSYour Name #ifdef __linux__
36*5113495bSYour Name /*
37*5113495bSYour Name  * Wireless Extensions API, private ioctl interfaces.
38*5113495bSYour Name  *
39*5113495bSYour Name  * NB: Even-numbered ioctl numbers have set semantics and are privileged!
40*5113495bSYour Name  *     (regardless of the incorrect comment in wireless.h!)
41*5113495bSYour Name  */
42*5113495bSYour Name 
43*5113495bSYour Name #define QCSAP_IOCTL_SETPARAM          (SIOCIWFIRSTPRIV + 0)
44*5113495bSYour Name #define QCSAP_IOCTL_GETPARAM          (SIOCIWFIRSTPRIV + 1)
45*5113495bSYour Name /* (SIOCIWFIRSTPRIV+2) is unused */
46*5113495bSYour Name #define QCSAP_IOCTL_SET_NONE_GET_THREE (SIOCIWFIRSTPRIV + 3)
47*5113495bSYour Name #define WE_GET_TSF 1
48*5113495bSYour Name #define QCSAP_IOCTL_GET_STAWPAIE      (SIOCIWFIRSTPRIV + 4)
49*5113495bSYour Name #define QCSAP_IOCTL_STOPBSS           (SIOCIWFIRSTPRIV + 6)
50*5113495bSYour Name #define QCSAP_IOCTL_VERSION           (SIOCIWFIRSTPRIV + 7)
51*5113495bSYour Name /* (SIOCIWFIRSTPRIV + 8) is unused */
52*5113495bSYour Name #define QCSAP_IOCTL_GET_CHANNEL       (SIOCIWFIRSTPRIV + 9)
53*5113495bSYour Name #define QCSAP_IOCTL_ASSOC_STA_MACADDR (SIOCIWFIRSTPRIV + 10)
54*5113495bSYour Name #define QCSAP_IOCTL_DISASSOC_STA      (SIOCIWFIRSTPRIV + 11)
55*5113495bSYour Name #define QCSAP_IOCTL_SET_PKTLOG        (SIOCIWFIRSTPRIV + 12)
56*5113495bSYour Name 
57*5113495bSYour Name /* Private ioctls and their sub-ioctls */
58*5113495bSYour Name #define QCSAP_PRIV_GET_CHAR_SET_NONE   (SIOCIWFIRSTPRIV + 13)
59*5113495bSYour Name #define QCSAP_GET_STATS 1
60*5113495bSYour Name #define QCSAP_LIST_FW_PROFILE 2
61*5113495bSYour Name 
62*5113495bSYour Name /* (SIOCIWFIRSTPRIV + 14) is unused */
63*5113495bSYour Name 
64*5113495bSYour Name #define QCSAP_IOCTL_PRIV_SET_THREE_INT_GET_NONE (SIOCIWFIRSTPRIV + 15)
65*5113495bSYour Name #define WE_SET_WLAN_DBG 1
66*5113495bSYour Name #define WE_SET_DP_TRACE 2
67*5113495bSYour Name #define QCSAP_IOCTL_PRIV_SET_VAR_INT_GET_NONE (SIOCIWFIRSTPRIV + 16)
68*5113495bSYour Name #define WE_UNIT_TEST_CMD   7
69*5113495bSYour Name /*
70*5113495bSYour Name  * <ioctl>
71*5113495bSYour Name  * ch_avoid - unit test SAP channel avoidance
72*5113495bSYour Name  *
73*5113495bSYour Name  * @INPUT: chan avoid ranges
74*5113495bSYour Name  *
75*5113495bSYour Name  * @OUTPUT: none
76*5113495bSYour Name  *
77*5113495bSYour Name  * This IOCTL is used to fake a channel avoidance event.
78*5113495bSYour Name  * To test SAP/GO chan switch during chan avoid event process.
79*5113495bSYour Name  *
80*5113495bSYour Name  * @E.g: iwpriv wlan0 ch_avoid 2452 2462
81*5113495bSYour Name  *
82*5113495bSYour Name  * Supported Feature: SAP chan avoidance.
83*5113495bSYour Name  *
84*5113495bSYour Name  * Usage: Internal
85*5113495bSYour Name  *
86*5113495bSYour Name  * </ioctl>
87*5113495bSYour Name  */
88*5113495bSYour Name #define WE_SET_CHAN_AVOID 21
89*5113495bSYour Name 
90*5113495bSYour Name #define WE_SET_THERMAL_THROTTLE_CFG     27
91*5113495bSYour Name 
92*5113495bSYour Name #define WE_P2P_NOA_CMD  2
93*5113495bSYour Name 
94*5113495bSYour Name #define QCSAP_IOCTL_MODIFY_ACL          (SIOCIWFIRSTPRIV + 18)
95*5113495bSYour Name #define QCSAP_IOCTL_GET_CHANNEL_LIST    (SIOCIWFIRSTPRIV + 19)
96*5113495bSYour Name #define QCSAP_IOCTL_SET_TX_POWER        (SIOCIWFIRSTPRIV + 20)
97*5113495bSYour Name #define QCSAP_IOCTL_GET_STA_INFO        (SIOCIWFIRSTPRIV + 21)
98*5113495bSYour Name #define QCSAP_IOCTL_SET_MAX_TX_POWER    (SIOCIWFIRSTPRIV + 22)
99*5113495bSYour Name #define QCSAP_IOCTL_GET_INI_CFG         (SIOCIWFIRSTPRIV + 25)
100*5113495bSYour Name 
101*5113495bSYour Name #define QCSAP_IOCTL_SET_TWO_INT_GET_NONE (SIOCIWFIRSTPRIV + 28)
102*5113495bSYour Name /* QCSAP_IOCTL_SET_TWO_INT_GET_NONE sub commands */
103*5113495bSYour Name #define QCSAP_IOCTL_SET_FW_CRASH_INJECT 1
104*5113495bSYour Name #define QCSAP_IOCTL_DUMP_DP_TRACE_LEVEL 2
105*5113495bSYour Name #define QCSAP_ENABLE_FW_PROFILE          3
106*5113495bSYour Name #define QCSAP_SET_FW_PROFILE_HIST_INTVL  4
107*5113495bSYour Name /* Private sub-ioctl for initiating WoW suspend without Apps suspend */
108*5113495bSYour Name #define QCSAP_SET_WLAN_SUSPEND  5
109*5113495bSYour Name #define QCSAP_SET_WLAN_RESUME   6
110*5113495bSYour Name #define QCSAP_SET_BA_AGEING_TIMEOUT 7
111*5113495bSYour Name 
112*5113495bSYour Name #define QCSAP_IOCTL_PRIV_GET_RSSI       (SIOCIWFIRSTPRIV + 29)
113*5113495bSYour Name #define QCSAP_IOCTL_PRIV_GET_SOFTAP_LINK_SPEED (SIOCIWFIRSTPRIV + 31)
114*5113495bSYour Name #define QCSAP_IOCTL_GET_BA_AGEING_TIMEOUT (SIOCIWFIRSTPRIV + 32)
115*5113495bSYour Name 
116*5113495bSYour Name #define MAX_VAR_ARGS         7
117*5113495bSYour Name 
118*5113495bSYour Name #define QCSAP_IOCTL_MAX_STR_LEN 1024
119*5113495bSYour Name 
120*5113495bSYour Name #define RC_2_RATE_IDX(_rc)              ((_rc) & 0x7)
121*5113495bSYour Name #define HT_RC_2_STREAMS(_rc)            ((((_rc) & 0x78) >> 3) + 1)
122*5113495bSYour Name 
123*5113495bSYour Name #define RC_2_RATE_IDX_11AC(_rc)         ((_rc) & 0xf)
124*5113495bSYour Name #define HT_RC_2_STREAMS_11AC(_rc)       ((((_rc) & 0x30) >> 4) + 1)
125*5113495bSYour Name 
126*5113495bSYour Name #define RC_2_RATE_IDX_11AX(_rc)         ((_rc) & 0x1f)
127*5113495bSYour Name #define HT_RC_2_STREAMS_11AX(_rc)       (((_rc) >> 5) & 0x7)
128*5113495bSYour Name 
129*5113495bSYour Name #ifdef WLAN_FEATURE_11BE
130*5113495bSYour Name #define RC_2_RATE_IDX_11BE(_rc)         ((_rc) & 0x1f)
131*5113495bSYour Name #define HT_RC_2_STREAMS_11BE(_rc)       (((_rc) >> 5) & 0x7)
132*5113495bSYour Name #endif
133*5113495bSYour Name 
134*5113495bSYour Name /*
135*5113495bSYour Name  * <ioctl>
136*5113495bSYour Name  * setRadar - simulate a radar event
137*5113495bSYour Name  *
138*5113495bSYour Name  * @INPUT: None
139*5113495bSYour Name  *
140*5113495bSYour Name  * @OUTPUT: None
141*5113495bSYour Name  *
142*5113495bSYour Name  * This IOCTL is used to simulate a radar event, state machines for
143*5113495bSYour Name  * SAP will behave as same way in which a radar event is reported by WMA
144*5113495bSYour Name  *
145*5113495bSYour Name  * @E.g: iwpriv wlan0 setRadar
146*5113495bSYour Name  *
147*5113495bSYour Name  * Supported Feature: DFS
148*5113495bSYour Name  *
149*5113495bSYour Name  * Usage: Internal
150*5113495bSYour Name  *
151*5113495bSYour Name  * </ioctl>
152*5113495bSYour Name  */
153*5113495bSYour Name 
154*5113495bSYour Name /*
155*5113495bSYour Name  * <ioctl>
156*5113495bSYour Name  * setRadarDbg - enable/disable radar specific logs
157*5113495bSYour Name  *
158*5113495bSYour Name  * @INPUT: 1/0
159*5113495bSYour Name  *
160*5113495bSYour Name  * @OUTPUT: None
161*5113495bSYour Name  *
162*5113495bSYour Name  * This IOCTL is enable radar phyerror info in wma
163*5113495bSYour Name  *
164*5113495bSYour Name  * @E.g: iwpriv wlan0 setRadarDbg <enable>
165*5113495bSYour Name  *  iwpriv wlan0 setRadarDbg 1
166*5113495bSYour Name  *
167*5113495bSYour Name  * Supported Feature: DFS
168*5113495bSYour Name  *
169*5113495bSYour Name  * Usage: Internal
170*5113495bSYour Name  *
171*5113495bSYour Name  * </ioctl>
172*5113495bSYour Name  */
173*5113495bSYour Name enum {
174*5113495bSYour Name 	QCSAP_PARAM_MAX_ASSOC = 1,
175*5113495bSYour Name 	QCSAP_PARAM_GET_WLAN_DBG,
176*5113495bSYour Name 	QCSAP_PARAM_CLR_ACL = 4,
177*5113495bSYour Name 	QCSAP_PARAM_ACL_MODE,
178*5113495bSYour Name 	QCSAP_PARAM_HIDE_SSID,
179*5113495bSYour Name 	QCSAP_PARAM_SET_MC_RATE,
180*5113495bSYour Name 	QCSAP_PARAM_SET_TXRX_FW_STATS,
181*5113495bSYour Name 	QCSAP_PARAM_SET_MCC_CHANNEL_LATENCY,
182*5113495bSYour Name 	QCSAP_PARAM_SET_MCC_CHANNEL_QUOTA,
183*5113495bSYour Name 	QCSAP_DBGLOG_LOG_LEVEL,
184*5113495bSYour Name 	QCSAP_DBGLOG_VAP_ENABLE,
185*5113495bSYour Name 	QCSAP_DBGLOG_VAP_DISABLE,
186*5113495bSYour Name 	QCSAP_DBGLOG_MODULE_ENABLE,
187*5113495bSYour Name 	QCSAP_DBGLOG_MODULE_DISABLE,
188*5113495bSYour Name 	QCSAP_DBGLOG_MOD_LOG_LEVEL,
189*5113495bSYour Name 	QCSAP_DBGLOG_TYPE,
190*5113495bSYour Name 	QCSAP_DBGLOG_REPORT_ENABLE,
191*5113495bSYour Name 	QCASAP_TXRX_FWSTATS_RESET,
192*5113495bSYour Name 	QCSAP_PARAM_RTSCTS,
193*5113495bSYour Name 	QCASAP_SET_11N_RATE,
194*5113495bSYour Name 	QCASAP_SET_VHT_RATE,
195*5113495bSYour Name 	QCASAP_SHORT_GI,
196*5113495bSYour Name 	QCSAP_SET_AMPDU,
197*5113495bSYour Name 	QCSAP_SET_AMSDU,
198*5113495bSYour Name 	QCSAP_GTX_HT_MCS,
199*5113495bSYour Name 	QCSAP_GTX_VHT_MCS,
200*5113495bSYour Name 	QCSAP_GTX_USRCFG,
201*5113495bSYour Name 	QCSAP_GTX_THRE,
202*5113495bSYour Name 	QCSAP_GTX_MARGIN,
203*5113495bSYour Name 	QCSAP_GTX_STEP,
204*5113495bSYour Name 	QCSAP_GTX_MINTPC,
205*5113495bSYour Name 	QCSAP_GTX_BWMASK,
206*5113495bSYour Name 	QCASAP_SET_TM_LEVEL,
207*5113495bSYour Name 	QCASAP_SET_DFS_IGNORE_CAC,
208*5113495bSYour Name 	QCASAP_GET_DFS_NOL,
209*5113495bSYour Name 	QCASAP_SET_DFS_NOL,
210*5113495bSYour Name 	QCSAP_PARAM_SET_CHANNEL_CHANGE,
211*5113495bSYour Name 	QCASAP_SET_DFS_TARGET_CHNL,
212*5113495bSYour Name 	QCASAP_SET_RADAR_CMD,
213*5113495bSYour Name 	QCSAP_GET_ACL,
214*5113495bSYour Name 	QCASAP_TX_CHAINMASK_CMD,
215*5113495bSYour Name 	QCASAP_RX_CHAINMASK_CMD,
216*5113495bSYour Name 	QCASAP_NSS_CMD,
217*5113495bSYour Name 	QCSAP_IPA_UC_STAT,
218*5113495bSYour Name 	QCASAP_SET_PHYMODE,
219*5113495bSYour Name 	QCASAP_GET_TEMP_CMD,
220*5113495bSYour Name 	QCASAP_DUMP_STATS,
221*5113495bSYour Name 	QCASAP_CLEAR_STATS,
222*5113495bSYour Name 	QCASAP_SET_RADAR_DBG,
223*5113495bSYour Name 	QCSAP_GET_FW_PROFILE_DATA,
224*5113495bSYour Name 	QCSAP_START_FW_PROFILING,
225*5113495bSYour Name 	QCSAP_CAP_TSF,
226*5113495bSYour Name 	QCSAP_GET_TSF,
227*5113495bSYour Name 	QCSAP_PARAM_CONC_SYSTEM_PREF,
228*5113495bSYour Name 	QCASAP_PARAM_LDPC,
229*5113495bSYour Name 	QCASAP_PARAM_TX_STBC,
230*5113495bSYour Name 	QCASAP_PARAM_RX_STBC,
231*5113495bSYour Name 	QCSAP_PARAM_CHAN_WIDTH,
232*5113495bSYour Name 	QCSAP_PARAM_SET_TXRX_STATS,
233*5113495bSYour Name 	QCASAP_SET_11AX_RATE,
234*5113495bSYour Name 	QCASAP_SET_PEER_RATE, /* Not Supported */
235*5113495bSYour Name 	QCASAP_PARAM_DCM,
236*5113495bSYour Name 	QCASAP_PARAM_RANGE_EXT,
237*5113495bSYour Name 	QCSAP_SET_DEFAULT_AMPDU,
238*5113495bSYour Name 	QCSAP_ENABLE_RTS_BURSTING,
239*5113495bSYour Name 	QCASAP_SET_HE_BSS_COLOR,
240*5113495bSYour Name 	QCSAP_SET_BTCOEX_MODE,
241*5113495bSYour Name 	QCSAP_SET_BTCOEX_LOW_RSSI_THRESHOLD,
242*5113495bSYour Name };
243*5113495bSYour Name 
244*5113495bSYour Name int iw_get_channel_list_with_cc(struct net_device *dev,
245*5113495bSYour Name 				mac_handle_t mac_handle,
246*5113495bSYour Name 				struct iw_request_info *info,
247*5113495bSYour Name 				union iwreq_data *wrqu,
248*5113495bSYour Name 				char *extra);
249*5113495bSYour Name 
250*5113495bSYour Name #endif /* __linux__ */
251*5113495bSYour Name 
252*5113495bSYour Name #endif /*_QC_SAP_IOCTL_H_*/
253