blob: 2faa5cb5ab38fced801f5a1d970966ec7538e6a1 [file] [log] [blame]
Qiwei Cai770c90f2018-09-17 19:17:13 +08001
2/*
Pragaspathi Thilagaraj5e3cd0a2019-03-31 16:46:28 +05303 * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
Qiwei Cai770c90f2018-09-17 19:17:13 +08004 *
5 * Permission to use, copy, modify, and/or distribute this software for
6 * any purpose with or without fee is hereby granted, provided that the
7 * above copyright notice and this permission notice appear in all
8 * copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
18 */
19
20#include <osdep.h>
21#include <wmi.h>
22#include <wmi_unified_priv.h>
23#include <wmi_unified_roam_param.h>
24#include <wmi_unified_roam_api.h>
25
26#ifdef FEATURE_LFR_SUBNET_DETECTION
Himanshu Batra21319222019-06-28 16:19:32 +053027QDF_STATUS
28wmi_unified_set_gateway_params_cmd(wmi_unified_t wmi_handle,
29 struct gateway_update_req_param *req)
Qiwei Cai770c90f2018-09-17 19:17:13 +080030{
Qiwei Cai770c90f2018-09-17 19:17:13 +080031 if (wmi_handle->ops->send_set_gateway_params_cmd)
32 return wmi_handle->ops->send_set_gateway_params_cmd(wmi_handle,
33 req);
34
35 return QDF_STATUS_E_FAILURE;
36}
37#endif /* FEATURE_LFR_SUBNET_DETECTION */
38
39#ifdef FEATURE_RSSI_MONITOR
Himanshu Batra21319222019-06-28 16:19:32 +053040QDF_STATUS
41wmi_unified_set_rssi_monitoring_cmd(wmi_unified_t wmi_handle,
42 struct rssi_monitor_param *req)
Qiwei Cai770c90f2018-09-17 19:17:13 +080043{
Qiwei Cai770c90f2018-09-17 19:17:13 +080044 if (wmi_handle->ops->send_set_rssi_monitoring_cmd)
45 return wmi_handle->ops->send_set_rssi_monitoring_cmd(wmi_handle,
46 req);
47
48 return QDF_STATUS_E_FAILURE;
49}
50#endif /* FEATURE_RSSI_MONITOR */
51
Himanshu Batra21319222019-06-28 16:19:32 +053052QDF_STATUS wmi_unified_roam_scan_offload_rssi_thresh_cmd(
53 wmi_unified_t wmi_handle,
54 struct roam_offload_scan_rssi_params *roam_req)
Qiwei Cai770c90f2018-09-17 19:17:13 +080055{
Qiwei Cai770c90f2018-09-17 19:17:13 +080056 if (wmi_handle->ops->send_roam_scan_offload_rssi_thresh_cmd)
57 return wmi_handle->ops->send_roam_scan_offload_rssi_thresh_cmd(
58 wmi_handle, roam_req);
59
60 return QDF_STATUS_E_FAILURE;
61}
62
63QDF_STATUS wmi_unified_roam_mawc_params_cmd(
Himanshu Batra21319222019-06-28 16:19:32 +053064 wmi_unified_t wmi_handle,
65 struct wmi_mawc_roam_params *params)
Qiwei Cai770c90f2018-09-17 19:17:13 +080066{
Qiwei Cai770c90f2018-09-17 19:17:13 +080067 if (wmi_handle->ops->send_roam_mawc_params_cmd)
68 return wmi_handle->ops->send_roam_mawc_params_cmd(wmi_handle,
69 params);
70
71 return QDF_STATUS_E_FAILURE;
72}
73
Himanshu Batra21319222019-06-28 16:19:32 +053074QDF_STATUS
75wmi_unified_roam_scan_filter_cmd(wmi_unified_t wmi_handle,
76 struct roam_scan_filter_params *roam_req)
Qiwei Cai770c90f2018-09-17 19:17:13 +080077{
Qiwei Cai770c90f2018-09-17 19:17:13 +080078 if (wmi_handle->ops->send_roam_scan_filter_cmd)
79 return wmi_handle->ops->send_roam_scan_filter_cmd(wmi_handle,
80 roam_req);
81
82 return QDF_STATUS_E_FAILURE;
83}
84
85#ifdef FEATURE_WLAN_ESE
Himanshu Batra21319222019-06-28 16:19:32 +053086QDF_STATUS wmi_unified_plm_stop_cmd(wmi_unified_t wmi_handle,
87 const struct plm_req_params *plm)
Qiwei Cai770c90f2018-09-17 19:17:13 +080088{
Qiwei Cai770c90f2018-09-17 19:17:13 +080089 if (wmi_handle->ops->send_plm_stop_cmd)
90 return wmi_handle->ops->send_plm_stop_cmd(wmi_handle, plm);
91
92 return QDF_STATUS_E_FAILURE;
93}
94
Himanshu Batra21319222019-06-28 16:19:32 +053095QDF_STATUS wmi_unified_plm_start_cmd(wmi_unified_t wmi_handle,
wadesongc3ac05e2019-11-04 15:18:35 +080096 const struct plm_req_params *plm)
Qiwei Cai770c90f2018-09-17 19:17:13 +080097{
Qiwei Cai770c90f2018-09-17 19:17:13 +080098 if (wmi_handle->ops->send_plm_start_cmd)
wadesongc3ac05e2019-11-04 15:18:35 +080099 return wmi_handle->ops->send_plm_start_cmd(wmi_handle, plm);
Qiwei Cai770c90f2018-09-17 19:17:13 +0800100
101 return QDF_STATUS_E_FAILURE;
102}
103#endif /* FEATURE_WLAN_ESE */
104
105#ifdef WLAN_FEATURE_ROAM_OFFLOAD
Himanshu Batra21319222019-06-28 16:19:32 +0530106QDF_STATUS wmi_unified_set_ric_req_cmd(wmi_unified_t wmi_handle, void *msg,
107 uint8_t is_add_ts)
Qiwei Cai770c90f2018-09-17 19:17:13 +0800108{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800109 if (wmi_handle->ops->send_set_ric_req_cmd)
110 return wmi_handle->ops->send_set_ric_req_cmd(wmi_handle, msg,
111 is_add_ts);
112
113 return QDF_STATUS_E_FAILURE;
114}
115
Himanshu Batra21319222019-06-28 16:19:32 +0530116QDF_STATUS wmi_unified_roam_synch_complete_cmd(wmi_unified_t wmi_handle,
117 uint8_t vdev_id)
Qiwei Cai770c90f2018-09-17 19:17:13 +0800118{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800119 if (wmi_handle->ops->send_process_roam_synch_complete_cmd)
120 return wmi_handle->ops->send_process_roam_synch_complete_cmd(
121 wmi_handle, vdev_id);
122
123 return QDF_STATUS_E_FAILURE;
124}
125
Himanshu Batra21319222019-06-28 16:19:32 +0530126QDF_STATUS wmi_unified_roam_invoke_cmd(wmi_unified_t wmi_handle,
Qiwei Cai770c90f2018-09-17 19:17:13 +0800127 struct wmi_roam_invoke_cmd *roaminvoke,
128 uint32_t ch_hz)
129{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800130 if (wmi_handle->ops->send_roam_invoke_cmd)
131 return wmi_handle->ops->send_roam_invoke_cmd(wmi_handle,
132 roaminvoke,
133 ch_hz);
134
135 return QDF_STATUS_E_FAILURE;
136}
137#endif /* WLAN_FEATURE_ROAM_OFFLOAD */
138
Himanshu Batra21319222019-06-28 16:19:32 +0530139QDF_STATUS wmi_unified_roam_scan_offload_mode_cmd(
140 wmi_unified_t wmi_handle,
Qiwei Cai770c90f2018-09-17 19:17:13 +0800141 wmi_start_scan_cmd_fixed_param *scan_cmd_fp,
142 struct roam_offload_scan_params *roam_req)
143{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800144 if (wmi_handle->ops->send_roam_scan_offload_mode_cmd)
145 return wmi_handle->ops->send_roam_scan_offload_mode_cmd(
146 wmi_handle, scan_cmd_fp, roam_req);
147
148 return QDF_STATUS_E_FAILURE;
149}
150
Himanshu Batra21319222019-06-28 16:19:32 +0530151QDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(
152 wmi_unified_t wmi_handle,
153 struct ap_profile_params *ap_profile)
Qiwei Cai770c90f2018-09-17 19:17:13 +0800154{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800155 if (wmi_handle->ops->send_roam_scan_offload_ap_profile_cmd)
156 return wmi_handle->ops->send_roam_scan_offload_ap_profile_cmd(
157 wmi_handle, ap_profile);
158
159 return QDF_STATUS_E_FAILURE;
160}
161
Himanshu Batra21319222019-06-28 16:19:32 +0530162QDF_STATUS wmi_unified_roam_scan_offload_cmd(wmi_unified_t wmi_handle,
163 uint32_t command,
164 uint32_t vdev_id)
Qiwei Cai770c90f2018-09-17 19:17:13 +0800165{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800166 if (wmi_handle->ops->send_roam_scan_offload_cmd)
167 return wmi_handle->ops->send_roam_scan_offload_cmd(wmi_handle,
168 command,
169 vdev_id);
170
171 return QDF_STATUS_E_FAILURE;
172}
173
Pragaspathi Thilagaraj7cc507f2019-04-14 23:56:47 +0530174QDF_STATUS
175wmi_unified_roam_scan_offload_scan_period(wmi_unified_t wmi_handle,
176 struct roam_scan_period_params *param)
Qiwei Cai770c90f2018-09-17 19:17:13 +0800177{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800178 if (wmi_handle->ops->send_roam_scan_offload_scan_period_cmd)
Pragaspathi Thilagaraj7cc507f2019-04-14 23:56:47 +0530179 return wmi_handle->ops->send_roam_scan_offload_scan_period_cmd(
180 wmi_handle, param);
Qiwei Cai770c90f2018-09-17 19:17:13 +0800181
182 return QDF_STATUS_E_FAILURE;
183}
184
Himanshu Batra21319222019-06-28 16:19:32 +0530185QDF_STATUS
186wmi_unified_roam_scan_offload_chan_list_cmd(wmi_unified_t wmi_handle,
187 uint8_t chan_count,
188 uint32_t *chan_list,
189 uint8_t list_type,
190 uint32_t vdev_id)
Qiwei Cai770c90f2018-09-17 19:17:13 +0800191{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800192 if (wmi_handle->ops->send_roam_scan_offload_chan_list_cmd)
193 return wmi_handle->ops->send_roam_scan_offload_chan_list_cmd(wmi_handle,
194 chan_count, chan_list,
195 list_type, vdev_id);
196
197 return QDF_STATUS_E_FAILURE;
198}
199
Himanshu Batra21319222019-06-28 16:19:32 +0530200QDF_STATUS
201wmi_unified_roam_scan_offload_rssi_change_cmd(wmi_unified_t wmi_handle,
202 uint32_t vdev_id,
203 int32_t rssi_change_thresh,
204 uint32_t bcn_rssi_weight,
205 uint32_t hirssi_delay_btw_scans)
Qiwei Cai770c90f2018-09-17 19:17:13 +0800206{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800207 if (wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd)
208 return wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd(wmi_handle,
209 vdev_id, rssi_change_thresh,
210 bcn_rssi_weight, hirssi_delay_btw_scans);
211
212 return QDF_STATUS_E_FAILURE;
213}
214
Himanshu Batra21319222019-06-28 16:19:32 +0530215QDF_STATUS
216wmi_unified_set_per_roam_config(wmi_unified_t wmi_handle,
217 struct wmi_per_roam_config_req *req_buf)
Qiwei Cai770c90f2018-09-17 19:17:13 +0800218{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800219 if (wmi_handle->ops->send_per_roam_config_cmd)
220 return wmi_handle->ops->send_per_roam_config_cmd(wmi_handle,
221 req_buf);
222
223 return QDF_STATUS_E_FAILURE;
224}
225
Himanshu Batra21319222019-06-28 16:19:32 +0530226QDF_STATUS wmi_unified_send_limit_off_chan_cmd(
227 wmi_unified_t wmi_handle,
Qiwei Cai770c90f2018-09-17 19:17:13 +0800228 struct wmi_limit_off_chan_param *limit_off_chan_param)
229{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800230 if (wmi_handle->ops->send_limit_off_chan_cmd)
231 return wmi_handle->ops->send_limit_off_chan_cmd(wmi_handle,
232 limit_off_chan_param);
233
234 return QDF_STATUS_E_FAILURE;
235}
236
237#ifdef WLAN_FEATURE_FILS_SK
Himanshu Batra21319222019-06-28 16:19:32 +0530238QDF_STATUS wmi_unified_roam_send_hlp_cmd(wmi_unified_t wmi_handle,
Qiwei Cai770c90f2018-09-17 19:17:13 +0800239 struct hlp_params *req_buf)
240{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800241 if (wmi_handle->ops->send_roam_scan_hlp_cmd)
242 return wmi_handle->ops->send_roam_scan_hlp_cmd(wmi_handle,
243 req_buf);
244
245 return QDF_STATUS_E_FAILURE;
246}
247#endif /* WLAN_FEATURE_FILS_SK */
248
Himanshu Batra21319222019-06-28 16:19:32 +0530249QDF_STATUS wmi_unified_send_btm_config(wmi_unified_t wmi_handle,
Qiwei Cai770c90f2018-09-17 19:17:13 +0800250 struct wmi_btm_config *params)
251{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800252 if (wmi_handle->ops->send_btm_config)
253 return wmi_handle->ops->send_btm_config(wmi_handle,
254 params);
255
256 return QDF_STATUS_E_FAILURE;
257}
258
Himanshu Batra21319222019-06-28 16:19:32 +0530259QDF_STATUS wmi_unified_send_bss_load_config(wmi_unified_t wmi_handle,
Pragaspathi Thilagaraj9341ee32018-12-16 23:17:10 +0530260 struct wmi_bss_load_config *params)
261{
Pragaspathi Thilagaraj9341ee32018-12-16 23:17:10 +0530262 if (wmi_handle->ops->send_roam_bss_load_config)
263 return wmi_handle->ops->send_roam_bss_load_config(wmi_handle,
264 params);
265
266 return QDF_STATUS_E_FAILURE;
267}
268
Pragaspathi Thilagaraj5e3cd0a2019-03-31 16:46:28 +0530269QDF_STATUS
270wmi_unified_send_disconnect_roam_params(wmi_unified_t wmi_handle,
271 struct wmi_disconnect_roam_params *req)
272{
273 if (wmi_handle->ops->send_disconnect_roam_params)
274 return wmi_handle->ops->send_disconnect_roam_params(wmi_handle,
275 req);
276 return QDF_STATUS_E_FAILURE;
277}
278
279QDF_STATUS
280wmi_unified_send_idle_roam_params(wmi_unified_t wmi_handle,
281 struct wmi_idle_roam_params *req)
282{
283 if (wmi_handle->ops->send_idle_roam_params)
284 return wmi_handle->ops->send_idle_roam_params(wmi_handle,
285 req);
286 return QDF_STATUS_E_FAILURE;
287}
288
Pragaspathi Thilagarajfc54cc72019-07-17 00:45:20 +0530289QDF_STATUS
290wmi_unified_send_roam_preauth_status(wmi_unified_t wmi_handle,
291 struct wmi_roam_auth_status_params *params)
292{
293 if (wmi_handle->ops->send_roam_preauth_status)
294 return wmi_handle->ops->send_roam_preauth_status(wmi_handle,
295 params);
296 return QDF_STATUS_E_FAILURE;
297}
298
Himanshu Batra21319222019-06-28 16:19:32 +0530299QDF_STATUS wmi_unified_offload_11k_cmd(wmi_unified_t wmi_handle,
300 struct wmi_11k_offload_params *params)
Qiwei Cai770c90f2018-09-17 19:17:13 +0800301{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800302 if (wmi_handle->ops->send_offload_11k_cmd)
303 return wmi_handle->ops->send_offload_11k_cmd(wmi_handle,
304 params);
305
306 return QDF_STATUS_E_FAILURE;
307}
308
Himanshu Batra21319222019-06-28 16:19:32 +0530309QDF_STATUS wmi_unified_invoke_neighbor_report_cmd(
310 wmi_unified_t wmi_handle,
Qiwei Cai770c90f2018-09-17 19:17:13 +0800311 struct wmi_invoke_neighbor_report_params *params)
312{
Qiwei Cai770c90f2018-09-17 19:17:13 +0800313 if (wmi_handle->ops->send_invoke_neighbor_report_cmd)
314 return wmi_handle->ops->send_invoke_neighbor_report_cmd(
315 wmi_handle, params);
316
317 return QDF_STATUS_E_FAILURE;
318}
319
Srinivas Dasaride39f3f2019-08-14 14:41:30 +0530320#ifdef WLAN_FEATURE_ROAM_OFFLOAD
321QDF_STATUS wmi_unified_set_roam_triggers(wmi_unified_t wmi_handle,
322 struct roam_triggers *triggers)
323{
324 if (wmi_handle->ops->send_set_roam_trigger_cmd)
325 return wmi_handle->ops->send_set_roam_trigger_cmd(wmi_handle,
326 triggers->vdev_id, triggers->trigger_bitmap);
327
328 return QDF_STATUS_E_FAILURE;
329}
330#endif