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