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