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