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