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