1 /*
2 * Copyright (c) 2013-2021, The Linux Foundation. All rights reserved.
3 * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18 #include <osdep.h>
19 #include <wmi.h>
20 #include <wmi_unified_priv.h>
21 #include <wmi_unified_roam_param.h>
22 #include <wmi_unified_roam_api.h>
23
24 #ifdef FEATURE_LFR_SUBNET_DETECTION
25 QDF_STATUS
wmi_unified_set_gateway_params_cmd(wmi_unified_t wmi_handle,struct gateway_update_req_param * req)26 wmi_unified_set_gateway_params_cmd(wmi_unified_t wmi_handle,
27 struct gateway_update_req_param *req)
28 {
29 if (wmi_handle->ops->send_set_gateway_params_cmd)
30 return wmi_handle->ops->send_set_gateway_params_cmd(wmi_handle,
31 req);
32
33 return QDF_STATUS_E_FAILURE;
34 }
35 #endif /* FEATURE_LFR_SUBNET_DETECTION */
36
37 #ifdef FEATURE_RSSI_MONITOR
38 QDF_STATUS
wmi_unified_set_rssi_monitoring_cmd(wmi_unified_t wmi_handle,struct rssi_monitor_param * req)39 wmi_unified_set_rssi_monitoring_cmd(wmi_unified_t wmi_handle,
40 struct rssi_monitor_param *req)
41 {
42 if (wmi_handle->ops->send_set_rssi_monitoring_cmd)
43 return wmi_handle->ops->send_set_rssi_monitoring_cmd(wmi_handle,
44 req);
45
46 return QDF_STATUS_E_FAILURE;
47 }
48 #endif /* FEATURE_RSSI_MONITOR */
49
wmi_unified_roam_scan_offload_rssi_thresh_cmd(wmi_unified_t wmi_handle,struct wlan_roam_offload_scan_rssi_params * roam_req)50 QDF_STATUS wmi_unified_roam_scan_offload_rssi_thresh_cmd(
51 wmi_unified_t wmi_handle,
52 struct wlan_roam_offload_scan_rssi_params *roam_req)
53 {
54 if (wmi_handle->ops->send_roam_scan_offload_rssi_thresh_cmd)
55 return wmi_handle->ops->send_roam_scan_offload_rssi_thresh_cmd(
56 wmi_handle, roam_req);
57
58 return QDF_STATUS_E_FAILURE;
59 }
60
61 QDF_STATUS
wmi_unified_roam_scan_offload_scan_period(wmi_unified_t wmi_handle,struct wlan_roam_scan_period_params * param)62 wmi_unified_roam_scan_offload_scan_period(
63 wmi_unified_t wmi_handle,
64 struct wlan_roam_scan_period_params *param)
65 {
66 if (wmi_handle->ops->send_roam_scan_offload_scan_period_cmd)
67 return wmi_handle->ops->send_roam_scan_offload_scan_period_cmd(
68 wmi_handle, param);
69
70 return QDF_STATUS_E_FAILURE;
71 }
72
wmi_unified_roam_mawc_params_cmd(wmi_unified_t wmi_handle,struct wlan_roam_mawc_params * params)73 QDF_STATUS wmi_unified_roam_mawc_params_cmd(
74 wmi_unified_t wmi_handle,
75 struct wlan_roam_mawc_params *params)
76 {
77 if (wmi_handle->ops->send_roam_mawc_params_cmd)
78 return wmi_handle->ops->send_roam_mawc_params_cmd(wmi_handle,
79 params);
80
81 return QDF_STATUS_E_FAILURE;
82 }
83
84 QDF_STATUS
wmi_unified_roam_scan_filter_cmd(wmi_unified_t wmi_handle,struct roam_scan_filter_params * roam_req)85 wmi_unified_roam_scan_filter_cmd(wmi_unified_t wmi_handle,
86 struct roam_scan_filter_params *roam_req)
87 {
88 if (wmi_handle->ops->send_roam_scan_filter_cmd)
89 return wmi_handle->ops->send_roam_scan_filter_cmd(wmi_handle,
90 roam_req);
91
92 return QDF_STATUS_E_FAILURE;
93 }
94
95 #ifdef FEATURE_WLAN_ESE
wmi_unified_plm_stop_cmd(wmi_unified_t wmi_handle,const struct plm_req_params * plm)96 QDF_STATUS wmi_unified_plm_stop_cmd(wmi_unified_t wmi_handle,
97 const struct plm_req_params *plm)
98 {
99 if (wmi_handle->ops->send_plm_stop_cmd)
100 return wmi_handle->ops->send_plm_stop_cmd(wmi_handle, plm);
101
102 return QDF_STATUS_E_FAILURE;
103 }
104
wmi_unified_plm_start_cmd(wmi_unified_t wmi_handle,const struct plm_req_params * plm)105 QDF_STATUS wmi_unified_plm_start_cmd(wmi_unified_t wmi_handle,
106 const struct plm_req_params *plm)
107 {
108 if (wmi_handle->ops->send_plm_start_cmd)
109 return wmi_handle->ops->send_plm_start_cmd(wmi_handle, plm);
110
111 return QDF_STATUS_E_FAILURE;
112 }
113 #endif /* FEATURE_WLAN_ESE */
114
115 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
wmi_unified_set_ric_req_cmd(wmi_unified_t wmi_handle,void * msg,uint8_t is_add_ts)116 QDF_STATUS wmi_unified_set_ric_req_cmd(wmi_unified_t wmi_handle, void *msg,
117 uint8_t is_add_ts)
118 {
119 if (wmi_handle->ops->send_set_ric_req_cmd)
120 return wmi_handle->ops->send_set_ric_req_cmd(wmi_handle, msg,
121 is_add_ts);
122
123 return QDF_STATUS_E_FAILURE;
124 }
125
wmi_unified_roam_synch_complete_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id)126 QDF_STATUS wmi_unified_roam_synch_complete_cmd(wmi_unified_t wmi_handle,
127 uint8_t vdev_id)
128 {
129 if (wmi_handle->ops->send_process_roam_synch_complete_cmd)
130 return wmi_handle->ops->send_process_roam_synch_complete_cmd(
131 wmi_handle, vdev_id);
132
133 return QDF_STATUS_E_FAILURE;
134 }
135
136 #ifdef WLAN_VENDOR_HANDOFF_CONTROL
137 QDF_STATUS
wmi_unified_roam_vendor_handoff_req_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,uint32_t param_id)138 wmi_unified_roam_vendor_handoff_req_cmd(wmi_unified_t wmi_handle,
139 uint8_t vdev_id, uint32_t param_id)
140 {
141 if (wmi_handle->ops->send_process_roam_vendor_handoff_req_cmd)
142 return wmi_handle->ops->send_process_roam_vendor_handoff_req_cmd(
143 wmi_handle, vdev_id, param_id);
144
145 return QDF_STATUS_E_FAILURE;
146 }
147
148 QDF_STATUS
wmi_extract_roam_vendor_control_param_event(wmi_unified_t wmi_handle,uint8_t * event,uint32_t len,struct roam_vendor_handoff_params ** data)149 wmi_extract_roam_vendor_control_param_event(wmi_unified_t wmi_handle,
150 uint8_t *event, uint32_t len,
151 struct roam_vendor_handoff_params **data)
152 {
153 if (wmi_handle->ops->extract_roam_vendor_control_param_event)
154 return wmi_handle->ops->extract_roam_vendor_control_param_event(
155 wmi_handle, event, len, data);
156 return QDF_STATUS_E_FAILURE;
157 }
158 #endif
159
160 #if defined(WLAN_FEATURE_ROAM_OFFLOAD) && defined(WLAN_FEATURE_11BE_MLO)
161 QDF_STATUS
wmi_extract_roam_synch_key_event(wmi_unified_t wmi_handle,uint8_t * event,uint32_t len,struct wlan_crypto_key_entry ** keys,uint8_t * num_keys,struct qdf_mac_addr * mld_addr)162 wmi_extract_roam_synch_key_event(wmi_unified_t wmi_handle, uint8_t *event,
163 uint32_t len,
164 struct wlan_crypto_key_entry **keys,
165 uint8_t *num_keys,
166 struct qdf_mac_addr *mld_addr)
167 {
168 if (wmi_handle->ops->extract_roam_synch_key_event)
169 return wmi_handle->ops->extract_roam_synch_key_event(
170 wmi_handle, event,
171 len, keys, num_keys,
172 mld_addr);
173
174 return QDF_STATUS_E_FAILURE;
175 }
176 #endif
177
wmi_unified_roam_invoke_cmd(wmi_unified_t wmi_handle,struct roam_invoke_req * roaminvoke)178 QDF_STATUS wmi_unified_roam_invoke_cmd(wmi_unified_t wmi_handle,
179 struct roam_invoke_req *roaminvoke)
180 {
181 if (wmi_handle->ops->send_roam_invoke_cmd)
182 return wmi_handle->ops->send_roam_invoke_cmd(wmi_handle,
183 roaminvoke);
184
185 return QDF_STATUS_E_FAILURE;
186 }
187
188 QDF_STATUS
wmi_unified_send_disconnect_roam_params(wmi_unified_t wmi_handle,struct wlan_roam_disconnect_params * req)189 wmi_unified_send_disconnect_roam_params(wmi_unified_t wmi_handle,
190 struct wlan_roam_disconnect_params *req)
191 {
192 if (wmi_handle->ops->send_disconnect_roam_params)
193 return wmi_handle->ops->send_disconnect_roam_params(wmi_handle,
194 req);
195 return QDF_STATUS_E_FAILURE;
196 }
197
198 QDF_STATUS
wmi_unified_send_idle_roam_params(wmi_unified_t wmi_handle,struct wlan_roam_idle_params * req)199 wmi_unified_send_idle_roam_params(wmi_unified_t wmi_handle,
200 struct wlan_roam_idle_params *req)
201 {
202 if (wmi_handle->ops->send_idle_roam_params)
203 return wmi_handle->ops->send_idle_roam_params(wmi_handle,
204 req);
205 return QDF_STATUS_E_FAILURE;
206 }
207
208 QDF_STATUS
wmi_unified_send_roam_preauth_status(wmi_unified_t wmi_handle,struct wmi_roam_auth_status_params * params)209 wmi_unified_send_roam_preauth_status(wmi_unified_t wmi_handle,
210 struct wmi_roam_auth_status_params *params)
211 {
212 if (wmi_handle->ops->send_roam_preauth_status)
213 return wmi_handle->ops->send_roam_preauth_status(wmi_handle,
214 params);
215 return QDF_STATUS_E_FAILURE;
216 }
217
wmi_unified_vdev_set_pcl_cmd(wmi_unified_t wmi_handle,struct set_pcl_cmd_params * params)218 QDF_STATUS wmi_unified_vdev_set_pcl_cmd(wmi_unified_t wmi_handle,
219 struct set_pcl_cmd_params *params)
220 {
221 if (wmi_handle->ops->send_vdev_set_pcl_cmd)
222 return wmi_handle->ops->send_vdev_set_pcl_cmd(wmi_handle,
223 params);
224
225 return QDF_STATUS_E_FAILURE;
226 }
227 #endif /* WLAN_FEATURE_ROAM_OFFLOAD */
228
229 #ifdef WLAN_FEATURE_11BE_MLO
230 QDF_STATUS
wmi_unified_roam_mlo_config_cmd(wmi_unified_t wmi_handle,struct wlan_roam_mlo_config * req)231 wmi_unified_roam_mlo_config_cmd(wmi_unified_t wmi_handle,
232 struct wlan_roam_mlo_config *req)
233 {
234 if (wmi_handle->ops->send_roam_mlo_config)
235 return wmi_handle->ops->send_roam_mlo_config(wmi_handle,
236 req);
237 return QDF_STATUS_E_FAILURE;
238 }
239 #endif
240
wmi_unified_roam_scan_offload_mode_cmd(wmi_unified_t wmi_handle,struct wlan_roam_scan_offload_params * rso_cfg)241 QDF_STATUS wmi_unified_roam_scan_offload_mode_cmd(
242 wmi_unified_t wmi_handle,
243 struct wlan_roam_scan_offload_params *rso_cfg)
244 {
245 if (wmi_handle->ops->send_roam_scan_offload_mode_cmd)
246 return wmi_handle->ops->send_roam_scan_offload_mode_cmd(
247 wmi_handle, rso_cfg);
248
249 return QDF_STATUS_E_FAILURE;
250 }
251
wmi_unified_send_roam_scan_offload_ap_cmd(wmi_unified_t wmi_handle,struct ap_profile_params * ap_profile)252 QDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(
253 wmi_unified_t wmi_handle,
254 struct ap_profile_params *ap_profile)
255 {
256 if (wmi_handle->ops->send_roam_scan_offload_ap_profile_cmd)
257 return wmi_handle->ops->send_roam_scan_offload_ap_profile_cmd(
258 wmi_handle, ap_profile);
259
260 return QDF_STATUS_E_FAILURE;
261 }
262
wmi_unified_roam_scan_offload_cmd(wmi_unified_t wmi_handle,uint32_t command,uint32_t vdev_id)263 QDF_STATUS wmi_unified_roam_scan_offload_cmd(wmi_unified_t wmi_handle,
264 uint32_t command,
265 uint32_t vdev_id)
266 {
267 if (wmi_handle->ops->send_roam_scan_offload_cmd)
268 return wmi_handle->ops->send_roam_scan_offload_cmd(wmi_handle,
269 command,
270 vdev_id);
271
272 return QDF_STATUS_E_FAILURE;
273 }
274
275 QDF_STATUS
wmi_unified_roam_scan_offload_chan_list_cmd(wmi_unified_t wmi_handle,struct wlan_roam_scan_channel_list * rso_ch_info)276 wmi_unified_roam_scan_offload_chan_list_cmd(
277 wmi_unified_t wmi_handle,
278 struct wlan_roam_scan_channel_list *rso_ch_info)
279 {
280 if (wmi_handle->ops->send_roam_scan_offload_chan_list_cmd)
281 return wmi_handle->ops->send_roam_scan_offload_chan_list_cmd(
282 wmi_handle, rso_ch_info);
283
284 return QDF_STATUS_E_FAILURE;
285 }
286
wmi_unified_roam_scan_offload_rssi_change_cmd(wmi_unified_t wmi_handle,struct wlan_roam_rssi_change_params * params)287 QDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(
288 wmi_unified_t wmi_handle,
289 struct wlan_roam_rssi_change_params *params)
290 {
291 if (wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd)
292 return wmi_handle->ops->send_roam_scan_offload_rssi_change_cmd(
293 wmi_handle, params);
294
295 return QDF_STATUS_E_FAILURE;
296 }
297
298 QDF_STATUS
wmi_unified_set_per_roam_config(wmi_unified_t wmi_handle,struct wlan_per_roam_config_req * req_buf)299 wmi_unified_set_per_roam_config(wmi_unified_t wmi_handle,
300 struct wlan_per_roam_config_req *req_buf)
301 {
302 if (wmi_handle->ops->send_per_roam_config_cmd)
303 return wmi_handle->ops->send_per_roam_config_cmd(wmi_handle,
304 req_buf);
305
306 return QDF_STATUS_E_FAILURE;
307 }
308
wmi_unified_send_limit_off_chan_cmd(wmi_unified_t wmi_handle,struct wmi_limit_off_chan_param * limit_off_chan_param)309 QDF_STATUS wmi_unified_send_limit_off_chan_cmd(
310 wmi_unified_t wmi_handle,
311 struct wmi_limit_off_chan_param *limit_off_chan_param)
312 {
313 if (wmi_handle->ops->send_limit_off_chan_cmd)
314 return wmi_handle->ops->send_limit_off_chan_cmd(wmi_handle,
315 limit_off_chan_param);
316
317 return QDF_STATUS_E_FAILURE;
318 }
319
320 #ifdef WLAN_FEATURE_FILS_SK
wmi_unified_roam_send_hlp_cmd(wmi_unified_t wmi_handle,struct hlp_params * req_buf)321 QDF_STATUS wmi_unified_roam_send_hlp_cmd(wmi_unified_t wmi_handle,
322 struct hlp_params *req_buf)
323 {
324 if (wmi_handle->ops->send_roam_scan_hlp_cmd)
325 return wmi_handle->ops->send_roam_scan_hlp_cmd(wmi_handle,
326 req_buf);
327
328 return QDF_STATUS_E_FAILURE;
329 }
330 #endif /* WLAN_FEATURE_FILS_SK */
331
wmi_unified_send_btm_config(wmi_unified_t wmi_handle,struct wlan_roam_btm_config * params)332 QDF_STATUS wmi_unified_send_btm_config(wmi_unified_t wmi_handle,
333 struct wlan_roam_btm_config *params)
334 {
335 if (wmi_handle->ops->send_btm_config)
336 return wmi_handle->ops->send_btm_config(wmi_handle,
337 params);
338
339 return QDF_STATUS_E_FAILURE;
340 }
341
wmi_unified_send_bss_load_config(wmi_unified_t wmi_handle,struct wlan_roam_bss_load_config * params)342 QDF_STATUS wmi_unified_send_bss_load_config(
343 wmi_unified_t wmi_handle,
344 struct wlan_roam_bss_load_config *params)
345 {
346 if (wmi_handle->ops->send_roam_bss_load_config)
347 return wmi_handle->ops->send_roam_bss_load_config(wmi_handle,
348 params);
349
350 return QDF_STATUS_E_FAILURE;
351 }
352
353 QDF_STATUS
wmi_unified_offload_11k_cmd(wmi_unified_t wmi_handle,struct wlan_roam_11k_offload_params * params)354 wmi_unified_offload_11k_cmd(wmi_unified_t wmi_handle,
355 struct wlan_roam_11k_offload_params *params)
356 {
357 if (wmi_handle->ops->send_offload_11k_cmd)
358 return wmi_handle->ops->send_offload_11k_cmd(wmi_handle,
359 params);
360
361 return QDF_STATUS_E_FAILURE;
362 }
363
wmi_unified_invoke_neighbor_report_cmd(wmi_unified_t wmi_handle,struct wmi_invoke_neighbor_report_params * params)364 QDF_STATUS wmi_unified_invoke_neighbor_report_cmd(
365 wmi_unified_t wmi_handle,
366 struct wmi_invoke_neighbor_report_params *params)
367 {
368 if (wmi_handle->ops->send_invoke_neighbor_report_cmd)
369 return wmi_handle->ops->send_invoke_neighbor_report_cmd(
370 wmi_handle, params);
371
372 return QDF_STATUS_E_FAILURE;
373 }
374
wmi_unified_get_roam_scan_ch_list(wmi_unified_t wmi_handle,uint8_t vdev_id)375 QDF_STATUS wmi_unified_get_roam_scan_ch_list(wmi_unified_t wmi_handle,
376 uint8_t vdev_id)
377 {
378 if (wmi_handle->ops->send_roam_scan_ch_list_req_cmd)
379 return wmi_handle->ops->send_roam_scan_ch_list_req_cmd(
380 wmi_handle, vdev_id);
381
382 return QDF_STATUS_E_FAILURE;
383 }
384
385 #if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
386 QDF_STATUS
wmi_extract_roam_event(wmi_unified_t wmi_handle,uint8_t * event,uint32_t data_len,struct roam_offload_roam_event * roam_event)387 wmi_extract_roam_event(wmi_unified_t wmi_handle, uint8_t *event,
388 uint32_t data_len,
389 struct roam_offload_roam_event *roam_event)
390 {
391 if (wmi_handle->ops->extract_roam_event)
392 return wmi_handle->ops->extract_roam_event(wmi_handle, event,
393 data_len,
394 roam_event);
395
396 return QDF_STATUS_E_FAILURE;
397 }
398 #endif /* WLAN_FEATURE_HOST_ROAM || WLAN_FEATURE_ROAM_OFFLOAD */
399
400 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
wmi_unified_set_roam_triggers(wmi_unified_t wmi_handle,struct wlan_roam_triggers * triggers)401 QDF_STATUS wmi_unified_set_roam_triggers(wmi_unified_t wmi_handle,
402 struct wlan_roam_triggers *triggers)
403 {
404 if (wmi_handle->ops->send_set_roam_trigger_cmd)
405 return wmi_handle->ops->send_set_roam_trigger_cmd(wmi_handle,
406 triggers);
407
408 return QDF_STATUS_E_FAILURE;
409 }
410
wmi_extract_roam_sync_event(wmi_unified_t wmi_handle,void * evt_buf,uint32_t len,struct roam_offload_synch_ind ** sync_ind)411 QDF_STATUS wmi_extract_roam_sync_event(wmi_unified_t wmi_handle, void *evt_buf,
412 uint32_t len,
413 struct roam_offload_synch_ind **sync_ind)
414 {
415 if (wmi_handle->ops->extract_roam_sync_event)
416 return wmi_handle->ops->extract_roam_sync_event(wmi_handle,
417 evt_buf,
418 len,
419 sync_ind);
420
421 return QDF_STATUS_E_FAILURE;
422 }
423
424 QDF_STATUS
wmi_extract_roam_sync_frame_event(wmi_unified_t wmi_handle,void * event,uint32_t len,struct roam_synch_frame_ind * frame_ptr)425 wmi_extract_roam_sync_frame_event(wmi_unified_t wmi_handle, void *event,
426 uint32_t len,
427 struct roam_synch_frame_ind *frame_ptr)
428 {
429 if (wmi_handle->ops->extract_roam_sync_frame_event)
430 return wmi_handle->ops->extract_roam_sync_frame_event(wmi_handle,
431 event,
432 len,
433 frame_ptr);
434
435 return QDF_STATUS_E_FAILURE;
436 }
437
438 QDF_STATUS
wmi_extract_btm_denylist_event(wmi_unified_t wmi_handle,uint8_t * event,uint32_t data_len,struct roam_denylist_event ** dst_list)439 wmi_extract_btm_denylist_event(wmi_unified_t wmi_handle,
440 uint8_t *event,
441 uint32_t data_len,
442 struct roam_denylist_event **dst_list)
443 {
444 if (wmi_handle->ops->extract_btm_dl_event)
445 return wmi_handle->ops->extract_btm_dl_event(wmi_handle,
446 event,
447 data_len,
448 dst_list);
449 return QDF_STATUS_E_FAILURE;
450 }
451
452 QDF_STATUS
wmi_extract_vdev_disconnect_event(wmi_unified_t wmi_handle,uint8_t * event,uint32_t data_len,struct vdev_disconnect_event_data * data)453 wmi_extract_vdev_disconnect_event(wmi_unified_t wmi_handle,
454 uint8_t *event, uint32_t data_len,
455 struct vdev_disconnect_event_data *data)
456 {
457 if (wmi_handle->ops->extract_vdev_disconnect_event)
458 return wmi_handle->ops->extract_vdev_disconnect_event(
459 wmi_handle, event, data_len, data);
460 return QDF_STATUS_E_FAILURE;
461 }
462
463 QDF_STATUS
wmi_extract_roam_scan_chan_list(wmi_unified_t wmi_handle,uint8_t * event,uint32_t data_len,struct cm_roam_scan_ch_resp ** data)464 wmi_extract_roam_scan_chan_list(wmi_unified_t wmi_handle,
465 uint8_t *event, uint32_t data_len,
466 struct cm_roam_scan_ch_resp **data)
467 {
468 if (wmi_handle->ops->extract_roam_scan_chan_list)
469 return wmi_handle->ops->extract_roam_scan_chan_list(
470 wmi_handle, event, data_len, data);
471 return QDF_STATUS_E_FAILURE;
472 }
473
474 QDF_STATUS
wmi_unified_extract_roam_btm_response(wmi_unified_t wmi,void * evt_buf,struct roam_btm_response_data * dst,uint8_t idx)475 wmi_unified_extract_roam_btm_response(wmi_unified_t wmi, void *evt_buf,
476 struct roam_btm_response_data *dst,
477 uint8_t idx)
478 {
479 if (wmi->ops->extract_roam_btm_response_stats)
480 return wmi->ops->extract_roam_btm_response_stats(wmi, evt_buf,
481 dst, idx);
482
483 return QDF_STATUS_E_FAILURE;
484 }
485
486 QDF_STATUS
wmi_unified_extract_roam_initial_info(wmi_unified_t wmi,void * evt_buf,struct roam_initial_data * dst,uint8_t idx)487 wmi_unified_extract_roam_initial_info(wmi_unified_t wmi, void *evt_buf,
488 struct roam_initial_data *dst,
489 uint8_t idx)
490 {
491 if (wmi->ops->extract_roam_initial_info)
492 return wmi->ops->extract_roam_initial_info(wmi, evt_buf,
493 dst, idx);
494
495 return QDF_STATUS_E_FAILURE;
496 }
497
498 QDF_STATUS
wmi_unified_extract_roam_msg_info(wmi_unified_t wmi,void * evt_buf,struct roam_msg_info * dst,uint8_t idx)499 wmi_unified_extract_roam_msg_info(wmi_unified_t wmi, void *evt_buf,
500 struct roam_msg_info *dst, uint8_t idx)
501 {
502 if (wmi->ops->extract_roam_msg_info)
503 return wmi->ops->extract_roam_msg_info(wmi, evt_buf, dst, idx);
504
505 return QDF_STATUS_E_FAILURE;
506 }
507
508 QDF_STATUS
wmi_unified_extract_roam_extract_frame_info(wmi_unified_t wmi,void * evt_buf,struct roam_frame_stats * dst,uint8_t idx,uint8_t num_frames)509 wmi_unified_extract_roam_extract_frame_info(wmi_unified_t wmi, void *evt_buf,
510 struct roam_frame_stats *dst,
511 uint8_t idx, uint8_t num_frames)
512 {
513 if (wmi->ops->extract_roam_frame_info)
514 return wmi->ops->extract_roam_frame_info(wmi, evt_buf,
515 dst, idx, num_frames);
516
517 return QDF_STATUS_E_FAILURE;
518 }
519
520 QDF_STATUS
wmi_extract_roam_stats_event(wmi_unified_t wmi_handle,uint8_t * event,uint32_t data_len,struct roam_stats_event ** stats_info)521 wmi_extract_roam_stats_event(wmi_unified_t wmi_handle,
522 uint8_t *event, uint32_t data_len,
523 struct roam_stats_event **stats_info)
524 {
525 if (wmi_handle->ops->extract_roam_stats_event)
526 return wmi_handle->ops->extract_roam_stats_event(wmi_handle,
527 event,
528 data_len,
529 stats_info);
530
531 return QDF_STATUS_E_FAILURE;
532 }
533
534 QDF_STATUS
wmi_extract_auth_offload_event(wmi_unified_t wmi_handle,uint8_t * event,uint32_t data_len,struct auth_offload_event * auth_event)535 wmi_extract_auth_offload_event(wmi_unified_t wmi_handle,
536 uint8_t *event, uint32_t data_len,
537 struct auth_offload_event *auth_event)
538 {
539 if (wmi_handle->ops->extract_auth_offload_event)
540 return wmi_handle->ops->extract_auth_offload_event(wmi_handle,
541 event,
542 data_len,
543 auth_event);
544 return QDF_STATUS_E_FAILURE;
545 }
546
547 QDF_STATUS
wmi_extract_roam_pmkid_request(wmi_unified_t wmi_handle,uint8_t * event,uint32_t data_len,struct roam_pmkid_req_event ** list)548 wmi_extract_roam_pmkid_request(wmi_unified_t wmi_handle,
549 uint8_t *event, uint32_t data_len,
550 struct roam_pmkid_req_event **list)
551 {
552 if (wmi_handle->ops->extract_roam_pmkid_request)
553 return wmi_handle->ops->extract_roam_pmkid_request(wmi_handle,
554 event,
555 data_len,
556 list);
557
558 return QDF_STATUS_E_FAILURE;
559 }
560
561 QDF_STATUS
wmi_extract_roam_candidate_frame_event(wmi_unified_t wmi_handle,uint8_t * event,uint32_t len,struct roam_scan_candidate_frame * data)562 wmi_extract_roam_candidate_frame_event(wmi_unified_t wmi_handle, uint8_t *event,
563 uint32_t len,
564 struct roam_scan_candidate_frame *data)
565 {
566 if (wmi_handle->ops->extract_roam_candidate_frame)
567 return wmi_handle->ops->extract_roam_candidate_frame(
568 wmi_handle,
569 event,
570 len, data);
571 return QDF_STATUS_E_FAILURE;
572 }
573 #endif
574