1 /* 2 * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for 5 * any purpose with or without fee is hereby granted, provided that the 6 * above copyright notice and this permission notice appear in all 7 * copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16 * PERFORMANCE OF THIS SOFTWARE. 17 */ 18 19 /* 20 * This file contains the API definitions for the Unified Wireless Module 21 * Interface (WMI). 22 */ 23 24 #ifndef _WMI_UNIFIED_API_H_ 25 #define _WMI_UNIFIED_API_H_ 26 27 #include <osdep.h> 28 #include "htc_api.h" 29 #include "wmi_unified_param.h" 30 #include "service_ready_param.h" 31 #include "wlan_objmgr_psoc_obj.h" 32 #include "wlan_mgmt_txrx_utils_api.h" 33 #include <wlan_dfs_public_struct.h> 34 #include <wlan_crypto_global_def.h> 35 #ifdef WLAN_POWER_MANAGEMENT_OFFLOAD 36 #include "wmi_unified_pmo_api.h" 37 #endif 38 #ifdef WLAN_FEATURE_MIB_STATS 39 #include "wlan_cp_stats_mc_defs.h" 40 #endif 41 #include "wlan_scan_public_structs.h" 42 #ifdef WLAN_FEATURE_ACTION_OUI 43 #include "wlan_action_oui_public_struct.h" 44 #endif 45 #ifdef WLAN_SUPPORT_GREEN_AP 46 #include "wlan_green_ap_api.h" 47 #endif 48 #ifdef WLAN_FEATURE_DSRC 49 #include "wlan_ocb_public_structs.h" 50 #endif 51 #ifdef WLAN_SUPPORT_TWT 52 #include "wmi_unified_twt_param.h" 53 #include "wmi_unified_twt_api.h" 54 #endif 55 56 #ifdef FEATURE_WLAN_EXTSCAN 57 #include "wmi_unified_extscan_api.h" 58 #endif 59 60 #ifdef IPA_OFFLOAD 61 #include "wlan_ipa_public_struct.h" 62 #endif 63 64 #ifdef WMI_SMART_ANT_SUPPORT 65 #include "wmi_unified_smart_ant_api.h" 66 #endif 67 68 #ifdef WMI_DBR_SUPPORT 69 #include "wmi_unified_dbr_api.h" 70 #endif 71 72 #ifdef WMI_ATF_SUPPORT 73 #include "wmi_unified_atf_api.h" 74 #endif 75 76 #ifdef WMI_AP_SUPPORT 77 #include "wmi_unified_ap_api.h" 78 #endif 79 80 #ifdef WLAN_FEATURE_DSRC 81 #include "wmi_unified_ocb_api.h" 82 #endif 83 84 #ifdef WLAN_FEATURE_NAN 85 #include "wmi_unified_nan_api.h" 86 #endif 87 88 #ifdef CONVERGED_P2P_ENABLE 89 #include <wmi_unified_p2p_api.h> 90 #endif 91 92 #ifdef WMI_ROAM_SUPPORT 93 #include "wmi_unified_roam_api.h" 94 #endif 95 96 #ifdef WMI_CONCURRENCY_SUPPORT 97 #include "wmi_unified_concurrency_api.h" 98 #endif 99 100 #ifdef WMI_STA_SUPPORT 101 #include "wmi_unified_sta_api.h" 102 #endif 103 104 #ifdef WLAN_FW_OFFLOAD 105 #include "wmi_unified_fwol_api.h" 106 #endif 107 108 #ifdef WLAN_FEATURE_PKT_CAPTURE 109 #include "wlan_pkt_capture_public_structs.h" 110 #endif 111 112 #ifdef WLAN_IOT_SIM_SUPPORT 113 #include "wlan_iot_sim_public_structs.h" 114 #endif 115 116 typedef qdf_nbuf_t wmi_buf_t; 117 #define wmi_buf_data(_buf) qdf_nbuf_data(_buf) 118 119 #define WMI_LOGD(args ...) \ 120 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_DEBUG, ## args) 121 #define WMI_LOGI(args ...) \ 122 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_INFO, ## args) 123 #define WMI_LOGW(args ...) \ 124 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_WARN, ## args) 125 #define WMI_LOGE(args ...) \ 126 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, ## args) 127 #define WMI_LOGP(args ...) \ 128 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_FATAL, ## args) 129 130 /* Number of bits to shift to combine 32 bit integer to 64 bit */ 131 #define WMI_LOWER_BITS_SHIFT_32 0x20 132 133 #define PHYERROR_MAX_BUFFER_LENGTH 0x7F000000 134 135 struct wmi_soc; 136 struct policy_mgr_dual_mac_config; 137 138 /** 139 * enum wmi_target_type - type of supported wmi command 140 * @WMI_TLV_TARGET: tlv based target 141 * @WMI_NON_TLV_TARGET: non-tlv based target 142 * 143 */ 144 enum wmi_target_type { 145 WMI_TLV_TARGET, 146 WMI_NON_TLV_TARGET, 147 WMI_MAX_TARGET_TYPE 148 }; 149 150 /** 151 * enum wmi_rx_exec_ctx - wmi rx execution context 152 * @WMI_RX_WORK_CTX: work queue context execution provided by WMI layer 153 * @WMI_RX_UMAC_CTX: execution context provided by umac layer 154 * @WMI_RX_SERIALIZER_CTX: Execution context is serialized thread context 155 * 156 */ 157 enum wmi_rx_exec_ctx { 158 WMI_RX_WORK_CTX, 159 WMI_RX_UMAC_CTX, 160 WMI_RX_TASKLET_CTX = WMI_RX_UMAC_CTX, 161 WMI_RX_SERIALIZER_CTX = 2 162 }; 163 164 /** 165 * enum wmi_fw_mem_prio - defines FW Memory requirement type 166 * @WMI_FW_MEM_HIGH_PRIORITY: Memory requires contiguous memory allocation 167 * @WMI_FW_MEM_LOW_PRIORITY: Memory can be fragmented 168 * @WMI_FW_PRIORITY_MAX: Invalid type 169 */ 170 enum wmi_fw_mem_prio { 171 WMI_FW_MEM_HIGH_PRIORITY = 0, 172 WMI_FW_MEM_LOW_PRIORITY, 173 WMI_FW_PRIORITY_MAX 174 }; 175 176 /** 177 * struct wmi_unified_attach_params - wmi init parameters 178 * @osdev: NIC device 179 * @target_type: type of supported wmi command 180 * @use_cookie: flag to indicate cookie based allocation 181 * @is_async_ep: queueing interrupt or non-interrupt endpoint 182 * @rx_ops: handle to wmi ops 183 * @psoc: objmgr psoc 184 * @max_commands: max commands 185 * @soc_id: SoC device instance id 186 */ 187 struct wmi_unified_attach_params { 188 osdev_t osdev; 189 enum wmi_target_type target_type; 190 bool use_cookie; 191 bool is_async_ep; 192 struct wlan_objmgr_psoc *psoc; 193 uint16_t max_commands; 194 uint32_t soc_id; 195 }; 196 197 /** 198 * attach for unified WMI 199 * 200 * @param scn_handle : handle to SCN. 201 * @param params : attach params for WMI 202 * 203 */ 204 void *wmi_unified_attach(void *scn_handle, 205 struct wmi_unified_attach_params *params); 206 207 208 209 /** 210 * wmi_mgmt_cmd_record() - Wrapper function for mgmt command logging macro 211 * 212 * @wmi_handle: wmi handle 213 * @cmd: mgmt command 214 * @header: pointer to 802.11 header 215 * @vdev_id: vdev id 216 * @chanfreq: channel frequency 217 * 218 * Return: none 219 */ 220 void wmi_mgmt_cmd_record(wmi_unified_t wmi_handle, uint32_t cmd, 221 void *header, uint32_t vdev_id, uint32_t chanfreq); 222 223 /** 224 * detach for unified WMI 225 * 226 * @param wmi_handle : handle to WMI. 227 * @return void. 228 */ 229 void wmi_unified_detach(struct wmi_unified *wmi_handle); 230 231 /** 232 * API to sync time between host and firmware 233 * 234 * @wmi_handle: handle to WMI. 235 * 236 * Return: none 237 */ 238 void wmi_send_time_stamp_sync_cmd_tlv(wmi_unified_t wmi_handle); 239 240 void 241 wmi_unified_remove_work(struct wmi_unified *wmi_handle); 242 243 /** 244 * generic function to allocate WMI buffer 245 * 246 * @param wmi_handle : handle to WMI. 247 * @param len : length of the buffer 248 * @return wmi_buf_t. 249 */ 250 #ifdef NBUF_MEMORY_DEBUG 251 #define wmi_buf_alloc(h, l) wmi_buf_alloc_debug(h, l, __func__, __LINE__) 252 wmi_buf_t 253 wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint32_t len, 254 const char *func_name, uint32_t line_num); 255 #else 256 /** 257 * wmi_buf_alloc() - generic function to allocate WMI buffer 258 * @wmi_handle: handle to WMI. 259 * @len: length of the buffer 260 * 261 * Return: return wmi_buf_t or null if memory alloc fails 262 */ 263 #define wmi_buf_alloc(wmi_handle, len) \ 264 wmi_buf_alloc_fl(wmi_handle, len, __func__, __LINE__) 265 266 wmi_buf_t wmi_buf_alloc_fl(wmi_unified_t wmi_handle, uint32_t len, 267 const char *func, uint32_t line); 268 #endif 269 270 /** 271 * generic function frees WMI net buffer 272 * 273 * @param net_buf : Pointer ot net_buf to be freed 274 */ 275 void wmi_buf_free(wmi_buf_t net_buf); 276 277 /** 278 * wmi_unified_cmd_send() - generic function to send unified WMI command 279 * @wmi_handle: handle to WMI. 280 * @buf: wmi command buffer 281 * @buflen: wmi command buffer length 282 * @cmd_id: WMI cmd id 283 * 284 * Note, it is NOT safe to access buf after calling this function! 285 * 286 * Return: QDF_STATUS 287 */ 288 #define wmi_unified_cmd_send(wmi_handle, buf, buflen, cmd_id) \ 289 wmi_unified_cmd_send_fl(wmi_handle, buf, buflen, \ 290 cmd_id, __func__, __LINE__) 291 292 QDF_STATUS 293 wmi_unified_cmd_send_fl(wmi_unified_t wmi_handle, wmi_buf_t buf, 294 uint32_t buflen, uint32_t cmd_id, 295 const char *func, uint32_t line); 296 297 #ifdef WLAN_FEATURE_WMI_SEND_RECV_QMI 298 /** 299 * wmi_unified_cmd_send_over_qmi() - generic function to send unified WMI command 300 * over QMI 301 * @wmi_handle: handle to WMI. 302 * @buf: wmi command buffer 303 * @buflen: wmi command buffer length 304 * @cmd_id: WMI cmd id 305 * 306 * Return: QDF_STATUS 307 */ 308 QDF_STATUS wmi_unified_cmd_send_over_qmi(struct wmi_unified *wmi_handle, 309 wmi_buf_t buf, uint32_t buflen, 310 uint32_t cmd_id); 311 312 /** 313 * wmi_process_qmi_fw_event() - Process WMI event received over QMI 314 * @wmi_cb_ctx: WMI handle received as call back context 315 * @buf: Pointer to WMI event buffer 316 * @len: Len of WMI buffer received 317 * 318 * Return: None 319 */ 320 int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len); 321 #else 322 static inline 323 QDF_STATUS wmi_unified_cmd_send_over_qmi(struct wmi_unified *wmi_handle, 324 wmi_buf_t buf, uint32_t buflen, 325 uint32_t cmd_id) 326 { 327 return QDF_STATUS_E_NOSUPPORT; 328 } 329 330 static inline int wmi_process_qmi_fw_event(void *wmi_cb_ctx, void *buf, int len) 331 { 332 return -EINVAL; 333 } 334 #endif 335 336 /** 337 * wmi_unified_register_event() - WMI event handler 338 * registration function for converged components 339 * 340 * @wmi_handle: handle to WMI. 341 * @event_id: WMI event ID 342 * @handler_func: Event handler call back function 343 * 344 * @return 0 on success and -ve on failure. 345 */ 346 int 347 wmi_unified_register_event(wmi_unified_t wmi_handle, 348 uint32_t event_id, 349 wmi_unified_event_handler handler_func); 350 351 /** 352 * wmi_unified_register_event_handler() - WMI event handler 353 * registration function 354 * 355 * @wmi_handle: handle to WMI. 356 * @event_id: WMI event ID 357 * @handler_func: Event handler call back function 358 * @rx_ctx: rx event processing context 359 * 360 * @return 0 on success and -ve on failure. 361 */ 362 int 363 wmi_unified_register_event_handler(wmi_unified_t wmi_handle, 364 wmi_conv_event_id event_id, 365 wmi_unified_event_handler handler_func, 366 uint8_t rx_ctx); 367 368 /** 369 * WMI event handler unregister function for converged componets 370 * 371 * @param wmi_handle : handle to WMI. 372 * @param event_id : WMI event ID 373 * @return 0 on success and -ve on failure. 374 */ 375 int 376 wmi_unified_unregister_event(wmi_unified_t wmi_handle, 377 uint32_t event_id); 378 379 /** 380 * WMI event handler unregister function 381 * 382 * @param wmi_handle : handle to WMI. 383 * @param event_id : WMI event ID 384 * @return 0 on success and -ve on failure. 385 */ 386 int 387 wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle, 388 wmi_conv_event_id event_id); 389 390 /** 391 * wmi_unified_connect_htc_service() - WMI API to get connect to HTC service 392 * @wmi_handle: handle to WMI. 393 * @htc_handle: handle to HTC. 394 * 395 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAULT for failure 396 */ 397 QDF_STATUS 398 wmi_unified_connect_htc_service(struct wmi_unified *wmi_handle, 399 HTC_HANDLE htc_handle); 400 401 /* 402 * WMI API to verify the host has enough credits to suspend 403 * @param wmi_handle : handle to WMI. 404 */ 405 406 int wmi_is_suspend_ready(wmi_unified_t wmi_handle); 407 408 /** 409 * WMI API to get updated host_credits 410 * @param wmi_handle : handle to WMI. 411 */ 412 413 int wmi_get_host_credits(wmi_unified_t wmi_handle); 414 415 /** 416 * WMI API to get WMI Pending Commands in the HTC queue 417 * @param wmi_handle : handle to WMI. 418 */ 419 420 int wmi_get_pending_cmds(wmi_unified_t wmi_handle); 421 422 /** 423 * WMI API to set target suspend state 424 * @param wmi_handle : handle to WMI. 425 * @param val : suspend state boolean 426 */ 427 void wmi_set_target_suspend(wmi_unified_t wmi_handle, bool val); 428 429 /** 430 * wmi_is_target_suspended() - WMI API to check target suspend state 431 * @wmi_handle: handle to WMI. 432 * 433 * WMI API to check target suspend state 434 * 435 * Return: true if target is suspended, else false. 436 */ 437 bool wmi_is_target_suspended(struct wmi_unified *wmi_handle); 438 439 #ifdef WLAN_FEATURE_WMI_SEND_RECV_QMI 440 /** 441 * wmi_set_qmi_stats() - WMI API to set qmi stats enabled/disabled 442 * @wmi_handle: handle to WMI. 443 * @val: suspend state boolean 444 */ 445 void wmi_set_qmi_stats(wmi_unified_t wmi_handle, bool val); 446 447 /** 448 * wmi_is_qmi_stats_enabled() - WMI API to check if periodic stats 449 * over qmi is enableid 450 * @wmi_handle: handle to WMI. 451 * 452 * WMI API to check if periodic stats over qmi is enabled 453 * 454 * Return: true if qmi stats is enabled, else false. 455 */ 456 bool wmi_is_qmi_stats_enabled(struct wmi_unified *wmi_handle); 457 #else 458 static inline 459 void wmi_set_qmi_stats(wmi_unified_t wmi_handle, bool val) 460 {} 461 462 static inline 463 bool wmi_is_qmi_stats_enabled(struct wmi_unified *wmi_handle) 464 { 465 return false; 466 } 467 #endif /* end if of WLAN_FEATURE_WMI_SEND_RECV_QMI */ 468 469 /** 470 * WMI API to set bus suspend state 471 * @param wmi_handle: handle to WMI. 472 * @param val: suspend state boolean 473 */ 474 void wmi_set_is_wow_bus_suspended(wmi_unified_t wmi_handle, A_BOOL val); 475 476 /** 477 * WMI API to set crash injection state 478 * @param wmi_handle: handle to WMI. 479 * @param val: crash injection state boolean 480 */ 481 void wmi_tag_crash_inject(wmi_unified_t wmi_handle, A_BOOL flag); 482 483 /** 484 * WMI API to set target assert 485 * @param wmi_handle: handle to WMI. 486 * @param val: target assert config value. 487 * 488 * Return: none. 489 */ 490 void wmi_set_tgt_assert(wmi_unified_t wmi_handle, bool val); 491 492 /** 493 * generic function to block unified WMI command 494 * @param wmi_handle : handle to WMI. 495 * @return 0 on success and -ve on failure. 496 */ 497 int 498 wmi_stop(wmi_unified_t wmi_handle); 499 500 /** 501 * generic function to start unified WMI command 502 * @param wmi_handle : handle to WMI. 503 * @return 0 on success and -ve on failure. 504 */ 505 int 506 wmi_start(wmi_unified_t wmi_handle); 507 508 /** 509 * wmi_is_blocked() - generic function to check if WMI is blocked 510 * @wmi_handle: handle to WMI. 511 * 512 * @Return: true, if blocked, false if not blocked 513 */ 514 bool 515 wmi_is_blocked(wmi_unified_t wmi_handle); 516 517 /** 518 * API to flush all the previous packets associated with the wmi endpoint 519 * 520 * @param wmi_handle : handle to WMI. 521 */ 522 void 523 wmi_flush_endpoint(wmi_unified_t wmi_handle); 524 525 /** 526 * wmi_pdev_id_conversion_enable() - API to enable pdev_id and phy_id 527 * conversion in WMI. By default pdev_id and 528 * phyid conversion is not done in WMI. 529 * This API can be used enable conversion in WMI. 530 * @param wmi_handle : handle to WMI 531 * @param *pdev_id_map : pdev conversion map 532 * @param size : size of pdev_id_map 533 * Return none 534 */ 535 void wmi_pdev_id_conversion_enable(wmi_unified_t wmi_handle, 536 uint32_t *pdev_id_map, 537 uint8_t size); 538 539 /** 540 * API to handle wmi rx event after UMAC has taken care of execution 541 * context 542 * 543 * @param wmi_handle : handle to WMI. 544 * @param evt_buf : wmi event buffer 545 */ 546 void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf); 547 #ifdef FEATURE_RUNTIME_PM 548 void 549 wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val); 550 bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle); 551 #else 552 static inline void 553 wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val) 554 { 555 return; 556 } 557 static inline bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle) 558 { 559 return false; 560 } 561 #endif 562 563 void *wmi_unified_get_soc_handle(struct wmi_unified *wmi_handle); 564 565 void *wmi_unified_get_pdev_handle(struct wmi_soc *soc, uint32_t pdev_idx); 566 567 /** 568 * UMAC Callback to process fw event. 569 * @param wmi_handle : handle to WMI. 570 * @param evt_buf : wmi event buffer 571 */ 572 void wmi_process_fw_event(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf); 573 uint16_t wmi_get_max_msg_len(wmi_unified_t wmi_handle); 574 575 /** 576 * wmi_unified_soc_set_hw_mode_cmd() - Send WMI_SOC_SET_HW_MODE_CMDID to FW 577 * @wmi_handle: wmi handle 578 * @hw_mode_index: The HW_Mode field is a enumerated type that is selected 579 * from the HW_Mode table, which is returned in the WMI_SERVICE_READY_EVENTID. 580 * 581 * Request HardWare (HW) Mode change to WLAN firmware 582 * 583 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 584 */ 585 QDF_STATUS wmi_unified_soc_set_hw_mode_cmd(wmi_unified_t wmi_handle, 586 uint32_t hw_mode_index); 587 588 /** 589 * wmi_extract_hw_mode_resp() - function to extract HW mode change response 590 * @wmi_hdl: WMI handle 591 * @evt_buf: Buffer holding event data 592 * @cmd_status: command status 593 * 594 * Return: QDF_STATUS_SUCCESS if success, else returns proper error code. 595 */ 596 QDF_STATUS 597 wmi_unified_extract_hw_mode_resp(wmi_unified_t wmi, 598 void *evt_buf, 599 uint32_t *cmd_status); 600 601 /** 602 * wmi_unified_extract_roam_trigger_stats() - Extract roam trigger related 603 * stats 604 * @wmi: wmi handle 605 * @evt_buf: Pointer to the event buffer 606 * @trig: Pointer to destination structure to fill data 607 * @idx: TLV id 608 * 609 * Return: QDF_STATUS 610 */ 611 QDF_STATUS 612 wmi_unified_extract_roam_trigger_stats(wmi_unified_t wmi, void *evt_buf, 613 struct wmi_roam_trigger_info *trig, 614 uint8_t idx); 615 616 /** 617 * wmi_unified_extract_roam_scan_stats() - Extract roam scan stats from 618 * firmware 619 * @wmi: wmi handle 620 * @evt_buf: Pointer to the event buffer 621 * @dst: Pointer to destination structure to fill data 622 * @idx: TLV id 623 * @chan_idx: Index of the channel frequency for this roam trigger 624 * @ap_idx: Index of the candidate AP for this roam trigger 625 * 626 * Return: QDF_STATUS 627 */ 628 QDF_STATUS 629 wmi_unified_extract_roam_scan_stats(wmi_unified_t wmi, void *evt_buf, 630 struct wmi_roam_scan_data *dst, uint8_t idx, 631 uint8_t chan_idx, uint8_t ap_idx); 632 633 /** 634 * wmi_unified_extract_roam_result_stats() - Extract roam result related stats 635 * @wmi: wmi handle 636 * @evt_buf: Pointer to the event buffer 637 * @dst: Pointer to destination structure to fill data 638 * @idx: TLV id 639 * 640 * Return: QDF_STATUS 641 */ 642 QDF_STATUS 643 wmi_unified_extract_roam_result_stats(wmi_unified_t wmi, void *evt_buf, 644 struct wmi_roam_result *dst, 645 uint8_t idx); 646 647 /** 648 * wmi_unified_extract_roam_11kv_stats() - Extract BTM/Neigh report stats 649 * @wmi: wmi handle 650 * @evt_buf: Pointer to the event buffer 651 * @dst: Pointer to destination structure to fill data 652 * @idx: TLV id 653 * @rpt_idx: index of the current channel 654 * 655 * Return: QDF_STATUS 656 */ 657 QDF_STATUS 658 wmi_unified_extract_roam_11kv_stats(wmi_unified_t wmi, void *evt_buf, 659 struct wmi_neighbor_report_data *dst, 660 uint8_t idx, uint8_t rpt_idx); 661 662 /** 663 * wmi_unified_vdev_create_send() - send VDEV create command to fw 664 * @wmi_handle: wmi handle 665 * @param: pointer to hold vdev create parameter 666 * @macaddr: vdev mac address 667 * 668 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 669 */ 670 QDF_STATUS wmi_unified_vdev_create_send(wmi_unified_t wmi_handle, 671 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 672 struct vdev_create_params *param); 673 674 /** 675 * wmi_unified_vdev_delete_send() - send VDEV delete command to fw 676 * @wmi_handle: wmi handle 677 * @if_id: vdev id 678 * 679 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 680 */ 681 QDF_STATUS wmi_unified_vdev_delete_send(wmi_unified_t wmi_handle, 682 uint8_t if_id); 683 684 /** 685 * wmi_unified_vdev_nss_chain_params_send() - send VDEV nss chain params to fw 686 * @wmi_handle: wmi handle 687 * @vdev_id: vdev id 688 * @nss_chains_user_cfg: user configured params to send 689 * 690 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 691 */ 692 QDF_STATUS 693 wmi_unified_vdev_nss_chain_params_send( 694 wmi_unified_t wmi_handle, 695 uint8_t vdev_id, 696 struct vdev_nss_chains *nss_chains_user_cfg); 697 698 /** 699 * wmi_unified_vdev_stop_send() - send vdev stop command to fw 700 * @wmi_handle: wmi handle 701 * @vdev_id: vdev id 702 * 703 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 704 */ 705 QDF_STATUS wmi_unified_vdev_stop_send(wmi_unified_t wmi_handle, 706 uint8_t vdev_id); 707 708 /** 709 * wmi_unified_vdev_up_send() - send vdev up command in fw 710 * @wmi_handle: wmi handle 711 * @bssid: bssid 712 * @params: pointer to hold vdev up parameter 713 * 714 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 715 */ 716 QDF_STATUS wmi_unified_vdev_up_send(wmi_unified_t wmi_handle, 717 uint8_t bssid[QDF_MAC_ADDR_SIZE], 718 struct vdev_up_params *params); 719 720 /** 721 * wmi_unified_vdev_down_send() - send vdev down command to fw 722 * @wmi_handle: wmi handle 723 * @vdev_id: vdev id 724 * 725 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 726 */ 727 QDF_STATUS wmi_unified_vdev_down_send(wmi_unified_t wmi_handle, 728 uint8_t vdev_id); 729 730 /** 731 * wmi_unified_vdev_start_send() - send vdev start command to fw 732 * @wmi_handle: wmi handle 733 * @vdev_id: vdev id 734 * 735 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 736 */ 737 QDF_STATUS wmi_unified_vdev_start_send(wmi_unified_t wmi_handle, 738 struct vdev_start_params *req); 739 740 /** 741 * wmi_unified_vdev_set_nac_rssi_send() - send NAC_RSSI command to fw 742 * @wmi_handle: handle to WMI 743 * @req: pointer to hold nac rssi request data 744 * 745 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 746 */ 747 QDF_STATUS 748 wmi_unified_vdev_set_nac_rssi_send(wmi_unified_t wmi_handle, 749 struct vdev_scan_nac_rssi_params *req); 750 751 /** 752 * wmi_unified_vdev_set_param_send() - WMI vdev set parameter function 753 * @wmi_handle: handle to WMI. 754 * @macaddr: MAC address 755 * @param: pointer to hold vdev set parameter 756 * 757 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 758 */ 759 QDF_STATUS 760 wmi_unified_vdev_set_param_send(wmi_unified_t wmi_handle, 761 struct vdev_set_params *param); 762 763 /** 764 * wmi_unified_sifs_trigger_send() - WMI vdev sifs trigger parameter function 765 * @wmi_handle: handle to WMI. 766 * @param: pointer to hold sifs trigger parameter 767 * 768 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 769 */ 770 QDF_STATUS wmi_unified_sifs_trigger_send(wmi_unified_t wmi_handle, 771 struct sifs_trigger_param *param); 772 773 /** 774 * wmi_unified_peer_delete_send() - send PEER delete command to fw 775 * @wmi_handle: wmi handle 776 * @peer_addr: peer mac addr 777 * @vdev_id: vdev id 778 * 779 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 780 */ 781 QDF_STATUS 782 wmi_unified_peer_delete_send(wmi_unified_t wmi_handle, 783 uint8_t peer_addr[QDF_MAC_ADDR_SIZE], 784 uint8_t vdev_id); 785 786 /** 787 * wmi_unified_peer_flush_tids_send() - flush peer tids packets in fw 788 * @wmi_handle: wmi handle 789 * @peer_addr: peer mac address 790 * @param: pointer to hold peer flush tid parameter 791 * 792 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 793 */ 794 QDF_STATUS 795 wmi_unified_peer_flush_tids_send(wmi_unified_t wmi_handle, 796 uint8_t peer_addr[QDF_MAC_ADDR_SIZE], 797 struct peer_flush_params *param); 798 799 /** 800 * wmi_unified_peer_delete_all_send() - send PEER delete all command to fw 801 * @wmi_hdl: wmi handle 802 * @param: pointer to hold peer delete all parameters 803 * 804 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 805 */ 806 QDF_STATUS wmi_unified_peer_delete_all_send( 807 wmi_unified_t wmi_hdl, 808 struct peer_delete_all_params *param); 809 810 /** 811 * wmi_set_peer_param() - set peer parameter in fw 812 * @wmi_handle: wmi handle 813 * @peer_addr: peer mac address 814 * @param: pointer to hold peer set parameter 815 * 816 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 817 */ 818 QDF_STATUS 819 wmi_set_peer_param_send(wmi_unified_t wmi_handle, 820 uint8_t peer_addr[QDF_MAC_ADDR_SIZE], 821 struct peer_set_params *param); 822 823 /** 824 * wmi_unified_peer_create_send() - send peer create command to fw 825 * @wmi_handle: wmi handle 826 * @peer_addr: peer mac address 827 * @peer_type: peer type 828 * @vdev_id: vdev id 829 * 830 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 831 */ 832 QDF_STATUS wmi_unified_peer_create_send(wmi_unified_t wmi_handle, 833 struct peer_create_params *param); 834 835 QDF_STATUS wmi_unified_stats_request_send(wmi_unified_t wmi_handle, 836 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 837 struct stats_request_params *param); 838 839 /** 840 * wmi_unified_green_ap_ps_send() - enable green ap powersave command 841 * @wmi_handle: wmi handle 842 * @value: value 843 * @pdev_id: pdev id to have radio context 844 * 845 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 846 */ 847 QDF_STATUS wmi_unified_green_ap_ps_send(wmi_unified_t wmi_handle, 848 uint32_t value, uint8_t pdev_id); 849 850 /** 851 * wmi_unified_wow_enable_send() - WMI wow enable function 852 * @wmi_handle: handle to WMI. 853 * @param: pointer to hold wow enable parameter 854 * @mac_id: radio context 855 * 856 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 857 */ 858 QDF_STATUS wmi_unified_wow_enable_send(wmi_unified_t wmi_handle, 859 struct wow_cmd_params *param, 860 uint8_t mac_id); 861 862 /** 863 * wmi_unified_wow_wakeup_send() - WMI wow wakeup function 864 * @wmi_handle: handle to WMI. 865 * 866 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 867 */ 868 QDF_STATUS wmi_unified_wow_wakeup_send(wmi_unified_t wmi_handle); 869 870 /** 871 * wmi_unified_wow_add_wakeup_event_send() - WMI wow wakeup function 872 * @wmi_handle: handle to WMI. 873 * @param: pointer to wow wakeup event parameter structure 874 * 875 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 876 */ 877 QDF_STATUS 878 wmi_unified_wow_add_wakeup_event_send(wmi_unified_t wmi_handle, 879 struct wow_add_wakeup_params *param); 880 881 /** 882 * wmi_unified_wow_add_wakeup_pattern_send() - WMI wow wakeup pattern function 883 * @wmi_handle: handle to WMI. 884 * @param: pointer to wow wakeup pattern parameter structure 885 * 886 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 887 */ 888 QDF_STATUS 889 wmi_unified_wow_add_wakeup_pattern_send( 890 wmi_unified_t wmi_handle, 891 struct wow_add_wakeup_pattern_params *param); 892 893 /** 894 * wmi_unified_wow_remove_wakeup_pattern_send() - wow wakeup pattern function 895 * @wmi_handle: handle to WMI. 896 * @param: pointer to wow wakeup pattern parameter structure 897 * 898 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 899 */ 900 QDF_STATUS 901 wmi_unified_wow_remove_wakeup_pattern_send( 902 wmi_unified_t wmi_handle, 903 struct wow_remove_wakeup_pattern_params *param); 904 905 /** 906 * wmi_unified_packet_log_enable_send() - WMI request stats function 907 * @wmi_handle : handle to WMI. 908 * @PKTLOG_EVENT : PKTLOG Event 909 * @mac_id : MAC id corresponds to pdev id 910 * 911 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 912 */ 913 QDF_STATUS 914 wmi_unified_packet_log_enable_send(wmi_unified_t wmi_handle, 915 WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT, 916 uint8_t mac_id); 917 918 /** 919 * wmi_unified_peer_based_pktlog_send() - WMI request enable peer 920 * based filtering 921 * @wmi_handle: handle to WMI. 922 * @macaddr: PEER mac address to be filtered 923 * @mac_id: Mac id 924 * @enb_dsb: Enable or Disable peer based pktlog 925 * filtering 926 * 927 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 928 */ 929 QDF_STATUS wmi_unified_peer_based_pktlog_send(wmi_unified_t wmi_handle, 930 uint8_t *macaddr, 931 uint8_t mac_id, 932 uint8_t enb_dsb); 933 934 /** 935 * wmi_unified_packet_log_disable__send() - WMI pktlog disable function 936 * @wmi_handle: handle to WMI. 937 * @PKTLOG_EVENT: packet log event 938 * 939 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 940 */ 941 QDF_STATUS wmi_unified_packet_log_disable_send(wmi_unified_t wmi_handle, 942 uint8_t mac_id); 943 944 /** 945 * wmi_unified_suspend_send() - WMI suspend function 946 * @wmi_handle: handle to WMI. 947 * @param: pointer to hold suspend parameter 948 * @mac_id: radio context 949 * 950 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 951 */ 952 QDF_STATUS wmi_unified_suspend_send(wmi_unified_t wmi_handle, 953 struct suspend_params *param, 954 uint8_t mac_id); 955 956 /** 957 * wmi_unified_resume_send - WMI resume function 958 * @wmi_handle : handle to WMI. 959 * @mac_id: radio context 960 * 961 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 962 */ 963 QDF_STATUS wmi_unified_resume_send(wmi_unified_t wmi_handle, 964 uint8_t mac_id); 965 966 /** 967 * wmi_unified_pdev_param_send() - set pdev parameters 968 * @wmi_handle: wmi handle 969 * @param: pointer to pdev parameter 970 * @mac_id: radio context 971 * 972 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures, 973 * errno on failure 974 */ 975 QDF_STATUS 976 wmi_unified_pdev_param_send(wmi_unified_t wmi_handle, 977 struct pdev_params *param, 978 uint8_t mac_id); 979 980 /** 981 * wmi_unified_fd_tmpl_send_cmd() - WMI FILS Discovery send function 982 * @wmi_handle: handle to WMI. 983 * @param: pointer to hold FILS Discovery send cmd parameter 984 * 985 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 986 */ 987 QDF_STATUS 988 wmi_unified_fd_tmpl_send_cmd(wmi_unified_t wmi_handle, 989 struct fils_discovery_tmpl_params *param); 990 991 /** 992 * wmi_unified_beacon_tmpl_send_cmd() - WMI beacon send function 993 * @wmi_handle: handle to WMI. 994 * @macaddr: MAC address 995 * @param: pointer to hold beacon send cmd parameter 996 * 997 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 998 */ 999 QDF_STATUS 1000 wmi_unified_beacon_tmpl_send_cmd(wmi_unified_t wmi_handle, 1001 struct beacon_tmpl_params *param); 1002 1003 /** 1004 * wmi_unified_peer_assoc_send() - WMI peer assoc function 1005 * @wmi_handle: handle to WMI. 1006 * @macaddr: MAC address 1007 * @param: pointer to peer assoc parameter 1008 * 1009 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1010 */ 1011 QDF_STATUS wmi_unified_peer_assoc_send(wmi_unified_t wmi_handle, 1012 struct peer_assoc_params *param); 1013 1014 /** 1015 * wmi_unified_sta_ps_cmd_send() - set sta powersave parameters 1016 * @wmi_handle: wmi handle 1017 * @peer_addr: peer mac address 1018 * @param: pointer to sta_ps parameter structure 1019 * 1020 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1021 */ 1022 QDF_STATUS wmi_unified_sta_ps_cmd_send(wmi_unified_t wmi_handle, 1023 struct sta_ps_params *param); 1024 1025 /** 1026 * wmi_unified_ap_ps_cmd_send() - set ap powersave parameters 1027 * @wmi_handle: wmi handle 1028 * @peer_addr: peer mac address 1029 * @param: pointer to ap_ps parameter structure 1030 * 1031 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1032 */ 1033 QDF_STATUS wmi_unified_ap_ps_cmd_send(wmi_unified_t wmi_handle, 1034 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 1035 struct ap_ps_params *param); 1036 1037 /** 1038 * wmi_unified_scan_start_cmd_send() - WMI scan start function 1039 * @wmi_handle: handle to WMI. 1040 * @macaddr: MAC address 1041 * @param: pointer to hold scan start cmd parameter 1042 * 1043 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1044 */ 1045 QDF_STATUS 1046 wmi_unified_scan_start_cmd_send(wmi_unified_t wmi_handle, 1047 struct scan_req_params *param); 1048 1049 /** 1050 * wmi_unified_scan_stop_cmd_send() - WMI scan start function 1051 * @wmi_handle: handle to WMI. 1052 * @macaddr: MAC address 1053 * @param: pointer to hold scan start cmd parameter 1054 * 1055 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1056 */ 1057 QDF_STATUS 1058 wmi_unified_scan_stop_cmd_send(wmi_unified_t wmi_handle, 1059 struct scan_cancel_param *param); 1060 1061 /** 1062 * wmi_unified_scan_chan_list_cmd_send() - WMI scan channel list function 1063 * @wmi_handle: handle to WMI. 1064 * @macaddr: MAC address 1065 * @param: pointer to hold scan channel list parameter 1066 * 1067 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1068 */ 1069 QDF_STATUS 1070 wmi_unified_scan_chan_list_cmd_send(wmi_unified_t wmi_handle, 1071 struct scan_chan_list_params *param); 1072 1073 1074 /** 1075 * wmi_crash_inject() - inject fw crash 1076 * @wmi_handle: wmi handle 1077 * @param: ponirt to crash inject parameter structure 1078 * 1079 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1080 */ 1081 QDF_STATUS wmi_crash_inject(wmi_unified_t wmi_handle, 1082 struct crash_inject *param); 1083 1084 /** 1085 * wmi_unified_pdev_utf_cmd() - send utf command to fw 1086 * @wmi_handle: wmi handle 1087 * @param: pointer to pdev_utf_params 1088 * @mac_id: mac id to have radio context 1089 * 1090 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1091 */ 1092 QDF_STATUS wmi_unified_pdev_utf_cmd_send(wmi_unified_t wmi_handle, 1093 struct pdev_utf_params *param, 1094 uint8_t mac_id); 1095 1096 #ifdef FEATURE_FW_LOG_PARSING 1097 /** 1098 * wmi_unified_dbglog_cmd_send() - set debug log level 1099 * @wmi_handle: handle to WMI. 1100 * @param: pointer to hold dbglog level parameter 1101 * 1102 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1103 */ 1104 QDF_STATUS wmi_unified_dbglog_cmd_send(wmi_unified_t wmi_handle, 1105 struct dbglog_params *param); 1106 #else 1107 static inline QDF_STATUS 1108 wmi_unified_dbglog_cmd_send(wmi_unified_t wmi_handle, 1109 struct dbglog_params *param) 1110 { 1111 return QDF_STATUS_SUCCESS; 1112 } 1113 #endif 1114 1115 /** 1116 * wmi_mgmt_unified_cmd_send() - management cmd over wmi layer 1117 * @wmi_handle: handle to WMI. 1118 * @param: pointer to hold mgmt cmd parameter 1119 * 1120 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1121 */ 1122 QDF_STATUS wmi_mgmt_unified_cmd_send(wmi_unified_t wmi_handle, 1123 struct wmi_mgmt_params *param); 1124 1125 /** 1126 * wmi_offchan_data_tx_cmd_send() - Send offchan data tx cmd over wmi layer 1127 * @wmi_handle: handle to WMI. 1128 * @param: pointer to hold offchan data cmd parameter 1129 * 1130 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1131 */ 1132 QDF_STATUS wmi_offchan_data_tx_cmd_send( 1133 wmi_unified_t wmi_handle, 1134 struct wmi_offchan_data_tx_params *param); 1135 1136 /** 1137 * wmi_unified_modem_power_state() - set modem power state to fw 1138 * @wmi_handle: wmi handle 1139 * @param_value: parameter value 1140 * 1141 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1142 */ 1143 QDF_STATUS wmi_unified_modem_power_state(wmi_unified_t wmi_handle, 1144 uint32_t param_value); 1145 1146 /** 1147 * wmi_unified_set_sta_ps_mode() - set sta powersave params in fw 1148 * @wmi_handle: wmi handle 1149 * @vdev_id: vdev id 1150 * @val: value 1151 * 1152 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. 1153 */ 1154 QDF_STATUS wmi_unified_set_sta_ps_mode(wmi_unified_t wmi_handle, 1155 uint32_t vdev_id, 1156 uint8_t val); 1157 1158 /** 1159 * wmi_unified_set_sta_uapsd_auto_trig_cmd() - set uapsd auto trigger command 1160 * @wmi_handle: wmi handle 1161 * @param: uapsd cmd parameter strcture 1162 * 1163 * This function sets the trigger 1164 * uapsd params such as service interval, delay interval 1165 * and suspend interval which will be used by the firmware 1166 * to send trigger frames periodically when there is no 1167 * traffic on the transmit side. 1168 * 1169 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. 1170 */ 1171 QDF_STATUS 1172 wmi_unified_set_sta_uapsd_auto_trig_cmd(wmi_unified_t wmi_handle, 1173 struct sta_uapsd_trig_params *param); 1174 1175 /** 1176 * wmi_get_temperature() - get pdev temperature req 1177 * @wmi_handle: wmi handle 1178 * 1179 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. 1180 */ 1181 QDF_STATUS wmi_unified_get_temperature(wmi_unified_t wmi_handle); 1182 1183 /** 1184 * wmi_set_smps_params() - set smps params 1185 * @wmi_handle: wmi handle 1186 * @vdev_id: vdev id 1187 * @value: value 1188 * 1189 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. 1190 */ 1191 QDF_STATUS wmi_unified_set_smps_params(wmi_unified_t wmi_handle, 1192 uint8_t vdev_id, 1193 int value); 1194 1195 /** 1196 * wmi_set_mimops() - set MIMO powersave 1197 * @wmi_handle: wmi handle 1198 * @vdev_id: vdev id 1199 * @value: value 1200 * 1201 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure. 1202 */ 1203 QDF_STATUS wmi_unified_set_mimops(wmi_unified_t wmi_handle, 1204 uint8_t vdev_id, int value); 1205 1206 /** 1207 * wmi_unified_lro_config_cmd() - process the LRO config command 1208 * @wmi_handle: Pointer to wmi handle 1209 * @wmi_lro_cmd: Pointer to LRO configuration parameters 1210 * 1211 * This function sends down the LRO configuration parameters to 1212 * the firmware to enable LRO, sets the TCP flags and sets the 1213 * seed values for the toeplitz hash generation 1214 * 1215 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1216 */ 1217 QDF_STATUS 1218 wmi_unified_lro_config_cmd(wmi_unified_t wmi_handle, 1219 struct wmi_lro_config_cmd_t *wmi_lro_cmd); 1220 1221 /** 1222 * wmi_unified_set_thermal_mgmt_cmd() - set thermal mgmt command to fw 1223 * @wmi_handle: Pointer to wmi handle 1224 * @thermal_info: Thermal command information 1225 * 1226 * This function sends the thermal management command 1227 * to the firmware 1228 * 1229 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1230 */ 1231 QDF_STATUS 1232 wmi_unified_set_thermal_mgmt_cmd(wmi_unified_t wmi_handle, 1233 struct thermal_cmd_params *thermal_info); 1234 1235 /** 1236 * wmi_unified_peer_rate_report_cmd() - process the peer rate report command 1237 * @wmi_handle: Pointer to wmi handle 1238 * @rate_report_params: Pointer to peer rate report parameters 1239 * 1240 * 1241 * Return: QDF_STATUS_SUCCESS for success otherwise failure 1242 */ 1243 QDF_STATUS 1244 wmi_unified_peer_rate_report_cmd( 1245 wmi_unified_t wmi_handle, 1246 struct wmi_peer_rate_report_params *rate_report_params); 1247 1248 /** 1249 * wmi_unified_process_update_edca_param() - update EDCA params 1250 * @wmi_handle: wmi handle 1251 * @vdev_id: vdev id. 1252 * @mu_edca_param: mu_edca_param. 1253 * @wmm_vparams: edca parameters 1254 * 1255 * This function updates EDCA parameters to the target 1256 * 1257 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1258 */ 1259 QDF_STATUS 1260 wmi_unified_process_update_edca_param( 1261 wmi_unified_t wmi_handle, 1262 uint8_t vdev_id, 1263 bool mu_edca_param, 1264 struct wmi_host_wme_vparams wmm_vparams[WMI_MAX_NUM_AC]); 1265 1266 /** 1267 * wmi_unified_probe_rsp_tmpl_send_cmd() - send probe response template to fw 1268 * @wmi_handle: wmi handle 1269 * @vdev_id: vdev id 1270 * @probe_rsp_info: probe response info 1271 * 1272 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1273 */ 1274 QDF_STATUS 1275 wmi_unified_probe_rsp_tmpl_send_cmd( 1276 wmi_unified_t wmi_handle, 1277 uint8_t vdev_id, 1278 struct wmi_probe_resp_params *probe_rsp_info); 1279 1280 /** 1281 * wmi_unified_setup_install_key_cmd - send key to install to fw 1282 * @wmi_handle: wmi handle 1283 * @key_params: key parameters 1284 * 1285 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1286 */ 1287 QDF_STATUS 1288 wmi_unified_setup_install_key_cmd(wmi_unified_t wmi_handle, 1289 struct set_key_params *key_params); 1290 1291 /** 1292 * wmi_unified_get_pn_send_cmd() - send command to fw get PN for peer 1293 * @wmi_handle: wmi handle 1294 * @pn_params: PN parameters 1295 * 1296 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1297 */ 1298 QDF_STATUS 1299 wmi_unified_get_pn_send_cmd(wmi_unified_t wmi_hdl, 1300 struct peer_request_pn_param *pn_params); 1301 1302 /** 1303 * wmi_unified_p2p_go_set_beacon_ie_cmd() - set beacon IE for p2p go 1304 * @wmi_handle: wmi handle 1305 * @vdev_id: vdev id 1306 * @p2p_ie: p2p IE 1307 * 1308 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1309 */ 1310 QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(wmi_unified_t wmi_hdl, 1311 uint32_t vdev_id, 1312 uint8_t *p2p_ie); 1313 1314 /** 1315 * wmi_unified_scan_probe_setoui_cmd() - set scan probe OUI 1316 * @wmi_handle: wmi handle 1317 * @psetoui: OUI parameters 1318 * 1319 * set scan probe OUI parameters in firmware 1320 * 1321 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1322 */ 1323 QDF_STATUS wmi_unified_scan_probe_setoui_cmd(wmi_unified_t wmi_handle, 1324 struct scan_mac_oui *psetoui); 1325 1326 #ifdef IPA_OFFLOAD 1327 /** wmi_unified_ipa_offload_control_cmd() - ipa offload control parameter 1328 * @wmi_handle: wmi handle 1329 * @ipa_offload: ipa offload control parameter 1330 * 1331 * Returns: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures, 1332 * error number otherwise 1333 */ 1334 QDF_STATUS 1335 wmi_unified_ipa_offload_control_cmd( 1336 wmi_unified_t wmi_handle, 1337 struct ipa_uc_offload_control_params *ipa_offload); 1338 #endif 1339 1340 /** 1341 * wmi_unified_pno_stop_cmd() - PNO stop request 1342 * @wmi_handle: wmi handle 1343 * @vdev_id: vdev id 1344 * 1345 * This function request FW to stop ongoing PNO operation. 1346 * 1347 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1348 */ 1349 QDF_STATUS wmi_unified_pno_stop_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id); 1350 1351 #ifdef FEATURE_WLAN_SCAN_PNO 1352 /** 1353 * wmi_unified_pno_start_cmd() - PNO start request 1354 * @wmi_handle: wmi handle 1355 * @pno: PNO request 1356 * 1357 * This function request FW to start PNO request. 1358 * Request: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1359 */ 1360 QDF_STATUS wmi_unified_pno_start_cmd(wmi_unified_t wmi_handle, 1361 struct pno_scan_req_params *pno); 1362 #endif 1363 1364 /** 1365 * wmi_unified_nlo_mawc_cmd() - NLO MAWC cmd configuration 1366 * @wmi_handle: wmi handle 1367 * @params: Configuration parameters 1368 * 1369 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1370 */ 1371 QDF_STATUS wmi_unified_nlo_mawc_cmd(wmi_unified_t wmi_handle, 1372 struct nlo_mawc_params *params); 1373 1374 #ifdef WLAN_FEATURE_LINK_LAYER_STATS 1375 /** 1376 * wmi_unified_process_ll_stats_clear_cmd() - clear link layer stats 1377 * @wmi_handle: wmi handle 1378 * @clear_req: ll stats clear request command params 1379 * 1380 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1381 */ 1382 QDF_STATUS wmi_unified_process_ll_stats_clear_cmd(wmi_unified_t wmi_handle, 1383 const struct ll_stats_clear_params *clear_req); 1384 1385 /** 1386 * wmi_unified_process_ll_stats_set_cmd() - link layer stats set request 1387 * @wmi_handle: wmi handle 1388 * @set_req: ll stats set request command params 1389 * 1390 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1391 */ 1392 QDF_STATUS wmi_unified_process_ll_stats_set_cmd(wmi_unified_t wmi_handle, 1393 const struct ll_stats_set_params *set_req); 1394 1395 /** 1396 * wmi_unified_process_ll_stats_get_cmd() - link layer stats get request 1397 * @wmi_handle: wmi handle 1398 * @get_req: ll stats get request command params 1399 * 1400 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1401 */ 1402 QDF_STATUS wmi_unified_process_ll_stats_get_cmd(wmi_unified_t wmi_handle, 1403 const struct ll_stats_get_params *get_req); 1404 #endif /* WLAN_FEATURE_LINK_LAYER_STATS */ 1405 1406 /** 1407 * wmi_unified_congestion_request_cmd() - send request to fw to get CCA 1408 * @wmi_handle: wma handle 1409 * @vdev_id: vdev id 1410 * 1411 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1412 */ 1413 QDF_STATUS wmi_unified_congestion_request_cmd(wmi_unified_t wmi_handle, 1414 uint8_t vdev_id); 1415 1416 /** 1417 * wmi_unified_snr_request_cmd() - send request to fw to get RSSI stats 1418 * @wmi_handle: wmi handle 1419 * @rssi_req: get RSSI request 1420 * 1421 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1422 */ 1423 QDF_STATUS wmi_unified_snr_request_cmd(wmi_unified_t wmi_handle); 1424 1425 /** 1426 * wmi_unified_snr_cmd() - get RSSI from fw 1427 * @wmi_handle: wmi handle 1428 * @vdev_id: vdev id 1429 * 1430 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1431 */ 1432 QDF_STATUS wmi_unified_snr_cmd(wmi_unified_t wmi_handle, uint8_t vdev_id); 1433 1434 /** 1435 * wmi_unified_link_status_req_cmd() - process link status request from UMAC 1436 * @wmi_handle: wmi handle 1437 * @params: get link status params 1438 * 1439 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1440 */ 1441 QDF_STATUS wmi_unified_link_status_req_cmd(wmi_unified_t wmi_handle, 1442 struct link_status_params *params); 1443 1444 #ifdef WLAN_SUPPORT_GREEN_AP 1445 /** 1446 * wmi_unified_egap_conf_params_cmd() - send wmi cmd of egap config params 1447 * @wmi_handle: wmi handler 1448 * @egap_params: pointer to egap_params 1449 * 1450 * Return: 0 for success, otherwise appropriate error code 1451 */ 1452 QDF_STATUS 1453 wmi_unified_egap_conf_params_cmd( 1454 wmi_unified_t wmi_handle, 1455 struct wlan_green_ap_egap_params *egap_params); 1456 #endif 1457 1458 /** 1459 * wmi_unified_csa_offload_enable() - send CSA offload enable command 1460 * @wmi_handle: wmi handle 1461 * @vdev_id: vdev id 1462 * 1463 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1464 */ 1465 QDF_STATUS wmi_unified_csa_offload_enable(wmi_unified_t wmi_handle, 1466 uint8_t vdev_id); 1467 1468 #ifdef WLAN_FEATURE_CIF_CFR 1469 /** 1470 * wmi_unified_oem_dma_ring_cfg() - configure OEM DMA rings 1471 * @wmi_handle: wmi handle 1472 * @data_len: len of dma cfg req 1473 * @data: dma cfg req 1474 * 1475 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1476 */ 1477 QDF_STATUS 1478 wmi_unified_oem_dma_ring_cfg(wmi_unified_t wmi_handle, 1479 wmi_oem_dma_ring_cfg_req_fixed_param *cfg); 1480 #endif 1481 1482 /** 1483 * wmi_unified_start_oem_data_cmd() - start oem data request to target 1484 * @wmi_handle: wmi handle 1485 * @data_len: the length of @data 1486 * @data: the pointer to data buf 1487 * 1488 * This is legacy api for oem data request, using wmi command 1489 * WMI_OEM_REQ_CMDID. 1490 * 1491 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1492 */ 1493 QDF_STATUS wmi_unified_start_oem_data_cmd(wmi_unified_t wmi_handle, 1494 uint32_t data_len, 1495 uint8_t *data); 1496 1497 #ifdef FEATURE_OEM_DATA 1498 /** 1499 * wmi_unified_start_oemv2_data_cmd() - start oem data cmd to target 1500 * @wmi_handle: wmi handle 1501 * @params: oem data params 1502 * 1503 * This is common api for oem data, using wmi command WMI_OEM_DATA_CMDID. 1504 * 1505 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1506 */ 1507 QDF_STATUS wmi_unified_start_oemv2_data_cmd(wmi_unified_t wmi_handle, 1508 struct oem_data *params); 1509 #endif 1510 1511 /** 1512 * wmi_unified_dfs_phyerr_filter_offload_en_cmd() - enable dfs phyerr filter 1513 * @wmi_handle: wmi handle 1514 * @dfs_phyerr_filter_offload: is dfs phyerr filter offload 1515 * 1516 * Send WMI_DFS_PHYERR_FILTER_ENA_CMDID or 1517 * WMI_DFS_PHYERR_FILTER_DIS_CMDID command 1518 * to firmware based on phyerr filtering 1519 * offload status. 1520 * 1521 * Return: 1 success, 0 failure 1522 */ 1523 QDF_STATUS 1524 wmi_unified_dfs_phyerr_filter_offload_en_cmd(wmi_unified_t wmi_handle, 1525 bool dfs_phyerr_filter_offload); 1526 1527 #if !defined(REMOVE_PKT_LOG) && defined(FEATURE_PKTLOG) 1528 /** 1529 * wmi_unified_pktlog_wmi_send_cmd() - send pktlog event command to target 1530 * @wmi_handle: wmi handle 1531 * @pktlog_event: pktlog event 1532 * @cmd_id: pktlog cmd id 1533 * @user_triggered: user triggered input for PKTLOG enable mode 1534 * 1535 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1536 */ 1537 QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(wmi_unified_t wmi_handle, 1538 WMI_PKTLOG_EVENT pktlog_event, 1539 uint32_t cmd_id, 1540 uint8_t user_triggered); 1541 #endif 1542 1543 /** 1544 * wmi_unified_stats_ext_req_cmd() - request ext stats from fw 1545 * @wmi_handle: wmi handle 1546 * @preq: stats ext params 1547 * 1548 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1549 */ 1550 QDF_STATUS wmi_unified_stats_ext_req_cmd(wmi_unified_t wmi_handle, 1551 struct stats_ext_params *preq); 1552 1553 /** 1554 * wmi_unified_process_dhcpserver_offload_cmd() - enable DHCP server offload 1555 * @wmi_handle: wmi handle 1556 * @pDhcpSrvOffloadInfo: DHCP server offload info 1557 * 1558 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1559 */ 1560 QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd( 1561 wmi_unified_t wmi_handle, 1562 struct dhcp_offload_info_params *params); 1563 1564 /** 1565 * wmi_unified_send_regdomain_info_to_fw_cmd() - send regdomain info to fw 1566 * @wmi_handle: wmi handle 1567 * @reg_dmn: reg domain 1568 * @regdmn2G: 2G reg domain 1569 * @regdmn5G: 5G reg domain 1570 * @ctl2G: 2G test limit 1571 * @ctl5G: 5G test limit 1572 * 1573 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1574 */ 1575 QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(wmi_unified_t wmi_handle, 1576 uint32_t reg_dmn, 1577 uint16_t regdmn2G, 1578 uint16_t regdmn5G, 1579 uint8_t ctl2G, 1580 uint8_t ctl5G); 1581 1582 QDF_STATUS 1583 wmi_unified_process_fw_mem_dump_cmd(wmi_unified_t wmi_hdl, 1584 struct fw_dump_req_param *mem_dump_req); 1585 1586 /** 1587 * wmi_unified_cfg_action_frm_tb_ppdu_cmd()-send action frame TB PPDU cfg to FW 1588 * @wmi_handle: Pointer to WMi handle 1589 * @cfg_info: Pointer to cfg msg 1590 * 1591 * This function sends action frame TB PPDU cfg to firmware 1592 * 1593 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1594 * 1595 */ 1596 QDF_STATUS 1597 wmi_unified_cfg_action_frm_tb_ppdu_cmd( 1598 wmi_unified_t wmi_handle, 1599 struct cfg_action_frm_tb_ppdu_param *cfg_info); 1600 1601 /** 1602 * wmi_unified_save_fw_version_cmd() - save fw version 1603 * @wmi_handle: pointer to wmi handle 1604 * @evt_buf: Event buffer 1605 * 1606 * 1607 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1608 * 1609 */ 1610 QDF_STATUS wmi_unified_save_fw_version_cmd(wmi_unified_t wmi_handle, 1611 void *evt_buf); 1612 1613 /** 1614 * wmi_unified_log_supported_evt_cmd() - Enable/Disable FW diag/log events 1615 * @wmi_handle: wmi handle 1616 * @event: Event received from FW 1617 * @len: Length of the event 1618 * 1619 * Enables the low frequency events and disables the high frequency 1620 * events. Bit 17 indicates if the event if low/high frequency. 1621 * 1 - high frequency, 0 - low frequency 1622 * 1623 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures 1624 */ 1625 QDF_STATUS wmi_unified_log_supported_evt_cmd(wmi_unified_t wmi_handle, 1626 uint8_t *event, 1627 uint32_t len); 1628 1629 /** 1630 * wmi_unified_enable_specific_fw_logs_cmd() - Start/Stop logging of diag log id 1631 * @wmi_handle: wmi handle 1632 * @start_log: Start logging related parameters 1633 * 1634 * Send the command to the FW based on which specific logging of diag 1635 * event/log id can be started/stopped 1636 * 1637 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1638 */ 1639 QDF_STATUS 1640 wmi_unified_enable_specific_fw_logs_cmd(wmi_unified_t wmi_handle, 1641 struct wmi_wifi_start_log *start_log); 1642 1643 /** 1644 * wmi_unified_flush_logs_to_fw_cmd() - Send log flush command to FW 1645 * @wmi_handle: WMI handle 1646 * 1647 * This function is used to send the flush command to the FW, 1648 * that will flush the fw logs that are residue in the FW 1649 * 1650 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1651 */ 1652 QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(wmi_unified_t wmi_handle); 1653 1654 /** 1655 * wmi_unified_unit_test_cmd() - send unit test command to fw. 1656 * @wmi_handle: wmi handle 1657 * @wmi_utest: unit test command 1658 * 1659 * This function send unit test command to fw. 1660 * 1661 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1662 */ 1663 QDF_STATUS wmi_unified_unit_test_cmd(wmi_unified_t wmi_handle, 1664 struct wmi_unit_test_cmd *wmi_utest); 1665 1666 #ifdef FEATURE_WLAN_APF 1667 /** 1668 * wmi_unified_set_active_apf_mode_cmd() - config active APF mode in FW 1669 * @wmi: the WMI handle 1670 * @vdev_id: the Id of the vdev to apply the configuration to 1671 * @ucast_mode: the active APF mode to configure for unicast packets 1672 * @mcast_bcast_mode: the active APF mode to configure for multicast/broadcast 1673 * packets 1674 */ 1675 QDF_STATUS 1676 wmi_unified_set_active_apf_mode_cmd(wmi_unified_t wmi, uint8_t vdev_id, 1677 enum wmi_host_active_apf_mode ucast_mode, 1678 enum wmi_host_active_apf_mode 1679 mcast_bcast_mode); 1680 1681 /** 1682 * wmi_unified_send_apf_enable_cmd() - send apf enable/disable cmd 1683 * @wmi: wmi handle 1684 * @vdev_id: VDEV id 1685 * @enable: true: enable, false: disable 1686 * 1687 * This function passes the apf enable command to fw 1688 * 1689 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1690 */ 1691 QDF_STATUS wmi_unified_send_apf_enable_cmd(wmi_unified_t wmi, 1692 uint32_t vdev_id, bool enable); 1693 1694 /** 1695 * wmi_unified_send_apf_write_work_memory_cmd() - send cmd to write into the APF 1696 * work memory. 1697 * @wmi: wmi handle 1698 * @write_params: parameters and buffer pointer for the write 1699 * 1700 * This function passes the write apf work mem command to fw 1701 * 1702 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1703 */ 1704 QDF_STATUS wmi_unified_send_apf_write_work_memory_cmd(wmi_unified_t wmi, 1705 struct wmi_apf_write_memory_params *write_params); 1706 1707 /** 1708 * wmi_unified_send_apf_read_work_memory_cmd() - send cmd to read part of APF 1709 * work memory 1710 * @wmi: wmi handle 1711 * @read_params: contains relative address and length to read from 1712 * 1713 * This function passes the read apf work mem command to fw 1714 * 1715 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1716 */ 1717 QDF_STATUS wmi_unified_send_apf_read_work_memory_cmd(wmi_unified_t wmi, 1718 struct wmi_apf_read_memory_params *read_params); 1719 1720 /** 1721 * wmi_extract_apf_read_memory_resp_event() - exctract read mem resp event 1722 * @wmi: wmi handle 1723 * @evt_buf: Pointer to the event buffer 1724 * @resp: pointer to memory to extract event parameters into 1725 * 1726 * This function exctracts read mem response event into the given structure ptr 1727 * 1728 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1729 */ 1730 QDF_STATUS 1731 wmi_extract_apf_read_memory_resp_event(wmi_unified_t wmi, void *evt_buf, 1732 struct wmi_apf_read_memory_resp_event_params 1733 *read_mem_evt); 1734 #endif /* FEATURE_WLAN_APF */ 1735 1736 /** 1737 * wmi_send_get_user_position_cmd() - send get user position command to fw 1738 * @wmi_handle: wmi handle 1739 * @value: user pos value 1740 * 1741 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1742 */ 1743 QDF_STATUS 1744 wmi_send_get_user_position_cmd(wmi_unified_t wmi_handle, uint32_t value); 1745 1746 /** 1747 * wmi_send_get_peer_mumimo_tx_count_cmd() - send get mumio tx count 1748 * command to fw 1749 * @wmi_handle: wmi handle 1750 * @value: user pos value 1751 * 1752 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1753 */ 1754 QDF_STATUS 1755 wmi_send_get_peer_mumimo_tx_count_cmd(wmi_unified_t wmi_handle, 1756 uint32_t value); 1757 1758 /** 1759 * wmi_send_reset_peer_mumimo_tx_count_cmd() - send reset peer mumimo 1760 * tx count to fw 1761 * @wmi_handle: wmi handle 1762 * @value: reset tx count value 1763 * 1764 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1765 */ 1766 QDF_STATUS 1767 wmi_send_reset_peer_mumimo_tx_count_cmd(wmi_unified_t wmi_handle, 1768 uint32_t value); 1769 1770 /* 1771 * wmi_unified_send_btcoex_wlan_priority_cmd() - send btcoex priority commands 1772 * @wmi_handle: wmi handle 1773 * @param: wmi btcoex cfg params 1774 * 1775 * Send WMI_BTCOEX_CFG_CMDID parameters to fw. 1776 * 1777 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 1778 */ 1779 QDF_STATUS 1780 wmi_unified_send_btcoex_wlan_priority_cmd(wmi_unified_t wmi_handle, 1781 struct btcoex_cfg_params *param); 1782 1783 /** 1784 * wmi_unified_send_btcoex_duty_cycle_cmd() - send btcoex duty cycle commands 1785 * @wmi_handle: wmi handle 1786 * @param: wmi btcoex cfg params 1787 * 1788 * Send WMI_BTCOEX_CFG_CMDID parameters to fw. 1789 * 1790 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 1791 */ 1792 QDF_STATUS 1793 wmi_unified_send_btcoex_duty_cycle_cmd(wmi_unified_t wmi_handle, 1794 struct btcoex_cfg_params *param); 1795 1796 /** 1797 * wmi_unified_send_coex_ver_cfg_cmd() - send coex ver cfg command 1798 * @wmi_handle: wmi handle 1799 * @param: wmi coex ver cfg params 1800 * 1801 * Send WMI_COEX_VERSION_CFG_CMID parameters to fw. 1802 * 1803 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 1804 */ 1805 QDF_STATUS 1806 wmi_unified_send_coex_ver_cfg_cmd(wmi_unified_t wmi_handle, 1807 coex_ver_cfg_t *param); 1808 1809 /** 1810 * wmi_unified_send_coex_config_cmd() - send coex ver cfg command 1811 * @wmi_handle: wmi handle 1812 * @param: wmi coex cfg cmd params 1813 * 1814 * Send WMI_COEX_CFG_CMD parameters to fw. 1815 * 1816 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 1817 */ 1818 QDF_STATUS 1819 wmi_unified_send_coex_config_cmd(wmi_unified_t wmi_handle, 1820 struct coex_config_params *param); 1821 1822 /** 1823 * wmi_unified_pdev_fips_cmd_send() - WMI pdev fips cmd function 1824 * @wmi_handle: handle to WMI. 1825 * @param: pointer to hold pdev fips param 1826 * 1827 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1828 */ 1829 QDF_STATUS 1830 wmi_unified_pdev_fips_cmd_send(wmi_unified_t wmi_handle, 1831 struct fips_params *param); 1832 1833 #ifdef WLAN_FEATURE_DISA 1834 /** 1835 * wmi_unified_encrypt_decrypt_send_cmd() - send encryptdecrypt cmd to fw 1836 * @wmi_handle: wmi handle 1837 * @params: encrypt/decrypt params 1838 * 1839 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1840 */ 1841 QDF_STATUS 1842 wmi_unified_encrypt_decrypt_send_cmd(void *wmi_hdl, 1843 struct disa_encrypt_decrypt_req_params 1844 *params); 1845 #endif /* WLAN_FEATURE_DISA */ 1846 1847 /** 1848 * wmi_unified_wlan_profile_enable_cmd_send() - WMI wlan profile enable 1849 * cmd function 1850 * @wmi_handle: handle to WMI. 1851 * @param: pointer to hold wlan profile param 1852 * 1853 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1854 */ 1855 QDF_STATUS 1856 wmi_unified_wlan_profile_enable_cmd_send(wmi_unified_t wmi_handle, 1857 struct wlan_profile_params *param); 1858 1859 /** 1860 * wmi_unified_wlan_profile_trigger_cmd_send() - WMI wlan profile trigger 1861 * cmd function 1862 * @wmi_handle: handle to WMI. 1863 * @param: pointer to hold wlan profile param 1864 * 1865 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1866 */ 1867 QDF_STATUS 1868 wmi_unified_wlan_profile_trigger_cmd_send(wmi_unified_t wmi_handle, 1869 struct wlan_profile_params *param); 1870 1871 /** 1872 * wmi_unified_wlan_profile_hist_intvl_cmd_send() - WMI wlan profile history 1873 * cmd function 1874 * @wmi_handle: handle to WMI. 1875 * @param: pointer to hold wlan profile param 1876 * 1877 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1878 */ 1879 QDF_STATUS 1880 wmi_unified_wlan_profile_hist_intvl_cmd_send(wmi_unified_t wmi_handle, 1881 struct wlan_profile_params *param); 1882 1883 /** 1884 * wmi_unified_set_chan_cmd_send() - WMI set channel cmd function 1885 * @wmi_handle: handle to WMI. 1886 * @param: pointer to hold channel param 1887 * 1888 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1889 */ 1890 QDF_STATUS 1891 wmi_unified_set_chan_cmd_send(wmi_unified_t wmi_handle, 1892 struct channel_param *param); 1893 1894 /** 1895 * wmi_unified_set_ratepwr_table_cmd_send() - WMI ratepwr table cmd function 1896 * @wmi_handle: handle to WMI. 1897 * @param: pointer to hold ratepwr table param 1898 * 1899 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1900 */ 1901 QDF_STATUS 1902 wmi_unified_set_ratepwr_table_cmd_send(wmi_unified_t wmi_handle, 1903 struct ratepwr_table_params *param); 1904 1905 /** 1906 * wmi_unified_get_ratepwr_table_cmd_send() - WMI ratepwr table cmd function 1907 * @wmi_handle: handle to WMI. 1908 * 1909 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1910 */ 1911 QDF_STATUS wmi_unified_get_ratepwr_table_cmd_send(wmi_unified_t wmi_handle); 1912 1913 /** 1914 * wmi_unified_set_ratepwr_chainmsk_cmd_send() - WMI ratepwr 1915 * chainmsk cmd function 1916 * @wmi_handle: handle to WMI. 1917 * @param: pointer to hold ratepwr chainmsk param 1918 * 1919 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1920 */ 1921 QDF_STATUS 1922 wmi_unified_set_ratepwr_chainmsk_cmd_send(wmi_unified_t wmi_handle, 1923 struct ratepwr_chainmsk_params 1924 *param); 1925 1926 /** 1927 * wmi_unified_set_macaddr_cmd_send() - WMI set macaddr cmd function 1928 * @wmi_handle: handle to WMI. 1929 * @param: pointer to hold macaddr param 1930 * 1931 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1932 */ 1933 QDF_STATUS wmi_unified_set_macaddr_cmd_send(wmi_unified_t wmi_handle, 1934 struct macaddr_params *param); 1935 1936 /** 1937 * wmi_unified_pdev_scan_start_cmd_send() - WMI pdev scan start cmd function 1938 * @wmi_handle: handle to WMI. 1939 * 1940 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1941 */ 1942 QDF_STATUS wmi_unified_pdev_scan_start_cmd_send(wmi_unified_t wmi_handle); 1943 1944 /** 1945 * wmi_unified_pdev_scan_end_cmd_send() - WMI pdev scan end cmd function 1946 * @wmi_handle: handle to WMI. 1947 * 1948 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1949 */ 1950 QDF_STATUS wmi_unified_pdev_scan_end_cmd_send(wmi_unified_t wmi_handle); 1951 1952 /** 1953 * wmi_unified_set_acparams_cmd_send() - WMI set acparams cmd function 1954 * @wmi_handle: handle to WMI. 1955 * @param: pointer to hold acparams param 1956 * 1957 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1958 */ 1959 QDF_STATUS 1960 wmi_unified_set_acparams_cmd_send(wmi_unified_t wmi_handle, 1961 struct acparams_params *param); 1962 1963 /** 1964 * wmi_unified_set_vap_dscp_tid_map_cmd_send() - WMI set vap dscp 1965 * tid map cmd function 1966 * @wmi_handle: handle to WMI. 1967 * @param: pointer to hold dscp param 1968 * 1969 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1970 */ 1971 QDF_STATUS 1972 wmi_unified_set_vap_dscp_tid_map_cmd_send( 1973 wmi_unified_t wmi_handle, 1974 struct vap_dscp_tid_map_params *param); 1975 1976 /** 1977 * wmi_unified_proxy_ast_reserve_cmd_send() - WMI proxy ast 1978 * reserve cmd function 1979 * @wmi_handle: handle to WMI. 1980 * @param: pointer to hold ast param 1981 * 1982 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1983 */ 1984 QDF_STATUS 1985 wmi_unified_proxy_ast_reserve_cmd_send(wmi_unified_t wmi_handle, 1986 struct proxy_ast_reserve_params *param); 1987 1988 /** 1989 * wmi_unified_set_bridge_mac_addr_cmd_send() - WMI set bridge mac 1990 * addr cmd function 1991 * @wmi_handle: handle to WMI. 1992 * @param: pointer to hold bridge mac addr param 1993 * 1994 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1995 */ 1996 QDF_STATUS wmi_unified_set_bridge_mac_addr_cmd_send( 1997 wmi_unified_t wmi_handle, 1998 struct set_bridge_mac_addr_params *param); 1999 2000 /** 2001 * wmi_unified_phyerr_enable_cmd_send() - WMI phyerr enable cmd function 2002 * @wmi_handle: handle to WMI. 2003 * @param: pointer to hold phyerr enable param 2004 * 2005 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2006 */ 2007 QDF_STATUS wmi_unified_phyerr_enable_cmd_send(wmi_unified_t wmi_handle); 2008 2009 /** 2010 * wmi_unified_phyerr_disable_cmd_send() - WMI phyerr disable cmd function 2011 * @wmi_handle: handle to WMI. 2012 * @param: pointer to hold phyerr disable param 2013 * 2014 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2015 */ 2016 QDF_STATUS wmi_unified_phyerr_disable_cmd_send(wmi_unified_t wmi_handle); 2017 2018 /** 2019 * wmi_unified_smart_ant_enable_tx_feedback_cmd_send() - 2020 * WMI set tx antenna function 2021 * @wmi_handle: handle to WMI. 2022 * @param: pointer to hold antenna param 2023 * 2024 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2025 */ 2026 QDF_STATUS wmi_unified_smart_ant_enable_tx_feedback_cmd_send( 2027 wmi_unified_t wmi_handle, 2028 struct smart_ant_enable_tx_feedback_params *param); 2029 2030 #ifdef WLAN_IOT_SIM_SUPPORT 2031 /** 2032 * wmi_unified_simulation_test_cmd_send() - 2033 * WMI simulation test command 2034 * @wmi_handle: handle to WMI. 2035 * @param: pointer to hold simulation test param 2036 * 2037 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2038 */ 2039 QDF_STATUS wmi_unified_simulation_test_cmd_send(wmi_unified_t wmi_handle, 2040 struct simulation_test_params 2041 *param); 2042 #endif 2043 2044 /** 2045 * wmi_unified_vdev_spectral_configure_cmd_send() - 2046 * WMI set spectral config function 2047 * @wmi_handle: handle to WMI. 2048 * @param: pointer to hold spectral config param 2049 * 2050 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2051 */ 2052 QDF_STATUS wmi_unified_vdev_spectral_configure_cmd_send( 2053 wmi_unified_t wmi_handle, 2054 struct vdev_spectral_configure_params *param); 2055 2056 /** 2057 * wmi_unified_vdev_spectral_enable_cmd_send() - WMI enable spectral function 2058 * @wmi_handle: handle to WMI. 2059 * @param: pointer to hold enable spectral param 2060 * 2061 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2062 */ 2063 QDF_STATUS wmi_unified_vdev_spectral_enable_cmd_send( 2064 wmi_unified_t wmi_handle, 2065 struct vdev_spectral_enable_params *param); 2066 2067 #ifdef WLAN_CONV_SPECTRAL_ENABLE 2068 /** 2069 * wmi_extract_pdev_sscan_fw_cmd_fixed_param() - Extract fixed params 2070 * from start scan response event 2071 * @wmi_handle: handle to WMI. 2072 * @evt_buf: Event buffer 2073 * @param: pointer to hold fixed params from fw params event 2074 * 2075 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2076 */ 2077 QDF_STATUS wmi_extract_pdev_sscan_fw_cmd_fixed_param( 2078 wmi_unified_t wmi_handle, 2079 uint8_t *evt_buf, 2080 struct spectral_startscan_resp_params *param); 2081 2082 /** 2083 * wmi_extract_pdev_sscan_fft_bin_index() - Extract FFT bin indexes 2084 * from start scan response event 2085 * @wmi_handle: handle to WMI. 2086 * @evt_buf: Event buffer 2087 * @param: pointer to hold FFT bin indexes from fw params event 2088 * 2089 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2090 */ 2091 QDF_STATUS wmi_extract_pdev_sscan_fft_bin_index( 2092 wmi_unified_t wmi_handle, 2093 uint8_t *evt_buf, 2094 struct spectral_fft_bin_markers_160_165mhz *param); 2095 #endif /* WLAN_CONV_SPECTRAL_ENABLE */ 2096 2097 #if defined(WLAN_SUPPORT_FILS) || defined(CONFIG_BAND_6GHZ) 2098 /** 2099 * wmi_unified_vdev_fils_enable_cmd_send() - WMI send fils enable command 2100 * @param wmi_handle: handle to WMI. 2101 * @param config_fils_params: fils enable parameters 2102 * 2103 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2104 */ 2105 QDF_STATUS 2106 wmi_unified_vdev_fils_enable_cmd_send(struct wmi_unified *wmi_handle, 2107 struct config_fils_params *param); 2108 #endif 2109 2110 /** 2111 * wmi_unified_bss_chan_info_request_cmd_send() - WMI bss chan info 2112 * request function 2113 * @wmi_handle: handle to WMI. 2114 * @param: pointer to hold chan info param 2115 * 2116 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2117 */ 2118 QDF_STATUS wmi_unified_bss_chan_info_request_cmd_send( 2119 wmi_unified_t wmi_handle, 2120 struct bss_chan_info_request_params *param); 2121 2122 /** 2123 * wmi_unified_thermal_mitigation_param_cmd_send() - 2124 * WMI thermal mitigation function 2125 * @wmi_handle: handle to WMI. 2126 * @param: pointer to hold thermal mitigation param 2127 * 2128 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2129 */ 2130 QDF_STATUS wmi_unified_thermal_mitigation_param_cmd_send( 2131 wmi_unified_t wmi_handle, 2132 struct thermal_mitigation_params *param); 2133 2134 /** 2135 * wmi_unified_vdev_set_fwtest_param_cmd_send() - WMI set fwtest function 2136 * @wmi_handle: handle to WMI. 2137 * @param: pointer to hold fwtest param 2138 * 2139 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2140 */ 2141 QDF_STATUS wmi_unified_vdev_set_fwtest_param_cmd_send( 2142 wmi_unified_t wmi_handle, 2143 struct set_fwtest_params *param); 2144 2145 /** 2146 * wmi_unified_vdev_set_custom_aggr_size_cmd_send() - WMI set custom aggr 2147 * size command 2148 * @wmi_handle: handle to WMI. 2149 * @param: pointer to hold custom aggr size param 2150 * 2151 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2152 */ 2153 QDF_STATUS wmi_unified_vdev_set_custom_aggr_size_cmd_send( 2154 wmi_unified_t wmi_handle, 2155 struct set_custom_aggr_size_params *param); 2156 2157 /** 2158 * wmi_unified_vdev_set_qdepth_thresh_cmd_send() - WMI set qdepth threshold 2159 * @wmi_handle: handle to WMI. 2160 * @param: pointer to hold set qdepth thresh param 2161 * 2162 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2163 */ 2164 QDF_STATUS wmi_unified_vdev_set_qdepth_thresh_cmd_send( 2165 wmi_unified_t wmi_handle, 2166 struct set_qdepth_thresh_params *param); 2167 2168 /** 2169 * wmi_unified_pdev_set_regdomain_params_cmd_send() - WMI set regdomain 2170 * function 2171 * @wmi_handle: handle to WMI. 2172 * @param: pointer to hold regdomain param 2173 * 2174 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2175 */ 2176 QDF_STATUS wmi_unified_pdev_set_regdomain_cmd_send( 2177 wmi_unified_t wmi_handle, 2178 struct pdev_set_regdomain_params *param); 2179 2180 /** 2181 * wmi_unified_set_beacon_filter_cmd_send() - WMI set beacon filter function 2182 * @wmi_handle: handle to WMI. 2183 * @param: pointer to hold beacon filter param 2184 * 2185 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2186 */ 2187 QDF_STATUS wmi_unified_set_beacon_filter_cmd_send( 2188 wmi_unified_t wmi_handle, 2189 struct set_beacon_filter_params *param); 2190 2191 /** 2192 * wmi_unified_remove_beacon_filter_cmd_send() - WMI set beacon filter function 2193 * @wmi_handle: handle to WMI. 2194 * @param: pointer to hold beacon filter param 2195 * 2196 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2197 */ 2198 QDF_STATUS wmi_unified_remove_beacon_filter_cmd_send( 2199 wmi_unified_t wmi_handle, 2200 struct remove_beacon_filter_params *param); 2201 2202 /** 2203 * wmi_unified_addba_clearresponse_cmd_send() - WMI addba resp cmd function 2204 * @wmi_handle: handle to WMI. 2205 * @macaddr: MAC address 2206 * @param: pointer to hold addba resp parameter 2207 * 2208 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2209 */ 2210 QDF_STATUS wmi_unified_addba_clearresponse_cmd_send( 2211 wmi_unified_t wmi_handle, 2212 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 2213 struct addba_clearresponse_params *param); 2214 2215 /** 2216 * wmi_unified_addba_send_cmd_send() - WMI addba send function 2217 * @wmi_handle: handle to WMI. 2218 * @macaddr: MAC address 2219 * @param: pointer to hold addba parameter 2220 * 2221 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2222 */ 2223 QDF_STATUS 2224 wmi_unified_addba_send_cmd_send(wmi_unified_t wmi_handle, 2225 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 2226 struct addba_send_params *param); 2227 2228 /** 2229 * wmi_unified_delba_send_cmd_send() - WMI delba cmd function 2230 * @wmi_handle: handle to WMI. 2231 * @macaddr: MAC address 2232 * @param: pointer to hold delba parameter 2233 * 2234 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2235 */ 2236 QDF_STATUS 2237 wmi_unified_delba_send_cmd_send(wmi_unified_t wmi_handle, 2238 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 2239 struct delba_send_params *param); 2240 2241 /** 2242 * wmi_unified_addba_setresponse_cmd_send() - WMI addba set resp cmd function 2243 * @wmi_handle: handle to WMI. 2244 * @macaddr: MAC address 2245 * @param: pointer to hold addba set resp parameter 2246 * 2247 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2248 */ 2249 QDF_STATUS 2250 wmi_unified_addba_setresponse_cmd_send(wmi_unified_t wmi_handle, 2251 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 2252 struct addba_setresponse_params *param); 2253 2254 /** 2255 * wmi_unified_singleamsdu_cmd_send() - WMI singleamsdu function 2256 * @wmi_handle: handle to WMI. 2257 * @macaddr: MAC address 2258 * @param: pointer to hold singleamsdu parameter 2259 * 2260 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2261 */ 2262 QDF_STATUS 2263 wmi_unified_singleamsdu_cmd_send(wmi_unified_t wmi_handle, 2264 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 2265 struct singleamsdu_params *param); 2266 2267 /** 2268 * wmi_unified_mu_scan_cmd_send() - WMI set mu scan function 2269 * @wmi_handle: handle to WMI. 2270 * @param: pointer to hold mu scan param 2271 * 2272 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2273 */ 2274 QDF_STATUS 2275 wmi_unified_mu_scan_cmd_send(wmi_unified_t wmi_handle, 2276 struct mu_scan_params *param); 2277 2278 /** 2279 * wmi_unified_lteu_config_cmd_send() - WMI set mu scan function 2280 * @wmi_handle: handle to WMI. 2281 * @param: pointer to hold mu scan param 2282 * 2283 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2284 */ 2285 QDF_STATUS 2286 wmi_unified_lteu_config_cmd_send(wmi_unified_t wmi_handle, 2287 struct lteu_config_params *param); 2288 2289 /** 2290 * wmi_unified_set_psmode_cmd_send() - WMI set mu scan function 2291 * @wmi_handle: handle to WMI. 2292 * @param: pointer to hold mu scan param 2293 * 2294 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2295 */ 2296 QDF_STATUS 2297 wmi_unified_set_psmode_cmd_send(wmi_unified_t wmi_handle, 2298 struct set_ps_mode_params *param); 2299 2300 /** 2301 * wmi_unified_init_cmd_send() - send initialization cmd to fw 2302 * @wmi_handle: wmi handle 2303 * @param: pointer to wmi init param 2304 * 2305 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2306 */ 2307 QDF_STATUS 2308 wmi_unified_init_cmd_send(wmi_unified_t wmi_handle, 2309 struct wmi_init_cmd_param *param); 2310 2311 /** 2312 * wmi_service_enabled() - Check if service enabled 2313 * @wmi_handle: wmi handle 2314 * @service_id: service identifier 2315 * 2316 * Return: 1 enabled, 0 disabled 2317 */ 2318 bool wmi_service_enabled(wmi_unified_t wmi_handle, uint32_t service_id); 2319 2320 /** 2321 * wmi_save_service_bitmap() - save service bitmap 2322 * @wmi_handle: wmi handle 2323 * @evt_buf: pointer to event buffer 2324 * @bitmap_buf: bitmap buffer 2325 * 2326 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code 2327 */ 2328 QDF_STATUS wmi_save_service_bitmap(wmi_unified_t wmi_handle, void *evt_buf, 2329 void *bitmap_buf); 2330 2331 /** 2332 * wmi_save_ext_service_bitmap() - save extended service bitmap 2333 * @wmi_handle: wmi handle 2334 * @evt_buf: pointer to event buffer 2335 * 2336 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS failure code 2337 */ 2338 QDF_STATUS wmi_save_ext_service_bitmap(wmi_unified_t wmi_handle, void *evt_buf, 2339 void *bitmap_buf); 2340 2341 /** 2342 * wmi_save_fw_version() - Save fw version 2343 * @wmi_handle: wmi handle 2344 * @evt_buf: pointer to event buffer 2345 * 2346 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2347 */ 2348 QDF_STATUS wmi_save_fw_version(wmi_unified_t wmi_handle, void *evt_buf); 2349 2350 /** 2351 * wmi_get_target_cap_from_service_ready() - extract service ready event 2352 * @wmi_handle: wmi handle 2353 * @evt_buf: pointer to received event buffer 2354 * @ev: pointer to hold target capability information extracted from even 2355 * 2356 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2357 */ 2358 QDF_STATUS wmi_get_target_cap_from_service_ready( 2359 wmi_unified_t wmi_handle, void *evt_buf, 2360 struct wlan_psoc_target_capability_info *ev); 2361 2362 /** 2363 * wmi_extract_hal_reg_cap() - extract HAL registered capabilities 2364 * @wmi_handle: wmi handle 2365 * @evt_buf: Pointer to event buffer 2366 * @hal_reg_cap: pointer to hold HAL reg capabilities 2367 * 2368 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2369 */ 2370 QDF_STATUS 2371 wmi_extract_hal_reg_cap(wmi_unified_t wmi_handle, void *evt_buf, 2372 struct wlan_psoc_hal_reg_capability *hal_reg_cap); 2373 2374 /** 2375 * wmi_extract_hal_reg_cap_ext2() - Extract HAL reg capabilities from service 2376 * ready ext2 event 2377 * @wmi_handle: wmi handle 2378 * @evt_buf: Pointer to event buffer 2379 * @phy_idx: Phy id 2380 * @wireless_modes: 11AX wireless modes 2381 * @hal_reg_cap: pointer to hold HAL reg capabilities ext2 structure 2382 * 2383 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2384 */ 2385 QDF_STATUS 2386 wmi_extract_hal_reg_cap_ext2( 2387 wmi_unified_t wmi_handle, void *evt_buf, uint8_t phy_idx, 2388 struct wlan_psoc_host_hal_reg_capabilities_ext2 *hal_reg_cap); 2389 2390 /** 2391 * wmi_extract_num_mem_reqs_from_service_ready() - Extract number of memory 2392 * entries requested 2393 * @wmi_handle: wmi handle 2394 * @evt_buf: pointer to event buffer 2395 * 2396 * Return: Number of entries requested 2397 */ 2398 uint32_t wmi_extract_num_mem_reqs_from_service_ready( 2399 wmi_unified_t wmi_handle, 2400 void *evt_buf); 2401 2402 /** 2403 * wmi_extract_host_mem_req_from_service_ready() - Extract host memory 2404 * request event 2405 * @wmi_handle: wmi handle 2406 * @evt_buf: pointer to event buffer 2407 * @mem_reqs: pointer to host memory request structure 2408 * @num_active_peers: number of active peers for peer cache 2409 * @num_peers: number of peers 2410 * @fw_prio: FW priority 2411 * @idx: Index for memory request 2412 * 2413 * Return: Host memory request parameters requested by target 2414 */ 2415 QDF_STATUS wmi_extract_host_mem_req_from_service_ready( 2416 wmi_unified_t wmi_handle, void *evt_buf, host_mem_req *mem_reqs, 2417 uint32_t num_active_peers, uint32_t num_peers, 2418 enum wmi_fw_mem_prio fw_prio, uint16_t idx); 2419 2420 /** 2421 * wmi_ready_extract_init_status() - Extract init status from ready event 2422 * @wmi_handle: wmi handle 2423 * @ev: Pointer to event buffer 2424 * 2425 * Return: ready status 2426 */ 2427 uint32_t wmi_ready_extract_init_status(wmi_unified_t wmi_handle, void *ev); 2428 2429 /** 2430 * wmi_ready_extract_mac_addr() - extract mac address from ready event 2431 * @wmi_handle: wmi handle 2432 * @ev: pointer to event buffer 2433 * @macaddr: Pointer to hold MAC address 2434 * 2435 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2436 */ 2437 QDF_STATUS wmi_ready_extract_mac_addr(wmi_unified_t wmi_handle, 2438 void *ev, uint8_t *macaddr); 2439 2440 /** 2441 * wmi_ready_extract_mac_addr() - extract MAC address list from ready event 2442 * @wmi_handle: wmi handle 2443 * @ev: pointer to event buffer 2444 * @num_mac_addr: Pointer to number of entries 2445 * 2446 * Return: address to start of mac addr list 2447 */ 2448 wmi_host_mac_addr 2449 *wmi_ready_extract_mac_addr_list(wmi_unified_t wmi_handle, void *ev, 2450 uint8_t *num_mac_addr); 2451 2452 /** 2453 * wmi_extract_ready_params() - Extract data from ready event apart from 2454 * status, macaddr and version. 2455 * @wmi_handle: Pointer to WMI handle. 2456 * @evt_buf: Pointer to Ready event buffer. 2457 * @ev_param: Pointer to host defined struct to copy the data from event. 2458 * 2459 * Return: QDF_STATUS_SUCCESS on success. 2460 */ 2461 QDF_STATUS wmi_extract_ready_event_params( 2462 wmi_unified_t wmi_handle, void *evt_buf, 2463 struct wmi_host_ready_ev_param *ev_param); 2464 2465 /** 2466 * wmi_extract_fw_version() - extract fw version 2467 * @wmi_handle: wmi handle 2468 * @ev: pointer to event buffer 2469 * @fw_ver: Pointer to hold fw version 2470 * 2471 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2472 */ 2473 QDF_STATUS wmi_extract_fw_version(wmi_unified_t wmi_handle, void *ev, 2474 struct wmi_host_fw_ver *fw_ver); 2475 2476 /** 2477 * wmi_extract_fw_abi_version() - extract fw abi version 2478 * @wmi_handle: wmi handle 2479 * @ev: Pointer to event buffer 2480 * @fw_ver: Pointer to hold fw abi version 2481 * 2482 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2483 */ 2484 QDF_STATUS wmi_extract_fw_abi_version(wmi_unified_t wmi_handle, void *ev, 2485 struct wmi_host_fw_abi_ver *fw_ver); 2486 2487 /** 2488 * wmi_check_and_update_fw_version() - Ready and fw version check 2489 * @wmi_handle: wmi handle 2490 * @ev: pointer to event buffer 2491 * 2492 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2493 */ 2494 QDF_STATUS wmi_check_and_update_fw_version(wmi_unified_t wmi_handle, void *ev); 2495 2496 /** 2497 * wmi_extract_dbglog_data_len() - extract debuglog data length 2498 * @wmi_handle: wmi handle 2499 * @evt_b: pointer to event buffer 2500 * @len: length of buffer 2501 * 2502 * Return: length 2503 */ 2504 uint8_t *wmi_extract_dbglog_data_len(wmi_unified_t wmi_handle, 2505 void *evt_b, uint32_t *len); 2506 2507 /** 2508 * wmi_send_ext_resource_config() - send extended resource configuration 2509 * @wmi_handle: wmi handle 2510 * @ext_cfg: pointer to extended resource configuration 2511 * 2512 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2513 */ 2514 QDF_STATUS wmi_send_ext_resource_config(wmi_unified_t wmi_handle, 2515 wmi_host_ext_resource_config *ext_cfg); 2516 2517 /** 2518 * wmi_unified_rtt_meas_req_test_cmd_send() - WMI rtt meas req test function 2519 * @wmi_handle: handle to WMI. 2520 * @param: pointer to hold rtt meas req test param 2521 * 2522 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2523 */ 2524 QDF_STATUS 2525 wmi_unified_rtt_meas_req_test_cmd_send(wmi_unified_t wmi_handle, 2526 struct rtt_meas_req_test_params *param); 2527 2528 /** 2529 * wmi_unified_rtt_meas_req_cmd_send() - WMI rtt meas req function 2530 * @wmi_handle: handle to WMI. 2531 * @param: pointer to hold rtt meas req param 2532 * 2533 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2534 */ 2535 QDF_STATUS 2536 wmi_unified_rtt_meas_req_cmd_send(wmi_unified_t wmi_handle, 2537 struct rtt_meas_req_params *param); 2538 2539 /** 2540 * wmi_unified_rtt_keepalive_req_cmd_send() - WMI rtt meas req test function 2541 * @wmi_handle: handle to WMI. 2542 * @param: pointer to hold rtt meas req test param 2543 * 2544 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2545 */ 2546 QDF_STATUS 2547 wmi_unified_rtt_keepalive_req_cmd_send(wmi_unified_t wmi_handle, 2548 struct rtt_keepalive_req_params *param); 2549 2550 /** 2551 * wmi_unified_lci_set_cmd_send() - WMI lci set function 2552 * @wmi_handle: handle to WMI. 2553 * @param: pointer to hold lci param 2554 * 2555 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2556 */ 2557 QDF_STATUS wmi_unified_lci_set_cmd_send(wmi_unified_t wmi_handle, 2558 struct lci_set_params *param); 2559 2560 /** 2561 * wmi_unified_lcr_set_cmd_send() - WMI lcr set function 2562 * @wmi_handle: handle to WMI. 2563 * @param: pointer to hold lcr param 2564 * 2565 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2566 */ 2567 QDF_STATUS wmi_unified_lcr_set_cmd_send(wmi_unified_t wmi_handle, 2568 struct lcr_set_params *param); 2569 2570 /** 2571 * wmi_unified_extract_pn() - extract pn event data 2572 * @wmi_handle: wmi handle 2573 * @evt_buf: pointer to event buffer 2574 * @param: pointer to get pn event param 2575 * 2576 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2577 */ 2578 QDF_STATUS wmi_unified_extract_pn(wmi_unified_t wmi_hdl, void *evt_buf, 2579 struct wmi_host_get_pn_event *param); 2580 2581 /** 2582 * wmi_unified_send_periodic_chan_stats_config_cmd() - send periodic chan 2583 * stats cmd to fw 2584 * @wmi_handle: wmi handle 2585 * @param: pointer to hold periodic chan stats param 2586 * 2587 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2588 */ 2589 QDF_STATUS wmi_unified_send_periodic_chan_stats_config_cmd( 2590 wmi_unified_t wmi_handle, 2591 struct periodic_chan_stats_params *param); 2592 2593 /* Extract APIs */ 2594 2595 /** 2596 * wmi_extract_fips_event_data() - extract fips event data 2597 * @wmi_handle: wmi handle 2598 * @evt_buf: pointer to event buffer 2599 * @param: pointer to FIPS event param 2600 * 2601 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2602 */ 2603 QDF_STATUS 2604 wmi_extract_fips_event_data(wmi_unified_t wmi_handle, void *evt_buf, 2605 struct wmi_host_fips_event_param *param); 2606 2607 #ifdef WLAN_FEATURE_DISA 2608 /** 2609 * wmi_extract_encrypt_decrypt_resp_params() - 2610 * extract encrypt decrypt resp params from event buffer 2611 * @wmi_handle: wmi handle 2612 * @evt_buf: pointer to event buffer 2613 * @resp: encrypt decrypt resp params 2614 * 2615 * Return: QDF_STATUS_SUCCESS for success or error code 2616 */ 2617 QDF_STATUS 2618 wmi_extract_encrypt_decrypt_resp_params(void *wmi_hdl, void *evt_buf, 2619 struct disa_encrypt_decrypt_resp_params 2620 *param); 2621 #endif /* WLAN_FEATURE_DISA */ 2622 2623 /** 2624 * wmi_extract_mgmt_rx_params() - extract management rx params from event 2625 * @wmi_handle: wmi handle 2626 * @evt_buf: pointer to event buffer 2627 * @hdr: Pointer to hold header 2628 * @bufp: Pointer to hold pointer to rx param buffer 2629 * 2630 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2631 */ 2632 QDF_STATUS 2633 wmi_extract_mgmt_rx_params(wmi_unified_t wmi_handle, void *evt_buf, 2634 struct mgmt_rx_event_params *hdr, uint8_t **bufp); 2635 2636 /** 2637 * wmi_extract_vdev_roam_param() - extract vdev roam param from event 2638 * @wmi_handle: wmi handle 2639 * @evt_buf: pointer to event buffer 2640 * @ev: Pointer to hold roam param 2641 * 2642 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2643 */ 2644 QDF_STATUS 2645 wmi_extract_vdev_roam_param(wmi_unified_t wmi_handle, void *evt_buf, 2646 wmi_host_roam_event *ev); 2647 2648 /** 2649 * wmi_extract_vdev_scan_ev_param() - extract vdev scan param from event 2650 * @wmi_handle: wmi handle 2651 * @evt_buf: pointer to event buffer 2652 * @param: Pointer to hold vdev scan param 2653 * 2654 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2655 */ 2656 QDF_STATUS 2657 wmi_extract_vdev_scan_ev_param(wmi_unified_t wmi_handle, void *evt_buf, 2658 struct scan_event *param); 2659 2660 #ifdef FEATURE_WLAN_SCAN_PNO 2661 /** 2662 * wmi_extract_nlo_match_ev_param() - extract NLO match param from event 2663 * @wmi_handle: pointer to WMI handle 2664 * @evt_buf: pointer to WMI event buffer 2665 * @param: pointer to scan event param for NLO match 2666 * 2667 * Return: QDF_STATUS_SUCCESS for success or error code 2668 */ 2669 QDF_STATUS 2670 wmi_extract_nlo_match_ev_param(wmi_unified_t wmi_handle, void *evt_buf, 2671 struct scan_event *param); 2672 2673 /** 2674 * wmi_extract_nlo_complete_ev_param() - extract NLO complete param from event 2675 * @wmi_handle: pointer to WMI handle 2676 * @evt_buf: pointer to WMI event buffer 2677 * @param: pointer to scan event param for NLO complete 2678 * 2679 * Return: QDF_STATUS_SUCCESS for success or error code 2680 */ 2681 QDF_STATUS 2682 wmi_extract_nlo_complete_ev_param(wmi_unified_t wmi_handle, void *evt_buf, 2683 struct scan_event *param); 2684 #endif 2685 2686 /** 2687 * wmi_extract_mu_ev_param() - extract mu param from event 2688 * @wmi_handle: wmi handle 2689 * @evt_buf: pointer to event buffer 2690 * @param: Pointer to hold mu report 2691 * 2692 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2693 */ 2694 QDF_STATUS 2695 wmi_extract_mu_ev_param(wmi_unified_t wmi_handle, void *evt_buf, 2696 wmi_host_mu_report_event *param); 2697 2698 /** 2699 * wmi_extract_mu_db_entry() - extract mu db entry from event 2700 * @wmi_handle: wmi handle 2701 * @evt_buf: pointer to event buffer 2702 * @idx: index 2703 * @param: Pointer to hold mu db entry 2704 * 2705 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2706 */ 2707 QDF_STATUS 2708 wmi_extract_mu_db_entry(wmi_unified_t wmi_handle, void *evt_buf, 2709 uint8_t idx, wmi_host_mu_db_entry *param); 2710 2711 /** 2712 * wmi_extract_mumimo_tx_count_ev_param() - extract mumimo tx count from event 2713 * @wmi_handle: wmi handle 2714 * @evt_buf: pointer to event buffer 2715 * @param: Pointer to hold mumimo tx count 2716 * 2717 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2718 */ 2719 QDF_STATUS 2720 wmi_extract_mumimo_tx_count_ev_param(wmi_unified_t wmi_handle, void *evt_buf, 2721 wmi_host_peer_txmu_cnt_event *param); 2722 2723 /** 2724 * wmi_extract_peer_gid_userpos_list_ev_param() - extract peer userpos list 2725 * from event 2726 * @wmi_handle: wmi handle 2727 * @evt_buf: pointer to event buffer 2728 * @param: Pointer to hold peer gid userposition list 2729 * 2730 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2731 */ 2732 QDF_STATUS 2733 wmi_extract_peer_gid_userpos_list_ev_param( 2734 wmi_unified_t wmi_handle, 2735 void *evt_buf, 2736 wmi_host_peer_gid_userpos_list_event *param); 2737 2738 /** 2739 * wmi_extract_esp_estimate_ev_param() - extract air time from event 2740 * @wmi_handle: wmi handle 2741 * @evt_buf: pointer to event buffer 2742 * @param: Pointer to hold esp event 2743 * 2744 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2745 */ 2746 QDF_STATUS 2747 wmi_extract_esp_estimate_ev_param(wmi_unified_t wmi_handle, void *evt_buf, 2748 struct esp_estimation_event *param); 2749 2750 /** 2751 * wmi_extract_gpio_input_ev_param() - extract gpio input param from event 2752 * @wmi_handle: wmi handle 2753 * @evt_buf: pointer to event buffer 2754 * @gpio_num: Pointer to hold gpio number 2755 * 2756 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2757 */ 2758 QDF_STATUS wmi_extract_gpio_input_ev_param(wmi_unified_t wmi_handle, 2759 void *evt_buf, uint32_t *gpio_num); 2760 2761 /** 2762 * wmi_extract_pdev_reserve_ast_ev_param() - extract reserve ast entry 2763 * param from event 2764 * @wmi_handle: wmi handle 2765 * @evt_buf: pointer to event buffer 2766 * @param: Pointer to hold reserve ast entry param 2767 * 2768 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2769 */ 2770 QDF_STATUS wmi_extract_pdev_reserve_ast_ev_param( 2771 wmi_unified_t wmi_handle, void *evt_buf, 2772 struct wmi_host_proxy_ast_reserve_param *param); 2773 /** 2774 * wmi_extract_pdev_generic_buffer_ev_param() - extract pdev generic buffer 2775 * from event 2776 * @wmi_handle: wmi handle 2777 * @evt_buf: pointer to event buffer 2778 * @param: Pointer to generic buffer param 2779 * 2780 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2781 */ 2782 QDF_STATUS wmi_extract_pdev_generic_buffer_ev_param( 2783 wmi_unified_t wmi_handle, void *evt_buf, 2784 wmi_host_pdev_generic_buffer_event *param); 2785 2786 /** 2787 * wmi_extract_peer_ratecode_list_ev() - extract peer ratecode from event 2788 * @wmi_handle: wmi handle 2789 * @evt_buf: pointer to event buffer 2790 * @peer_mac: Pointer to hold peer mac address 2791 * @pdev_id: Pointer to hold pdev_id 2792 * @rate_cap: Pointer to hold ratecode 2793 * 2794 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2795 */ 2796 QDF_STATUS wmi_extract_peer_ratecode_list_ev( 2797 wmi_unified_t wmi_handle, void *evt_buf, 2798 uint8_t *peer_mac, uint32_t *pdev_id, 2799 wmi_sa_rate_cap *rate_cap); 2800 2801 /** 2802 * wmi_extract_bcnflt_stats() - extract bcn fault stats from event 2803 * @wmi_handle: wmi handle 2804 * @evt_buf: pointer to event buffer 2805 * @index: Index into bcn fault stats 2806 * @bcnflt_stats: Pointer to hold bcn fault stats 2807 * 2808 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2809 */ 2810 QDF_STATUS wmi_extract_bcnflt_stats( 2811 wmi_unified_t wmi_handle, void *evt_buf, 2812 uint32_t index, wmi_host_bcnflt_stats *bcnflt_stats); 2813 2814 /** 2815 * wmi_extract_rtt_hdr() - extract rtt header from event 2816 * @wmi_handle: wmi handle 2817 * @evt_buf: pointer to event buffer 2818 * @ev: Pointer to hold rtt header 2819 * 2820 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2821 */ 2822 QDF_STATUS wmi_extract_rtt_hdr(wmi_unified_t wmi_handle, void *evt_buf, 2823 wmi_host_rtt_event_hdr *ev); 2824 2825 /** 2826 * wmi_extract_rtt_ev() - extract rtt event 2827 * @wmi_handle: wmi handle 2828 * @evt_buf: Pointer to event buffer 2829 * @ev: Pointer to hold rtt event 2830 * @hdump: Pointer to hold hex dump 2831 * @hdump_len: hex dump length 2832 * 2833 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2834 */ 2835 QDF_STATUS wmi_extract_rtt_ev(wmi_unified_t wmi_handle, void *evt_buf, 2836 wmi_host_rtt_meas_event *ev, 2837 uint8_t *hdump, uint16_t hdump_len); 2838 2839 /** 2840 * wmi_extract_rtt_error_report_ev() - extract rtt error report from event 2841 * @wmi_handle: wmi handle 2842 * @evt_buf: pointer to event buffer 2843 * @ev: Pointer to hold rtt error report 2844 * 2845 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2846 */ 2847 QDF_STATUS 2848 wmi_extract_rtt_error_report_ev(wmi_unified_t wmi_handle, void *evt_buf, 2849 wmi_host_rtt_error_report_event *ev); 2850 2851 /** 2852 * wmi_extract_chan_stats() - extract chan stats from event 2853 * @wmi_handle: wmi handle 2854 * @evt_buf: pointer to event buffer 2855 * @index: Index into chan stats 2856 * @chan_stats: Pointer to hold chan stats 2857 * 2858 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2859 */ 2860 QDF_STATUS 2861 wmi_extract_chan_stats(wmi_unified_t wmi_handle, void *evt_buf, 2862 uint32_t index, wmi_host_chan_stats *chan_stats); 2863 2864 /** 2865 * wmi_extract_thermal_stats() - extract thermal stats from event 2866 * @wmi_handle: wmi handle 2867 * @evt_buf: Pointer to event buffer 2868 * @temp: Pointer to hold extracted temperature 2869 * @level: Pointer to hold extracted level 2870 * @pdev_id: Pointer to hold extracted pdev_id 2871 * 2872 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2873 */ 2874 QDF_STATUS wmi_extract_thermal_stats(wmi_unified_t wmi_handle, void *evt_buf, 2875 uint32_t *temp, uint32_t *level, 2876 uint32_t *pdev_id); 2877 2878 /** 2879 * wmi_extract_thermal_level_stats() - extract thermal level stats from 2880 * event 2881 * @wmi_handle: wmi handle 2882 * @evt_buf: pointer to event buffer 2883 * @idx: Index to level stats 2884 * @levelcount: Pointer to hold levelcount 2885 * @dccount: Pointer to hold dccount 2886 * 2887 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2888 */ 2889 QDF_STATUS 2890 wmi_extract_thermal_level_stats(wmi_unified_t wmi_handle, void *evt_buf, 2891 uint8_t idx, uint32_t *levelcount, 2892 uint32_t *dccount); 2893 2894 /** 2895 * wmi_extract_comb_phyerr() - extract comb phy error from event 2896 * @wmi_handle: wmi handle 2897 * @evt_buf: pointer to event buffer 2898 * @datalen: data length of event buffer 2899 * @buf_offset: Pointer to hold value of current event buffer offset 2900 * post extraction 2901 * @phyerr: Pointer to hold phyerr 2902 * 2903 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2904 */ 2905 QDF_STATUS 2906 wmi_extract_comb_phyerr(wmi_unified_t wmi_handle, void *evt_buf, 2907 uint16_t datalen, uint16_t *buf_offset, 2908 wmi_host_phyerr_t *phyerr); 2909 2910 /** 2911 * wmi_extract_single_phyerr() - extract single phy error from event 2912 * @wmi_handle: wmi handle 2913 * @evt_buf: pointer to event buffer 2914 * @datalen: data length of event buffer 2915 * @buf_offset: Pointer to hold value of current event buffer offset 2916 * post extraction 2917 * @phyerr: Pointer to hold phyerr 2918 * 2919 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2920 */ 2921 QDF_STATUS 2922 wmi_extract_single_phyerr(wmi_unified_t wmi_handle, void *evt_buf, 2923 uint16_t datalen, uint16_t *buf_offset, 2924 wmi_host_phyerr_t *phyerr); 2925 2926 /** 2927 * wmi_extract_composite_phyerr() - extract composite phy error from event 2928 * @wmi_handle: wmi handle 2929 * @evt_buf: pointer to event buffer 2930 * @datalen: Length of event buffer 2931 * @phyerr: Pointer to hold phy error 2932 * 2933 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2934 */ 2935 QDF_STATUS 2936 wmi_extract_composite_phyerr(wmi_unified_t wmi_handle, void *evt_buf, 2937 uint16_t datalen, wmi_host_phyerr_t *phyerr); 2938 2939 /** 2940 * wmi_extract_profile_ctx() - extract profile context from event 2941 * @wmi_handle: wmi handle 2942 * @evt_buf: pointer to event buffer 2943 * @profile_ctx: Pointer to hold profile context 2944 * 2945 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2946 */ 2947 QDF_STATUS 2948 wmi_extract_profile_ctx(wmi_unified_t wmi_handle, void *evt_buf, 2949 wmi_host_wlan_profile_ctx_t *profile_ctx); 2950 2951 /** 2952 * wmi_extract_profile_data() - extract profile data from event 2953 * @wmi_handle: wmi handle 2954 * @evt_buf: pointer to event buffer 2955 * @idx: index of profile data 2956 * @profile_data: Pointer to hold profile data 2957 * 2958 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2959 */ 2960 QDF_STATUS 2961 wmi_extract_profile_data(wmi_unified_t wmi_handle, void *evt_buf, uint8_t idx, 2962 wmi_host_wlan_profile_t *profile_data); 2963 2964 /** 2965 * wmi_extract_stats_param() - extract all stats count from event 2966 * @wmi_handle: wmi handle 2967 * @evt_buf: pointer to event buffer 2968 * @stats_param: Pointer to hold stats count 2969 * 2970 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2971 */ 2972 QDF_STATUS 2973 wmi_extract_stats_param(wmi_unified_t wmi_handle, void *evt_buf, 2974 wmi_host_stats_event *stats_param); 2975 2976 /** 2977 * wmi_extract_pdev_stats() - extract pdev stats from event 2978 * @wmi_handle: wmi handle 2979 * @evt_buf: pointer to event buffer 2980 * @index: Index into pdev stats 2981 * @pdev_stats: Pointer to hold pdev stats 2982 * 2983 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2984 */ 2985 QDF_STATUS 2986 wmi_extract_pdev_stats(wmi_unified_t wmi_handle, void *evt_buf, 2987 uint32_t index, wmi_host_pdev_stats *pdev_stats); 2988 2989 /** 2990 * extract_unit_test() - extract unit test from event 2991 * @wmi_handle: wmi handle 2992 * @evt_buf: pointer to event buffer 2993 * @unit_test: Pointer to hold unit-test header 2994 * @maxspace: The amount of space in evt_buf 2995 * 2996 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 2997 */ 2998 QDF_STATUS 2999 wmi_extract_unit_test(wmi_unified_t wmi_handle, void *evt_buf, 3000 wmi_unit_test_event *unit_test, uint32_t maxspace); 3001 3002 /** 3003 * wmi_extract_pdev_ext_stats() - extract extended pdev stats from event 3004 * @wmi_handle: wmi handle 3005 * @evt_buf: pointer to event buffer 3006 * @index: Index into extended pdev stats 3007 * @pdev_ext_stats: Pointer to hold extended pdev stats 3008 * 3009 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3010 */ 3011 QDF_STATUS 3012 wmi_extract_pdev_ext_stats(wmi_unified_t wmi_handle, void *evt_buf, 3013 uint32_t index, 3014 wmi_host_pdev_ext_stats *pdev_ext_stats); 3015 3016 /** 3017 * wmi_extract_peer_extd_stats() - extract extended peer stats from event 3018 * @wmi_handle: wmi handle 3019 * @evt_buf: pointer to event buffer 3020 * @index: Index into extended peer stats 3021 * @peer_extd_stats: Pointer to hold extended peer stats 3022 * 3023 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3024 */ 3025 QDF_STATUS 3026 wmi_extract_peer_extd_stats(wmi_unified_t wmi_handle, void *evt_buf, 3027 uint32_t index, 3028 wmi_host_peer_extd_stats *peer_extd_stats); 3029 3030 /** 3031 * wmi_extract_peer_adv_stats() - extract advance (extd2) peer stats from event 3032 * @wmi_handle: wmi handle 3033 * @evt_buf: pointer to event buffer 3034 * @peer_adv_stats: Pointer to hold extended peer stats 3035 * 3036 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3037 */ 3038 QDF_STATUS wmi_extract_peer_adv_stats( 3039 wmi_unified_t wmi_handle, void *evt_buf, 3040 struct wmi_host_peer_adv_stats *peer_adv_stats); 3041 3042 /** 3043 * wmi_extract_bss_chan_info_event() - extract bss channel information 3044 * from event 3045 * @wmi_handle: wmi handle 3046 * @evt_buf: pointer to event buffer 3047 * @bss_chan_info: Pointer to hold bss channel information 3048 * 3049 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3050 */ 3051 QDF_STATUS wmi_extract_bss_chan_info_event( 3052 wmi_unified_t wmi_handle, void *evt_buf, 3053 wmi_host_pdev_bss_chan_info_event *bss_chan_info); 3054 3055 /** 3056 * wmi_extract_peer_stats() - extract peer stats from event 3057 * @wmi_handle: wmi handle 3058 * @evt_buf: pointer to event buffer 3059 * @index: Index into peer stats 3060 * @peer_stats: Pointer to hold peer stats 3061 * 3062 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3063 */ 3064 QDF_STATUS 3065 wmi_extract_peer_stats(wmi_unified_t wmi_handle, void *evt_buf, 3066 uint32_t index, wmi_host_peer_stats *peer_stats); 3067 3068 /** 3069 * wmi_extract_tx_data_traffic_ctrl_ev() - extract tx data traffic control 3070 * from event 3071 * @wmi_handle: wmi handle 3072 * @evt_buf: pointer to event buffer 3073 * @ev: Pointer to hold data traffic control 3074 * 3075 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3076 */ 3077 QDF_STATUS 3078 wmi_extract_tx_data_traffic_ctrl_ev(wmi_unified_t wmi_handle, void *evt_buf, 3079 wmi_host_tx_data_traffic_ctrl_event *ev); 3080 3081 /** 3082 * wmi_extract_vdev_stats() - extract vdev stats from event 3083 * @wmi_handle: wmi handle 3084 * @evt_buf: pointer to event buffer 3085 * @index: Index into vdev stats 3086 * @vdev_stats: Pointer to hold vdev stats 3087 * 3088 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3089 */ 3090 QDF_STATUS 3091 wmi_extract_vdev_stats(wmi_unified_t wmi_handle, void *evt_buf, 3092 uint32_t index, wmi_host_vdev_stats *vdev_stats); 3093 3094 /** 3095 * wmi_extract_per_chain_rssi_stats() - extract rssi stats from event 3096 * @wmi_handle: wmi handle 3097 * @evt_buf: pointer to event buffer 3098 * @index: Index into rssi stats 3099 * @rssi_stats: Pointer to hold rssi stats 3100 * 3101 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3102 */ 3103 QDF_STATUS wmi_extract_per_chain_rssi_stats( 3104 wmi_unified_t wmi_handle, void *evt_buf, 3105 uint32_t index, 3106 struct wmi_host_per_chain_rssi_stats *rssi_stats); 3107 3108 #ifdef WLAN_FEATURE_MIB_STATS 3109 /** 3110 * wmi_extract_mib_stats() - extract mib stats from event 3111 * @wmi_handle: wmi handle 3112 * @evt_buf: pointer to event buffer 3113 * @mib_stats: pointer to hold mib stats 3114 * 3115 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3116 */ 3117 QDF_STATUS wmi_extract_mib_stats(wmi_unified_t wmi_handle, void *evt_buf, 3118 struct mib_stats_metrics *mib_stats); 3119 #endif 3120 3121 /** 3122 * wmi_extract_vdev_extd_stats() - extract extended vdev stats from event 3123 * @wmi_handle: wmi handle 3124 * @evt_buf: pointer to event buffer 3125 * @index: Index into extended vdev stats 3126 * @vdev_extd_stats: Pointer to hold extended vdev stats 3127 * 3128 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3129 */ 3130 QDF_STATUS 3131 wmi_extract_vdev_extd_stats(wmi_unified_t wmi_handle, void *evt_buf, 3132 uint32_t index, 3133 wmi_host_vdev_extd_stats *vdev_extd_stats); 3134 3135 /** 3136 * wmi_extract_bcn_stats() - extract beacon stats from event 3137 * @wmi_handle: wmi handle 3138 * @evt_buf: pointer to event buffer 3139 * @index: Index into beacon stats 3140 * @vdev_bcn_stats: Pointer to hold beacon stats 3141 * 3142 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3143 */ 3144 QDF_STATUS 3145 wmi_extract_bcn_stats(wmi_unified_t wmi_handle, void *evt_buf, 3146 uint32_t index, wmi_host_bcn_stats *vdev_bcn_stats); 3147 3148 /** 3149 * wmi_extract_vdev_nac_rssi_stats() - extract NAC_RSSI stats from event 3150 * @wmi_handle: wmi handle 3151 * @evt_buf: pointer to event buffer 3152 * @vdev_extd_stats: Pointer to hold nac rssi stats 3153 * 3154 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3155 */ 3156 QDF_STATUS wmi_extract_vdev_nac_rssi_stats( 3157 wmi_unified_t wmi_handle, void *evt_buf, 3158 struct wmi_host_vdev_nac_rssi_event *vdev_nac_rssi_stats); 3159 3160 /** 3161 * wmi_extract_peer_retry_stats() - extract peer retry stats from event 3162 * @wmi_handle: wmi handle 3163 * @evt_buf: pointer to event buffer 3164 * @index: Index into peer retry stats 3165 * @peer_retry_stats: Pointer to hold peer retry stats 3166 * 3167 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3168 */ 3169 QDF_STATUS wmi_extract_peer_retry_stats( 3170 wmi_unified_t wmi_handle, void *evt_buf, 3171 uint32_t index, struct wmi_host_peer_retry_stats *peer_retry_stats); 3172 3173 /** 3174 * wmi_unified_send_power_dbg_cmd() - send power debug commands 3175 * @wmi_handle: wmi handle 3176 * @param: wmi power debug parameter 3177 * 3178 * Send WMI_POWER_DEBUG_CMDID parameters to fw. 3179 * 3180 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 3181 */ 3182 QDF_STATUS wmi_unified_send_power_dbg_cmd(wmi_unified_t wmi_handle, 3183 struct wmi_power_dbg_params *param); 3184 3185 /** 3186 * wmi_extract_sar_cap_service_ready_ext() - extract SAR cap from 3187 * FW service ready event 3188 * @wmi_handle: wmi handle 3189 * @evt_buf: event buffer received from firmware 3190 * @ext_param: extended target info 3191 * 3192 * Return: QDF_STATUS_SUCCESS for success or error code 3193 */ 3194 QDF_STATUS wmi_extract_sar_cap_service_ready_ext( 3195 wmi_unified_t wmi_handle, 3196 uint8_t *evt_buf, 3197 struct wlan_psoc_host_service_ext_param *ext_param); 3198 3199 /** 3200 * wmi_unified_fw_test_cmd() - send fw test command to fw. 3201 * @wmi_handle: wmi handle 3202 * @wmi_fwtest: fw test command 3203 * 3204 * This function sends fw test command to fw. 3205 * 3206 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3207 */ 3208 QDF_STATUS wmi_unified_fw_test_cmd(wmi_unified_t wmi_handle, 3209 struct set_fwtest_params *wmi_fwtest); 3210 3211 /** 3212 * wmi_unified_peer_rx_reorder_queue_setup_send() - send rx reorder queue 3213 * setup command to fw 3214 * @wmi_handle: wmi handle 3215 * @param: Rx reorder queue setup parameters 3216 * 3217 * Return: QDF_STATUS for success and QDF_STATUS_E_FAILURE for failure 3218 */ 3219 QDF_STATUS wmi_unified_peer_rx_reorder_queue_setup_send( 3220 wmi_unified_t wmi_handle, 3221 struct rx_reorder_queue_setup_params *param); 3222 3223 /** 3224 * wmi_unified_peer_rx_reorder_queue_remove_send() - send rx reorder queue 3225 * remove command to fw 3226 * @wmi_handle: wmi handle 3227 * @param: Rx reorder queue remove parameters 3228 * 3229 * Return: QDF_STATUS for success and QDF_STATUS_E_FAILURE for failure 3230 */ 3231 QDF_STATUS wmi_unified_peer_rx_reorder_queue_remove_send( 3232 wmi_unified_t wmi_handle, 3233 struct rx_reorder_queue_remove_params *param); 3234 3235 /* 3236 * wmi_extract_service_ready_ext() - extract extended service ready 3237 * @wmi_handle: wmi handle 3238 * @param: wmi power debug parameter 3239 * 3240 * 3241 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 3242 */ 3243 QDF_STATUS wmi_extract_service_ready_ext( 3244 wmi_unified_t wmi_handle, uint8_t *evt_buf, 3245 struct wlan_psoc_host_service_ext_param *param); 3246 3247 /* 3248 * wmi_extract_service_ready_ext2() - extract extended2 service ready 3249 * @wmi_handle: wmi handle 3250 * @evt_buff: pointer to event buffer 3251 * @param: wmi ext2 base parameters 3252 * 3253 * 3254 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 3255 */ 3256 QDF_STATUS wmi_extract_service_ready_ext2( 3257 struct wmi_unified *wmi_handle, uint8_t *evt_buf, 3258 struct wlan_psoc_host_service_ext2_param *param); 3259 3260 /** 3261 * wmi_extract_hw_mode_cap_service_ready_ext() - 3262 * extract HW mode cap from service ready event 3263 * @wmi_handle: wmi handle 3264 * @evt_buf: pointer to event buffer 3265 * @hw_mode_idx: hw mode idx should be less than num_mode 3266 * @param: Pointer to hold evt buf 3267 * 3268 * Return: QDF_STATUS_SUCCESS for success or error code 3269 */ 3270 QDF_STATUS wmi_extract_hw_mode_cap_service_ready_ext( 3271 wmi_unified_t wmi_handle, 3272 uint8_t *evt_buf, uint8_t hw_mode_idx, 3273 struct wlan_psoc_host_hw_mode_caps *param); 3274 3275 /** 3276 * wmi_extract_mac_phy_cap_service_ready_ext() - 3277 * extract MAC phy cap from service ready event 3278 * @wmi_handle: wmi handle 3279 * @evt_buf: pointer to event buffer 3280 * @hw_mode_id: hw mode id of hw_mode_caps 3281 * @phy_id: phy_id within hw_mode_cap 3282 * @param: pointer to mac phy caps structure to hold the values from event 3283 * 3284 * Return: QDF_STATUS_SUCCESS for success or error code 3285 */ 3286 QDF_STATUS wmi_extract_mac_phy_cap_service_ready_ext( 3287 wmi_unified_t wmi_handle, 3288 uint8_t *evt_buf, 3289 uint8_t hw_mode_id, 3290 uint8_t phy_id, 3291 struct wlan_psoc_host_mac_phy_caps *param); 3292 3293 /** 3294 * wmi_extract_mac_phy_cap_service_ready_ext2() - Extract MAC phy cap from 3295 * service ready ext2 event. 3296 * @wmi_handle: wmi handle 3297 * @evt_buf: pointer to event buffer 3298 * @hw_mode_id: hw mode id of hw_mode_caps 3299 * @phy_id: phy_id within hw_mode_cap 3300 * @phy_idx: index to hw_mode_cap for the given hw_mode_id and phy_id 3301 * @mac_phy_cap: Pointer to mac_phy_cap_ext2 structure 3302 * 3303 * Return: QDF_STATUS_SUCCESS for success or error code 3304 */ 3305 QDF_STATUS wmi_extract_mac_phy_cap_service_ready_ext2( 3306 wmi_unified_t wmi_handle, 3307 uint8_t *evt_buf, 3308 uint8_t hw_mode_id, 3309 uint8_t phy_id, 3310 uint8_t phy_idx, 3311 struct wlan_psoc_host_mac_phy_caps_ext2 *mac_phy_cap); 3312 3313 /** 3314 * wmi_extract_reg_cap_service_ready_ext() - 3315 * extract REG cap from service ready event 3316 * @wmi_handle: wmi handle 3317 * @evt_buf: pointer to event buffer 3318 * @phy_idx: phy idx should be less than num_mode 3319 * @param: Pointer to hold evt buf 3320 * 3321 * Return: QDF_STATUS_SUCCESS for success or error code 3322 */ 3323 QDF_STATUS 3324 wmi_extract_reg_cap_service_ready_ext( 3325 wmi_unified_t wmi_handle, 3326 uint8_t *evt_buf, uint8_t phy_idx, 3327 struct wlan_psoc_host_hal_reg_capabilities_ext *param); 3328 3329 /** 3330 * wmi_extract_dbr_ring_cap_service_ready_ext: Extract direct buffer rx 3331 * capability received through 3332 * extended service ready event 3333 * @wmi_handle: WMI handle 3334 * @evt_buf: Event buffer 3335 * @idx: Index of the module for which capability is received 3336 * @param: Pointer to direct buffer rx ring cap struct 3337 * 3338 * Return: QDF status of operation 3339 */ 3340 QDF_STATUS wmi_extract_dbr_ring_cap_service_ready_ext( 3341 wmi_unified_t wmi_handle, 3342 uint8_t *evt_buf, uint8_t idx, 3343 struct wlan_psoc_host_dbr_ring_caps *param); 3344 3345 /** 3346 * wmi_extract_dbr_ring_cap_service_ready_ext2: Extract direct buffer rx 3347 * capability received through 3348 * extended service ready2 event 3349 * @wmi_handle: WMI handle 3350 * @evt_buf: Event buffer 3351 * @idx: Index of the module for which capability is received 3352 * @param: Pointer to direct buffer rx ring cap struct 3353 * 3354 * Return: QDF status of operation 3355 */ 3356 QDF_STATUS wmi_extract_dbr_ring_cap_service_ready_ext2( 3357 wmi_unified_t wmi_handle, 3358 uint8_t *evt_buf, uint8_t idx, 3359 struct wlan_psoc_host_dbr_ring_caps *param); 3360 3361 /** 3362 * wmi_extract_scan_radio_cap_service_ready_ext2: Extract scan radio capability 3363 * received through extended service ready2 event 3364 * @wmi_handle: WMI handle 3365 * @evt_buf: Event buffer 3366 * @idx: Index of the module for which capability is received 3367 * @param: Pointer to scan radio cap struct 3368 * 3369 * Return: QDF status of operation 3370 */ 3371 QDF_STATUS wmi_extract_scan_radio_cap_service_ready_ext2( 3372 wmi_unified_t wmi_handle, 3373 uint8_t *evt_buf, uint8_t idx, 3374 struct wlan_psoc_host_scan_radio_caps *param); 3375 3376 /** 3377 * wmi_extract_spectral_scaling_params_service_ready_ext: Extract Spectral 3378 * scaling params received through 3379 * extended service ready event 3380 * @wmi_handle: WMI handle 3381 * @evt_buf: Event buffer 3382 * @idx: Index 3383 * @param: Pointer to Spectral scaling params 3384 * 3385 * Return: QDF status of operation 3386 */ 3387 QDF_STATUS wmi_extract_spectral_scaling_params_service_ready_ext( 3388 wmi_unified_t wmi_handle, 3389 uint8_t *evt_buf, uint8_t idx, 3390 struct wlan_psoc_host_spectral_scaling_params *param); 3391 3392 /** 3393 * wmi_extract_pdev_utf_event() - 3394 * extract UTF data from pdev utf event 3395 * @wmi_handle: wmi handle 3396 * @evt_buf: pointer to event buffer 3397 * @param: Pointer to hold evt buf 3398 * 3399 * Return: QDF_STATUS_SUCCESS for success or error code 3400 */ 3401 QDF_STATUS wmi_extract_pdev_utf_event(wmi_unified_t wmi_handle, 3402 uint8_t *evt_buf, 3403 struct wmi_host_pdev_utf_event *param); 3404 3405 /** 3406 * wmi_extract_pdev_qvit_event() - 3407 * extract UTF data from pdev qvit event 3408 * @wmi_handle: wmi handle 3409 * @evt_buf: pointer to event buffer 3410 * @param: Pointer to hold evt buf 3411 * 3412 * Return: QDF_STATUS_SUCCESS for success or error code 3413 */ 3414 QDF_STATUS wmi_extract_pdev_qvit_event(wmi_unified_t wmi_handle, 3415 uint8_t *evt_buf, 3416 struct wmi_host_pdev_qvit_event *param); 3417 3418 #ifdef WLAN_SUPPORT_RF_CHARACTERIZATION 3419 /** 3420 * wmi_extract_num_rf_characterziation_entries - Extract number of RF 3421 * characterization metrics received from the RF characterization event. 3422 * @wmi_hdl: WMI handle 3423 * @evt_buf: Event buffer 3424 * @num_rf_characterization_entries: Number of RF characterization metrics 3425 * 3426 * Return: QDF status of operation 3427 */ 3428 QDF_STATUS wmi_extract_num_rf_characterization_entries(wmi_unified_t wmi_hdl, 3429 uint8_t *evt_buf, 3430 uint32_t *num_rf_characterization_entries); 3431 3432 /** 3433 * wmi_extract_rf_characterziation_entries - Extract RF characterization metrics 3434 * received from the RF characterization event. 3435 * @wmi_hdl: WMI handle 3436 * @evt_buf: Event buffer 3437 * @num_rf_characterization_entries: Number of RF characterization metrics 3438 * @rf_characterization_entries: Pointer to RF characterization metrics 3439 * 3440 * Return: QDF status of operation 3441 */ 3442 QDF_STATUS wmi_extract_rf_characterization_entries(wmi_unified_t wmi_hdl, 3443 uint8_t *evt_buf, 3444 uint32_t num_rf_characterization_entries, 3445 struct wmi_host_rf_characterization_event_param *rf_characterization_entries); 3446 #endif 3447 3448 /* 3449 * wmi_extract_chainmask_tables_tlv() - extract chain mask tables 3450 * @wmi_handle: wmi handle 3451 * @evt_buf: pointer to event buffer. 3452 * @chainmask_table: pointer to struct wlan_psoc_host_chainmask_table 3453 * 3454 * 3455 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 3456 */ 3457 QDF_STATUS wmi_extract_chainmask_tables( 3458 wmi_unified_t wmi_handle, uint8_t *evt_buf, 3459 struct wlan_psoc_host_chainmask_table *chainmask_table); 3460 3461 /** 3462 * wmi_unified_dfs_phyerr_offload_en_cmd() - enable dfs phyerr offload 3463 * @wmi_handle: wmi handle 3464 * @pdev_id: pdev id 3465 * 3466 * Return: QDF_STATUS 3467 */ 3468 QDF_STATUS wmi_unified_dfs_phyerr_offload_en_cmd(wmi_unified_t wmi_handle, 3469 uint32_t pdev_id); 3470 3471 /** 3472 * wmi_unified_dfs_phyerr_offload_dis_cmd() - disable dfs phyerr offload 3473 * @wmi_handle: wmi handle 3474 * @pdev_id: pdev id 3475 * 3476 * Return: QDF_STATUS 3477 */ 3478 QDF_STATUS wmi_unified_dfs_phyerr_offload_dis_cmd(wmi_unified_t wmi_handle, 3479 uint32_t pdev_id); 3480 3481 #ifdef QCA_SUPPORT_AGILE_DFS 3482 /** 3483 * wmi_unified_send_vdev_adfs_ch_cfg_cmd() - send adfs channel config command 3484 * @wmi_handle: wmi handle 3485 * @param: adfs channel config params 3486 * 3487 * Return: QDF_STATUS 3488 */ 3489 QDF_STATUS 3490 wmi_unified_send_vdev_adfs_ch_cfg_cmd(wmi_unified_t wmi_handle, 3491 struct vdev_adfs_ch_cfg_params *param); 3492 3493 /** 3494 * wmi_unified_send_vdev_adfs_ocac_abort_cmd() - send adfs o-cac abort command 3495 * @wmi_handle: wmi handle 3496 * @param: adfs channel o-cac abort params 3497 * 3498 * Return: QDF_STATUS 3499 */ 3500 QDF_STATUS 3501 wmi_unified_send_vdev_adfs_ocac_abort_cmd(wmi_unified_t wmi_handle, 3502 struct vdev_adfs_abort_params *param); 3503 #endif 3504 3505 /** 3506 * wmi_unified_set_country_cmd_send() - WMI set country function 3507 * @wmi_handle : handle to WMI. 3508 * @param : pointer to hold set country cmd parameter 3509 * 3510 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3511 */ 3512 QDF_STATUS wmi_unified_set_country_cmd_send(wmi_unified_t wmi_handle, 3513 struct set_country *param); 3514 3515 #ifdef WLAN_FEATURE_ACTION_OUI 3516 /** 3517 * wmi_unified_send_action_oui_cmd() - send action oui cmd to fw 3518 * @wmi_handle: wma handle 3519 * @req: wmi action oui message to be send 3520 * 3521 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3522 */ 3523 QDF_STATUS 3524 wmi_unified_send_action_oui_cmd(wmi_unified_t wmi_handle, 3525 struct action_oui_request *req); 3526 #endif /* WLAN_FEATURE_ACTION_OUI */ 3527 3528 /** 3529 * wmi_unified_send_request_get_rcpi_cmd() - command to request rcpi value 3530 * @wmi_handle: wma handle 3531 * @get_rcpi_param: rcpi params 3532 * 3533 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3534 */ 3535 QDF_STATUS 3536 wmi_unified_send_request_get_rcpi_cmd(wmi_unified_t wmi_handle, 3537 struct rcpi_req *get_rcpi_param); 3538 3539 /** 3540 * wmi_extract_rcpi_response_event - api to extract RCPI event params 3541 * @wmi_handle: wma handle 3542 * @evt_buf: pointer to event buffer 3543 * @res: pointer to hold rcpi response from firmware 3544 * 3545 * Return: QDF_STATUS_SUCCESS for successful event parse 3546 * else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE 3547 */ 3548 QDF_STATUS 3549 wmi_extract_rcpi_response_event(wmi_unified_t wmi_handle, void *evt_buf, 3550 struct rcpi_res *res); 3551 3552 #ifdef WMI_INTERFACE_EVENT_LOGGING 3553 void wmi_print_cmd_log(wmi_unified_t wmi, uint32_t count, 3554 qdf_abstract_print *print, void *print_priv); 3555 3556 void wmi_print_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count, 3557 qdf_abstract_print *print, void *print_priv); 3558 3559 void wmi_print_mgmt_cmd_log(wmi_unified_t wmi, uint32_t count, 3560 qdf_abstract_print *print, void *print_priv); 3561 3562 void wmi_print_mgmt_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count, 3563 qdf_abstract_print *print, void *print_priv); 3564 3565 void wmi_print_event_log(wmi_unified_t wmi, uint32_t count, 3566 qdf_abstract_print *print, void *print_priv); 3567 3568 void wmi_print_rx_event_log(wmi_unified_t wmi, uint32_t count, 3569 qdf_abstract_print *print, void *print_priv); 3570 3571 void wmi_print_mgmt_event_log(wmi_unified_t wmi, uint32_t count, 3572 qdf_abstract_print *print, void *print_priv); 3573 3574 #endif /* WMI_INTERFACE_EVENT_LOGGING */ 3575 3576 /** 3577 * wmi_unified_send_wds_entry_list_cmd() - WMI function to get list of 3578 * wds entries from FW 3579 * @wmi_handle: wmi handle 3580 * 3581 * Send WMI_PDEV_WDS_ENTRY_LIST_CMDID parameters to fw. 3582 * 3583 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 3584 */ 3585 QDF_STATUS wmi_unified_send_dump_wds_table_cmd(wmi_unified_t wmi_handle); 3586 3587 /** 3588 * wmi_extract_wds_entry - api to extract wds entry 3589 * @wmi_handle: wmi handle 3590 * @evt_buf: pointer to event buffer 3591 * @wds_entry: wds entry 3592 * @idx: index to point wds entry in event buffer 3593 * 3594 * Return: QDF_STATUS_SUCCESS for successful event parse 3595 * else QDF_STATUS_E_INVAL or QDF_STATUS_E_FAILURE 3596 */ 3597 QDF_STATUS 3598 wmi_extract_wds_entry(wmi_unified_t wmi_handle, uint8_t *evt_buf, 3599 struct wdsentry *wds_entry, u_int32_t idx); 3600 3601 /** 3602 * wmi_unified_send_obss_detection_cfg_cmd() - WMI function to send obss 3603 * detection configuration to FW. 3604 * @wmi_handle: wmi handle 3605 * @cfg: obss detection configuration 3606 * 3607 * Send WMI_SAP_OBSS_DETECTION_CFG_CMDID parameters to fw. 3608 * 3609 * Return: QDF_STATUS 3610 */ 3611 3612 QDF_STATUS wmi_unified_send_obss_detection_cfg_cmd( 3613 wmi_unified_t wmi_handle, 3614 struct wmi_obss_detection_cfg_param *cfg); 3615 3616 /** 3617 * wmi_unified_extract_obss_detection_info() - WMI function to extract obss 3618 * detection info from FW. 3619 * @wmi_handle: wmi handle 3620 * @data: event data from firmware 3621 * @info: Pointer to hold obss detection info 3622 * 3623 * This function is used to extract obss info from firmware. 3624 * 3625 * Return: QDF_STATUS 3626 */ 3627 3628 QDF_STATUS wmi_unified_extract_obss_detection_info( 3629 wmi_unified_t wmi_handle, 3630 uint8_t *data, 3631 struct wmi_obss_detect_info *info); 3632 3633 #ifdef WLAN_SUPPORT_GREEN_AP 3634 QDF_STATUS wmi_extract_green_ap_egap_status_info( 3635 wmi_unified_t wmi_hdl, uint8_t *evt_buf, 3636 struct wlan_green_ap_egap_status_info *egap_status_info_params); 3637 #endif 3638 3639 /** 3640 * wmi_unified_send_roam_scan_stats_cmd() - Wrapper to request roam scan stats 3641 * @wmi_handle: wmi handle 3642 * @params: request params 3643 * 3644 * This function is used to send the roam scan stats request command to 3645 * firmware. 3646 * 3647 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3648 */ 3649 QDF_STATUS 3650 wmi_unified_send_roam_scan_stats_cmd(wmi_unified_t wmi_handle, 3651 struct wmi_roam_scan_stats_req *params); 3652 3653 /** 3654 * wmi_extract_roam_scan_stats_res_evt() - API to extract roam scan stats res 3655 * @wmi: wmi handle 3656 * @evt_buf: pointer to the event buffer 3657 * @vdev_id: output pointer to hold vdev id 3658 * @res_param: output pointer to hold extracted memory 3659 * 3660 * Return: QDF_STATUS 3661 */ 3662 QDF_STATUS 3663 wmi_extract_roam_scan_stats_res_evt(wmi_unified_t wmi, void *evt_buf, 3664 uint32_t *vdev_id, 3665 struct wmi_roam_scan_stats_res **res_param); 3666 3667 /** 3668 * wmi_extract_offload_bcn_tx_status_evt() - API to extract bcn tx status event 3669 * @wmi_handle: wmi handle 3670 * @evt_buf: pointer to the event buffer 3671 * @vdev_id: output pointer to hold vdev id 3672 * @tx_status: output pointer to hold bcn tx status 3673 * 3674 * Return: QDF_STATUS 3675 */ 3676 QDF_STATUS 3677 wmi_extract_offload_bcn_tx_status_evt(wmi_unified_t wmi_handle, void *evt_buf, 3678 uint32_t *vdev_id, uint32_t *tx_status); 3679 3680 /* wmi_get_ch_width_from_phy_mode() - convert phy mode to channel width 3681 * @wmi_handle: wmi handle 3682 * @phymode: phy mode 3683 * 3684 * Return: wmi channel width 3685 */ 3686 wmi_host_channel_width wmi_get_ch_width_from_phy_mode( 3687 wmi_unified_t wmi_handle, WMI_HOST_WLAN_PHY_MODE phymode); 3688 3689 #ifdef QCA_SUPPORT_CP_STATS 3690 /** 3691 * wmi_extract_cca_stats() - api to extract congestion stats from event buffer 3692 * @wmi_handle: wma handle 3693 * @evt_buf: event buffer 3694 * @datalen: length of buffer 3695 * @stats: buffer to populated after stats extraction 3696 * 3697 * Return: status of operation 3698 */ 3699 QDF_STATUS wmi_extract_cca_stats(wmi_unified_t wmi_handle, void *evt_buf, 3700 struct wmi_host_congestion_stats *stats); 3701 #endif /* QCA_SUPPORT_CP_STATS */ 3702 3703 #if defined(WLAN_DFS_PARTIAL_OFFLOAD) && defined(HOST_DFS_SPOOF_TEST) 3704 /** 3705 * wmi_unified_dfs_send_avg_params_cmd() - send average radar parameters cmd. 3706 * @wmi_handle: wmi handle 3707 * @params: radar found params 3708 * 3709 * This function passes the average radar parameters to fw 3710 * 3711 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3712 */ 3713 QDF_STATUS 3714 wmi_unified_dfs_send_avg_params_cmd(wmi_unified_t wmi_handle, 3715 struct dfs_radar_found_params *params); 3716 3717 /** 3718 * wmi_extract_dfs_status_from_fw() - extract host dfs status from fw. 3719 * @wmi_handle: wmi handle 3720 * @evt_buf: pointer to event buffer 3721 * @dfs_status_check: pointer to the host dfs status 3722 * 3723 * This function extracts the result of host dfs from fw 3724 * 3725 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3726 */ 3727 QDF_STATUS wmi_extract_dfs_status_from_fw(wmi_unified_t wmi_handle, 3728 void *evt_buf, 3729 uint32_t *dfs_status_check); 3730 #endif 3731 #ifdef OL_ATH_SMART_LOGGING 3732 /** 3733 * wmi_unified_send_smart_logging_enable_cmd() - send smart logging enable cmd 3734 * @wmi_handle: wmi handle 3735 * @param: enable/disable 3736 * 3737 * This function enables/disable the smart logging feature 3738 * 3739 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3740 */ 3741 QDF_STATUS wmi_unified_send_smart_logging_enable_cmd(wmi_unified_t wmi_handle, 3742 uint32_t param); 3743 3744 /** 3745 * wmi_unified_send_smart_logging_fatal_cmd() - send smart logging fatal cmd 3746 * @wmi_handle: wmi handle 3747 * @param: Fatal event 3748 * 3749 * This function sends the smart log fatal events to the FW 3750 * 3751 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3752 */ 3753 QDF_STATUS 3754 wmi_unified_send_smart_logging_fatal_cmd(wmi_unified_t wmi_handle, 3755 struct wmi_debug_fatal_events *param); 3756 3757 /** 3758 * wmi_extract_smartlog_ev() - extract smartlog event info from event 3759 * @wmi_handle: wmi handle 3760 * @evt_buf: pointer to event buffer 3761 * @ev: Pointer to hold fatal events 3762 * 3763 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3764 */ 3765 QDF_STATUS 3766 wmi_extract_smartlog_ev(wmi_unified_t wmi_handle, void *evt_buf, 3767 struct wmi_debug_fatal_events *ev); 3768 3769 #endif /* OL_ATH_SMART_LOGGING */ 3770 3771 /** 3772 * wmi_process_fw_event_worker_thread_ctx() - process in worker thread context 3773 * @wmi_handle: handle to wmi 3774 * @evt_buf: pointer to event buffer 3775 * 3776 * Event process by below function will be in worker thread context. 3777 * Use this method for events which are not critical and not 3778 * handled in protocol stack. 3779 * 3780 * Return: none 3781 */ 3782 void wmi_process_fw_event_worker_thread_ctx(struct wmi_unified *wmi_handle, 3783 void *evt_buf); 3784 3785 /** 3786 * wmi_extract_ctl_failsafe_check_ev_param() - extract ctl failsafe 3787 * status from event 3788 * @wmi_handle: wmi handle 3789 * @evt_buf: pointer to event buffer 3790 * @ev: Pointer to hold ctl status 3791 * 3792 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3793 */ 3794 QDF_STATUS wmi_extract_ctl_failsafe_check_ev_param( 3795 wmi_unified_t wmi_handle, 3796 void *evt_buf, 3797 struct wmi_host_pdev_ctl_failsafe_event *param); 3798 3799 #ifdef OBSS_PD 3800 /** 3801 * wmi_unified_send_obss_spatial_reuse_set_cmd() - send obss pd offset 3802 * @wmi_handle: wmi handle 3803 * @oobss_spatial_reuse_param: Pointer to obsspd min max offset 3804 * 3805 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3806 */ 3807 QDF_STATUS wmi_unified_send_obss_spatial_reuse_set_cmd( 3808 wmi_unified_t wmi_handle, 3809 struct wmi_host_obss_spatial_reuse_set_param *obss_spatial_reuse_param); 3810 3811 /** 3812 * wmi_unified_send_obss_spatial_reuse_set_def_thresh_cmd() - send def thresh 3813 * @wmi_handle: wmi handle 3814 * @thresh: Pointer to def thresh 3815 * 3816 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3817 */ 3818 QDF_STATUS wmi_unified_send_obss_spatial_reuse_set_def_thresh_cmd( 3819 wmi_unified_t wmi_handle, 3820 struct wmi_host_obss_spatial_reuse_set_def_thresh *thresh); 3821 3822 /** 3823 * wmi_unified_send_self_srg_bss_color_bitmap_set_cmd() - Send 64-bit BSS color 3824 * bitmap to be used by SRG based Spatial Reuse feature 3825 * @wmi_handle: wmi handle 3826 * @bitmap_0: lower 32 bits in BSS color bitmap 3827 * @bitmap_1: upper 32 bits in BSS color bitmap 3828 * @pdev_id: pdev ID 3829 * 3830 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3831 */ 3832 QDF_STATUS wmi_unified_send_self_srg_bss_color_bitmap_set_cmd( 3833 wmi_unified_t wmi_handle, uint32_t bitmap_0, 3834 uint32_t bitmap_1, uint8_t pdev_id); 3835 3836 /** 3837 * wmi_unified_send_self_srg_partial_bssid_bitmap_set_cmd() - Send 64-bit 3838 * partial BSSID bitmap to be used by SRG based Spatial Reuse feature 3839 * @wmi_handle: wmi handle 3840 * @bitmap_0: lower 32 bits in partial BSSID bitmap 3841 * @bitmap_1: upper 32 bits in partial BSSID bitmap 3842 * @pdev_id: pdev ID 3843 * 3844 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3845 */ 3846 QDF_STATUS wmi_unified_send_self_srg_partial_bssid_bitmap_set_cmd( 3847 wmi_unified_t wmi_handle, uint32_t bitmap_0, 3848 uint32_t bitmap_1, uint8_t pdev_id); 3849 3850 /** 3851 * wmi_unified_send_self_srg_obss_color_enable_bitmap_cmd() - Send 64-bit BSS 3852 * color enable bitmap to be used by SRG based Spatial Reuse feature to the FW 3853 * @wmi_handle: wmi handle 3854 * @bitmap_0: lower 32 bits in BSS color enable bitmap 3855 * @bitmap_1: upper 32 bits in BSS color enable bitmap 3856 * @pdev_id: pdev ID 3857 * 3858 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3859 */ 3860 QDF_STATUS wmi_unified_send_self_srg_obss_color_enable_bitmap_cmd( 3861 wmi_unified_t wmi_handle, uint32_t bitmap_0, 3862 uint32_t bitmap_1, uint8_t pdev_id); 3863 3864 /** 3865 * wmi_unified_send_self_srg_obss_bssid_enable_bitmap_cmd() - Send 64-bit OBSS 3866 * BSSID enable bitmap to be used by SRG based Spatial Reuse feature to the FW 3867 * @wmi_handle: wmi handle 3868 * @bitmap_0: lower 32 bits in BSSID enable bitmap 3869 * @bitmap_1: upper 32 bits in BSSID enable bitmap 3870 * @pdev_id: pdev ID 3871 * 3872 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3873 */ 3874 QDF_STATUS wmi_unified_send_self_srg_obss_bssid_enable_bitmap_cmd( 3875 wmi_unified_t wmi_handle, uint32_t bitmap_0, 3876 uint32_t bitmap_1, uint8_t pdev_id); 3877 3878 /** 3879 * wmi_unified_send_self_non_srg_obss_color_enable_bitmap_cmd() - Send 64-bit 3880 * BSS color enable bitmap to be used by Non-SRG based Spatial Reuse 3881 * feature to the FW 3882 * @wmi_handle: wmi handle 3883 * @bitmap_0: lower 32 bits in BSS color enable bitmap 3884 * @bitmap_1: upper 32 bits in BSS color enable bitmap 3885 * @pdev_id: pdev ID 3886 * 3887 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3888 */ 3889 QDF_STATUS wmi_unified_send_self_non_srg_obss_color_enable_bitmap_cmd( 3890 wmi_unified_t wmi_handle, uint32_t bitmap_0, 3891 uint32_t bitmap_1, uint8_t pdev_id); 3892 3893 /** 3894 * wmi_unified_send_self_non_srg_obss_bssid_enable_bitmap_cmd() - Send 64-bit 3895 * OBSS BSSID enable bitmap to be used by Non-SRG based Spatial Reuse 3896 * feature to the FW 3897 * @wmi_handle: wmi handle 3898 * @bitmap_0: lower 32 bits in BSSID enable bitmap 3899 * @bitmap_1: upper 32 bits in BSSID enable bitmap 3900 * @pdev_id: pdev ID 3901 * 3902 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 3903 */ 3904 QDF_STATUS wmi_unified_send_self_non_srg_obss_bssid_enable_bitmap_cmd( 3905 wmi_unified_t wmi_handle, uint32_t bitmap_0, 3906 uint32_t bitmap_1, uint8_t pdev_id); 3907 #endif /* OBSS_PD */ 3908 3909 /** 3910 * wmi_convert_pdev_id_host_to_target() - Convert pdev_id from host to target 3911 * defines. For legacy there is not conversion required. Just return pdev_id as 3912 * it is. 3913 * @wmi_handle: wmi handle 3914 * @host_pdev_id: host pdev_id to be converted. 3915 * @target_pdev_id: Output target pdev id. 3916 * 3917 * Return: QDF_STATUS 3918 */ 3919 QDF_STATUS wmi_convert_pdev_id_host_to_target(wmi_unified_t wmi_handle, 3920 uint32_t host_pdev_id, 3921 uint32_t *target_pdev_id); 3922 3923 #ifndef CNSS_GENL 3924 /** 3925 * wmi_convert_pdev_id_target_to_host() - Convert pdev_id from target to host 3926 * defines. For legacy there is not conversion required. Just return pdev_id as 3927 * it is. 3928 * @wmi_handle: wmi handle 3929 * @target_pdev_id: target pdev_id to be converted. 3930 * @host_pdev_id: Output host pdev id. 3931 * 3932 * Return: QDF_STATUS 3933 */ 3934 QDF_STATUS wmi_convert_pdev_id_target_to_host(wmi_unified_t wmi_handle, 3935 uint32_t target_pdev_id, 3936 uint32_t *host_pdev_id); 3937 #endif 3938 3939 /** 3940 * wmi_unified_send_bss_color_change_enable_cmd() - WMI function to send bss 3941 * color change enable to FW. 3942 * @wmi_handle: wmi handle 3943 * @vdev_id: vdev ID 3944 * @enable: enable or disable color change handeling within firmware 3945 * 3946 * Send WMI_BSS_COLOR_CHANGE_ENABLE_CMDID parameters to fw, 3947 * thereby firmware updates bss color when AP announces bss color change. 3948 * 3949 * Return: QDF_STATUS 3950 */ 3951 QDF_STATUS 3952 wmi_unified_send_bss_color_change_enable_cmd(wmi_unified_t wmi_handle, 3953 uint32_t vdev_id, 3954 bool enable); 3955 3956 /** 3957 * wmi_unified_send_obss_color_collision_cfg_cmd() - WMI function to send bss 3958 * color collision detection configuration to FW. 3959 * @wmi_handle: wmi handle 3960 * @cfg: obss color collision detection configuration 3961 * 3962 * Send WMI_OBSS_COLOR_COLLISION_DET_CONFIG_CMDID parameters to fw. 3963 * 3964 * Return: QDF_STATUS 3965 */ 3966 QDF_STATUS wmi_unified_send_obss_color_collision_cfg_cmd( 3967 wmi_unified_t wmi_handle, 3968 struct wmi_obss_color_collision_cfg_param *cfg); 3969 3970 /** 3971 * wmi_unified_extract_obss_color_collision_info() - WMI function to extract 3972 * obss color collision info from FW. 3973 * @wmi_handle: wmi handle 3974 * @data: event data from firmware 3975 * @info: Pointer to hold bss color collision info 3976 * 3977 * This function is used to extract bss collision info from firmware. 3978 * 3979 * Return: QDF_STATUS 3980 */ 3981 QDF_STATUS wmi_unified_extract_obss_color_collision_info( 3982 wmi_unified_t wmi_handle, 3983 uint8_t *data, struct wmi_obss_color_collision_info *info); 3984 3985 #ifdef CRYPTO_SET_KEY_CONVERGED 3986 /** 3987 * wlan_crypto_cipher_to_wmi_cipher() - Convert crypto cipher to WMI cipher 3988 * @crypto_cipher: cipher type in crypto format 3989 * 3990 * Return: cipher type in WMI cipher type 3991 */ 3992 uint8_t wlan_crypto_cipher_to_wmi_cipher( 3993 enum wlan_crypto_cipher_type crypto_cipher); 3994 3995 /** 3996 * wlan_crypto_cipher_to_cdp_sec_type() - Convert crypto cipher to CDP type 3997 * @crypto_cipher: cipher type in crypto format 3998 * 3999 * Return: security type in cdp_sec_type data format type 4000 */ 4001 enum cdp_sec_type wlan_crypto_cipher_to_cdp_sec_type( 4002 enum wlan_crypto_cipher_type crypto_cipher); 4003 4004 #endif 4005 4006 /** 4007 * wmi_unified_send_mws_coex_req_cmd() - WMI function to send coex req cmd 4008 * @wmi_hdl: wmi handle 4009 * @vdev_id: Vdev Id 4010 * @cmd_id: Coex cmd for which info is required 4011 * 4012 * Send wmi coex command to fw. 4013 * 4014 * Return: QDF_STATUS 4015 */ 4016 QDF_STATUS wmi_unified_send_mws_coex_req_cmd(struct wmi_unified *wmi_handle, 4017 uint32_t vdev_id, uint32_t cmd_id); 4018 4019 /** 4020 * wmi_unified_send_idle_trigger_monitor() - send idle trigger monitor command 4021 * @wmi_handle: WMI handle 4022 * @val: idle trigger monitor value - 1 for idle monitor on, 0 for idle monitor 4023 * off 4024 * 4025 * Return: QDF_STATUS_SUCCESS if success, else returns proper error code. 4026 */ 4027 QDF_STATUS 4028 wmi_unified_send_idle_trigger_monitor(wmi_unified_t wmi_handle, uint8_t val); 4029 4030 4031 #ifdef WIFI_POS_CONVERGED 4032 /** 4033 * wmi_extract_oem_response_param() - WMI function to extract OEM response param 4034 * @wmi_hdl: WMI handle 4035 * @resp_buf: Buffer holding response data 4036 * @oem_resp_param: zero-filled structure pointer to hold oem response data 4037 * 4038 * Return: QDF_STATUS_SUCCESS if success, else returns proper error code. 4039 */ 4040 QDF_STATUS 4041 wmi_extract_oem_response_param(wmi_unified_t wmi_hdl, void *resp_buf, 4042 struct wmi_oem_response_param *oem_resp_param); 4043 #endif /* WIFI_POS_CONVERGED */ 4044 /** 4045 * wmi_critical_events_in_flight() - get the number of critical events in flight 4046 * 4047 * @wmi_hdl: WMI handle 4048 * 4049 * Return: the number of critical events in flight. 4050 */ 4051 uint32_t wmi_critical_events_in_flight(struct wmi_unified *wmi); 4052 4053 4054 #ifdef FEATURE_ANI_LEVEL_REQUEST 4055 /** 4056 * wmi_unified_ani_level_cmd_send() - WMI function to send get ani level cmd 4057 * @wmi_hdl: WMI handle 4058 * @freqs: pointer to list of freqs for which ANI levels are to be fetched 4059 * @num_freqs: number of freqs in the above parameter 4060 * 4061 * Return: QDF_STATUS_SUCCESS if success, else returns proper error code. 4062 */ 4063 QDF_STATUS wmi_unified_ani_level_cmd_send(wmi_unified_t wmi_handle, 4064 uint32_t *freqs, 4065 uint8_t num_freqs); 4066 4067 /** 4068 * wmi_unified_extract_ani_level() - WMI function to receive ani level cmd 4069 * @wmi_hdl: WMI handle 4070 * @info: pointer to ANI data received from the FW and stored in HOST 4071 * @num_freqs: number of freqs in the above parameter 4072 * 4073 * Return: QDF_STATUS_SUCCESS if success, else returns proper error code. 4074 */ 4075 QDF_STATUS wmi_unified_extract_ani_level(wmi_unified_t wmi_handle, 4076 uint8_t *data, 4077 struct wmi_host_ani_level_event **info, 4078 uint32_t *num_freqs); 4079 #endif /* FEATURE_ANI_LEVEL_REQUEST */ 4080 4081 #ifdef WLAN_FEATURE_PKT_CAPTURE 4082 /** 4083 * wmi_unified_extract_vdev_mgmt_offload_event() - Extract mgmt offload params 4084 * @wmi: WMI handle 4085 * @evt_buf: Event buffer 4086 * @params: Management offload event params 4087 * 4088 * WMI function to extract management offload event params 4089 * 4090 * Return: QDF_STATUS 4091 */ 4092 QDF_STATUS 4093 wmi_unified_extract_vdev_mgmt_offload_event(wmi_unified_t wmi, void *evt_buf, 4094 struct mgmt_offload_event_params *params); 4095 #endif 4096 4097 #ifdef FEATURE_WLAN_TIME_SYNC_FTM 4098 /** 4099 * wmi_unified_send_wlan_time_sync_ftm_trigger() - send ftm timesync trigger cmd 4100 * @wmi_handle: wmi handle 4101 * @vdev_id: vdev id 4102 * @burst_mode: mode reg getting time sync relation from FW 4103 * 4104 * This function indicates the FW to trigger wlan time sync using FTM 4105 * 4106 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 4107 */ 4108 QDF_STATUS 4109 wmi_unified_send_wlan_time_sync_ftm_trigger(wmi_unified_t wmi_handle, 4110 uint32_t vdev_id, 4111 bool burst_mode); 4112 4113 /** 4114 * wmi_unified_send_wlan_time_sync_qtime() - send ftm time sync qtime cmd. 4115 * @wmi_handle: wmi handle 4116 * @vdev_id: vdev id 4117 * @lpass_ts: audio qtime 4118 * 4119 * This function sends the wmi cmd to FW having audio qtime 4120 * 4121 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 4122 */ 4123 QDF_STATUS 4124 wmi_unified_send_wlan_time_sync_qtime(wmi_unified_t wmi_handle, 4125 uint32_t vdev_id, uint64_t lpass_ts); 4126 4127 /** 4128 * wmi_unified_extract_time_sync_ftm_start_stop_params() - extract FTM time sync 4129 * params 4130 * @wmi_handle: wmi handle 4131 * @evt_buf: event buffer 4132 * @param: params received in start stop ftm timesync event 4133 * 4134 * This function extracts the params from ftm timesync start stop event 4135 * 4136 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 4137 */ 4138 QDF_STATUS 4139 wmi_unified_extract_time_sync_ftm_start_stop_params( 4140 wmi_unified_t wmi_handle, void *evt_buf, 4141 struct ftm_time_sync_start_stop_params *param); 4142 4143 /** 4144 * wmi_unified_extract_time_sync_ftm_offset() - extract timesync FTM offset 4145 * @wmi_handle: wmi handle 4146 * @evt_buf: event buffer 4147 * @param: params received in ftm timesync offset event 4148 * 4149 * This function extracts the params from ftm timesync offset event 4150 * 4151 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 4152 */ 4153 QDF_STATUS 4154 wmi_unified_extract_time_sync_ftm_offset(wmi_unified_t wmi_handle, 4155 void *evt_buf, 4156 struct ftm_time_sync_offset *param); 4157 #endif /* FEATURE_WLAN_TIME_SYNC_FTM */ 4158 4159 /** 4160 * wmi_unified_send_injector_frame_config_cmd() - configure injector frame 4161 * @wmi_handle: wmi handle 4162 * @param: params received in the injector frame configure command 4163 * 4164 * This function configures the AP to send out injector frames 4165 * 4166 * Return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 4167 */ 4168 QDF_STATUS 4169 wmi_unified_send_injector_frame_config_cmd(wmi_unified_t wmi_handle, 4170 struct wmi_host_injector_frame_params *param); 4171 4172 /** 4173 * wmi_unified_send_cp_stats_cmd() - Send cp stats command 4174 * @wmi_handle: wmi handle 4175 * @buf_ptr: buf_ptr received from wifistats 4176 * @buf_len: length of buffer received from wifistats 4177 * 4178 * This function sends cp stats cmd to get cp stats. 4179 * 4180 * Return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 4181 */ 4182 QDF_STATUS wmi_unified_send_cp_stats_cmd(wmi_unified_t wmi_handle, 4183 void *buf_ptr, uint32_t buf_len); 4184 #endif /* _WMI_UNIFIED_API_H_ */ 4185