1 /* 2 * Copyright (c) 2013-2017 The Linux Foundation. All rights reserved. 3 * 4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc. 5 * 6 * 7 * Permission to use, copy, modify, and/or distribute this software for 8 * any purpose with or without fee is hereby granted, provided that the 9 * above copyright notice and this permission notice appear in all 10 * copies. 11 * 12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 19 * PERFORMANCE OF THIS SOFTWARE. 20 */ 21 22 /* 23 * This file was originally distributed by Qualcomm Atheros, Inc. 24 * under proprietary terms before Copyright ownership was assigned 25 * to the Linux Foundation. 26 */ 27 28 /* 29 * This file contains the API definitions for the Unified Wireless Module 30 * Interface (WMI). 31 */ 32 33 #ifndef _WMI_UNIFIED_API_H_ 34 #define _WMI_UNIFIED_API_H_ 35 36 #include <osdep.h> 37 #include "a_types.h" 38 #ifdef CONFIG_MCL 39 #include "wmi.h" 40 #endif 41 #include "htc_api.h" 42 #include "wmi_unified_param.h" 43 #include "wlan_objmgr_psoc_obj.h" 44 #include "wlan_mgmt_txrx_utils_api.h" 45 #ifdef WLAN_PMO_ENABLE 46 #include "wmi_unified_pmo_api.h" 47 #endif 48 #ifdef CONVERGED_P2P_ENABLE 49 #include "wlan_p2p_public_struct.h" 50 #endif 51 #include "wlan_scan_public_structs.h" 52 53 typedef qdf_nbuf_t wmi_buf_t; 54 #define wmi_buf_data(_buf) qdf_nbuf_data(_buf) 55 56 #define WMI_LOGD(args ...) \ 57 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_DEBUG, ## args) 58 #define WMI_LOGI(args ...) \ 59 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_INFO, ## args) 60 #define WMI_LOGW(args ...) \ 61 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_WARN, ## args) 62 #define WMI_LOGE(args ...) \ 63 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_ERROR, ## args) 64 #define WMI_LOGP(args ...) \ 65 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_FATAL, ## args) 66 67 #define WMI_DEBUG_ALWAYS 68 69 #ifdef WMI_DEBUG_ALWAYS 70 #define WMI_LOGA(args ...) \ 71 QDF_TRACE(QDF_MODULE_ID_WMI, QDF_TRACE_LEVEL_FATAL, ## args) 72 #else 73 #define WMI_LOGA(args ...) 74 #endif 75 76 struct wmi_soc; 77 /** 78 * struct wmi_ops - service callbacks to upper layer 79 * @service_ready_cbk: service ready callback 80 * @service_ready_ext_cbk: service ready ext callback 81 * @ready_cbk: ready calback 82 * @wma_process_fw_event_handler_cbk: generic event handler callback 83 */ 84 struct wmi_rx_ops { 85 86 int (*wma_process_fw_event_handler_cbk)(void *ctx, 87 void *ev, uint8_t rx_ctx); 88 }; 89 90 /** 91 * enum wmi_target_type - type of supported wmi command 92 * @WMI_TLV_TARGET: tlv based target 93 * @WMI_NON_TLV_TARGET: non-tlv based target 94 * 95 */ 96 enum wmi_target_type { 97 WMI_TLV_TARGET, 98 WMI_NON_TLV_TARGET 99 }; 100 101 /** 102 * enum wmi_rx_exec_ctx - wmi rx execution context 103 * @WMI_RX_WORK_CTX: work queue context execution provided by WMI layer 104 * @WMI_RX_UMAC_CTX: execution context provided by umac layer 105 * 106 */ 107 enum wmi_rx_exec_ctx { 108 WMI_RX_WORK_CTX, 109 WMI_RX_UMAC_CTX 110 }; 111 112 /** 113 * attach for unified WMI 114 * 115 * @param scn_handle : handle to SCN. 116 * @param target_type : type of supported wmi command 117 * @param use_cookie : flag to indicate cookie based allocation 118 * @param ops : handle to wmi ops 119 * @psoc : objmgr psoc 120 * @return opaque handle. 121 */ 122 void *wmi_unified_attach(void *scn_handle, 123 osdev_t osdev, enum wmi_target_type target_type, 124 bool use_cookie, struct wmi_rx_ops *ops, 125 struct wlan_objmgr_psoc *psoc); 126 127 128 129 /** 130 * wmi_mgmt_cmd_record() - Wrapper function for mgmt command logging macro 131 * 132 * @wmi_handle: wmi handle 133 * @cmd: mgmt command 134 * @header: pointer to 802.11 header 135 * @vdev_id: vdev id 136 * @chanfreq: channel frequency 137 * 138 * Return: none 139 */ 140 void wmi_mgmt_cmd_record(wmi_unified_t wmi_handle, uint32_t cmd, 141 void *header, uint32_t vdev_id, uint32_t chanfreq); 142 143 /** 144 * detach for unified WMI 145 * 146 * @param wmi_handle : handle to WMI. 147 * @return void. 148 */ 149 void wmi_unified_detach(struct wmi_unified *wmi_handle); 150 151 void 152 wmi_unified_remove_work(struct wmi_unified *wmi_handle); 153 154 /** 155 * generic function to allocate WMI buffer 156 * 157 * @param wmi_handle : handle to WMI. 158 * @param len : length of the buffer 159 * @return wmi_buf_t. 160 */ 161 #ifdef MEMORY_DEBUG 162 #define wmi_buf_alloc(h, l) wmi_buf_alloc_debug(h, l, __FILE__, __LINE__) 163 wmi_buf_t 164 wmi_buf_alloc_debug(wmi_unified_t wmi_handle, uint16_t len, 165 uint8_t *file_name, uint32_t line_num); 166 #else 167 wmi_buf_t wmi_buf_alloc(wmi_unified_t wmi_handle, uint16_t len); 168 #endif 169 170 /** 171 * generic function frees WMI net buffer 172 * 173 * @param net_buf : Pointer ot net_buf to be freed 174 */ 175 void wmi_buf_free(wmi_buf_t net_buf); 176 177 /** 178 * generic function to send unified WMI command 179 * 180 * @param wmi_handle : handle to WMI. 181 * @param buf : wmi command buffer 182 * @param buflen : wmi command buffer length 183 * @param cmd_id : WMI cmd id 184 * @return 0 on success and -ve on failure. 185 */ 186 QDF_STATUS 187 wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, uint32_t buflen, 188 uint32_t cmd_id); 189 190 /** 191 * wmi_unified_register_event() - WMI event handler 192 * registration function for converged components 193 * 194 * @wmi_handle: handle to WMI. 195 * @event_id: WMI event ID 196 * @handler_func: Event handler call back function 197 * 198 * @return 0 on success and -ve on failure. 199 */ 200 int 201 wmi_unified_register_event(wmi_unified_t wmi_handle, 202 uint32_t event_id, 203 wmi_unified_event_handler handler_func); 204 205 /** 206 * wmi_unified_register_event_handler() - WMI event handler 207 * registration function 208 * 209 * @wmi_handle: handle to WMI. 210 * @event_id: WMI event ID 211 * @handler_func: Event handler call back function 212 * @rx_ctx: rx event processing context 213 * 214 * @return 0 on success and -ve on failure. 215 */ 216 int 217 wmi_unified_register_event_handler(wmi_unified_t wmi_handle, 218 uint32_t event_id, 219 wmi_unified_event_handler handler_func, 220 uint8_t rx_ctx); 221 222 /** 223 * WMI event handler unregister function for converged componets 224 * 225 * @param wmi_handle : handle to WMI. 226 * @param event_id : WMI event ID 227 * @return 0 on success and -ve on failure. 228 */ 229 int 230 wmi_unified_unregister_event(wmi_unified_t wmi_handle, 231 uint32_t event_id); 232 233 /** 234 * WMI event handler unregister function 235 * 236 * @param wmi_handle : handle to WMI. 237 * @param event_id : WMI event ID 238 * @return 0 on success and -ve on failure. 239 */ 240 int 241 wmi_unified_unregister_event_handler(wmi_unified_t wmi_handle, 242 uint32_t event_id); 243 244 /** 245 * request wmi to connet its htc service. 246 * @param wmi_handle : handle to WMI. 247 * @param htc_handle : handle to HTC. 248 * @return void 249 */ 250 QDF_STATUS 251 wmi_unified_connect_htc_service(struct wmi_unified *wmi_handle, 252 void *htc_handle); 253 254 /* 255 * WMI API to verify the host has enough credits to suspend 256 * @param wmi_handle : handle to WMI. 257 */ 258 259 int wmi_is_suspend_ready(wmi_unified_t wmi_handle); 260 261 /** 262 * WMI API to get updated host_credits 263 * @param wmi_handle : handle to WMI. 264 */ 265 266 int wmi_get_host_credits(wmi_unified_t wmi_handle); 267 268 /** 269 * WMI API to get WMI Pending Commands in the HTC queue 270 * @param wmi_handle : handle to WMI. 271 */ 272 273 int wmi_get_pending_cmds(wmi_unified_t wmi_handle); 274 275 /** 276 * WMI API to set target suspend state 277 * @param wmi_handle : handle to WMI. 278 * @param val : suspend state boolean 279 */ 280 void wmi_set_target_suspend(wmi_unified_t wmi_handle, bool val); 281 282 /** 283 * WMI API to set bus suspend state 284 * @param wmi_handle: handle to WMI. 285 * @param val: suspend state boolean 286 */ 287 void wmi_set_is_wow_bus_suspended(wmi_unified_t wmi_handle, A_BOOL val); 288 289 /** 290 * WMI API to set crash injection state 291 * @param wmi_handle: handle to WMI. 292 * @param val: crash injection state boolean 293 */ 294 void wmi_tag_crash_inject(wmi_unified_t wmi_handle, A_BOOL flag); 295 296 /** 297 * generic function to block unified WMI command 298 * @param wmi_handle : handle to WMI. 299 * @return 0 on success and -ve on failure. 300 */ 301 int 302 wmi_stop(wmi_unified_t wmi_handle); 303 304 /** 305 * API to flush all the previous packets associated with the wmi endpoint 306 * 307 * @param wmi_handle : handle to WMI. 308 */ 309 void 310 wmi_flush_endpoint(wmi_unified_t wmi_handle); 311 312 /** 313 * wmi_pdev_id_conversion_enable() - API to enable pdev_id conversion in WMI 314 * By default pdev_id conversion is not done in WMI. 315 * This API can be used enable conversion in WMI. 316 * @param wmi_handle : handle to WMI 317 * Return none 318 */ 319 void wmi_pdev_id_conversion_enable(wmi_unified_t wmi_handle); 320 321 /** 322 * API to handle wmi rx event after UMAC has taken care of execution 323 * context 324 * 325 * @param wmi_handle : handle to WMI. 326 * @param evt_buf : wmi event buffer 327 */ 328 void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf); 329 #ifdef FEATURE_RUNTIME_PM 330 void 331 wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val); 332 bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle); 333 #else 334 static inline void 335 wmi_set_runtime_pm_inprogress(wmi_unified_t wmi_handle, bool val) 336 { 337 return; 338 } 339 static inline bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle) 340 { 341 return false; 342 } 343 #endif 344 345 void *wmi_unified_get_soc_handle(struct wmi_unified *wmi_handle); 346 347 void *wmi_unified_get_pdev_handle(struct wmi_soc *soc, uint32_t pdev_idx); 348 349 /** 350 * UMAC Callback to process fw event. 351 * @param wmi_handle : handle to WMI. 352 * @param evt_buf : wmi event buffer 353 */ 354 void wmi_process_fw_event(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf); 355 uint16_t wmi_get_max_msg_len(wmi_unified_t wmi_handle); 356 357 358 QDF_STATUS wmi_unified_vdev_create_send(void *wmi_hdl, 359 uint8_t macaddr[IEEE80211_ADDR_LEN], 360 struct vdev_create_params *param); 361 362 QDF_STATUS wmi_unified_vdev_delete_send(void *wmi_hdl, 363 uint8_t if_id); 364 365 QDF_STATUS wmi_unified_vdev_restart_send(void *wmi_hdl, 366 uint8_t macaddr[IEEE80211_ADDR_LEN], 367 struct vdev_start_params *param); 368 369 QDF_STATUS wmi_unified_vdev_stop_send(void *wmi_hdl, 370 uint8_t vdev_id); 371 372 QDF_STATUS wmi_unified_vdev_up_send(void *wmi_hdl, 373 uint8_t bssid[IEEE80211_ADDR_LEN], 374 struct vdev_up_params *params); 375 376 QDF_STATUS wmi_unified_vdev_down_send(void *wmi_hdl, 377 uint8_t vdev_id); 378 379 QDF_STATUS wmi_unified_vdev_start_send(void *wmi_hdl, 380 struct vdev_start_params *req); 381 382 QDF_STATUS wmi_unified_hidden_ssid_vdev_restart_send(void *wmi_hdl, 383 struct hidden_ssid_vdev_restart_params *restart_params); 384 385 QDF_STATUS wmi_unified_vdev_set_param_send(void *wmi_hdl, 386 struct vdev_set_params *param); 387 388 QDF_STATUS wmi_unified_peer_delete_send(void *wmi_hdl, 389 uint8_t 390 peer_addr[IEEE80211_ADDR_LEN], 391 uint8_t vdev_id); 392 393 QDF_STATUS wmi_unified_peer_flush_tids_send(void *wmi_hdl, 394 uint8_t peer_addr[IEEE80211_ADDR_LEN], 395 struct peer_flush_params *param); 396 397 QDF_STATUS wmi_set_peer_param_send(void *wmi_hdl, 398 uint8_t peer_addr[IEEE80211_ADDR_LEN], 399 struct peer_set_params *param); 400 401 QDF_STATUS wmi_unified_peer_create_send(void *wmi_hdl, 402 struct peer_create_params *param); 403 404 QDF_STATUS wmi_unified_stats_request_send(void *wmi_hdl, 405 uint8_t macaddr[IEEE80211_ADDR_LEN], 406 struct stats_request_params *param); 407 408 QDF_STATUS wmi_unified_green_ap_ps_send(void *wmi_hdl, 409 uint32_t value, uint8_t mac_id); 410 411 412 QDF_STATUS wmi_unified_wow_enable_send(void *wmi_hdl, 413 struct wow_cmd_params *param, 414 uint8_t mac_id); 415 416 QDF_STATUS wmi_unified_wow_wakeup_send(void *wmi_hdl); 417 418 QDF_STATUS wmi_unified_wow_add_wakeup_event_send(void *wmi_hdl, 419 struct wow_add_wakeup_params *param); 420 421 QDF_STATUS wmi_unified_wow_add_wakeup_pattern_send(void *wmi_hdl, 422 struct wow_add_wakeup_pattern_params *param); 423 424 QDF_STATUS wmi_unified_wow_remove_wakeup_pattern_send(void *wmi_hdl, 425 struct wow_remove_wakeup_pattern_params *param); 426 427 #ifndef CONFIG_MCL 428 QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl, 429 WMI_HOST_PKTLOG_EVENT PKTLOG_EVENT); 430 #else 431 QDF_STATUS wmi_unified_packet_log_enable_send(void *wmi_hdl, 432 uint8_t macaddr[IEEE80211_ADDR_LEN], 433 struct packet_enable_params *param); 434 #endif 435 436 QDF_STATUS wmi_unified_packet_log_disable_send(void *wmi_hdl); 437 438 QDF_STATUS wmi_unified_suspend_send(void *wmi_hdl, 439 struct suspend_params *param, 440 uint8_t mac_id); 441 442 QDF_STATUS wmi_unified_resume_send(void *wmi_hdl, 443 uint8_t mac_id); 444 445 QDF_STATUS 446 wmi_unified_pdev_param_send(void *wmi_hdl, 447 struct pdev_params *param, 448 uint8_t mac_id); 449 450 QDF_STATUS wmi_unified_beacon_tmpl_send_cmd(void *wmi_hdl, 451 struct beacon_tmpl_params *param); 452 453 454 QDF_STATUS wmi_unified_beacon_send_cmd(void *wmi_hdl, 455 struct beacon_params *param); 456 457 QDF_STATUS wmi_unified_peer_assoc_send(void *wmi_hdl, 458 struct peer_assoc_params *param); 459 460 QDF_STATUS wmi_unified_sta_ps_cmd_send(void *wmi_hdl, 461 struct sta_ps_params *param); 462 463 QDF_STATUS wmi_unified_ap_ps_cmd_send(void *wmi_hdl, 464 uint8_t macaddr[IEEE80211_ADDR_LEN], 465 struct ap_ps_params *param); 466 467 QDF_STATUS wmi_unified_scan_start_cmd_send(void *wmi_hdl, 468 struct scan_req_params *param); 469 470 QDF_STATUS wmi_unified_scan_stop_cmd_send(void *wmi_hdl, 471 struct scan_cancel_param *param); 472 473 QDF_STATUS wmi_unified_scan_chan_list_cmd_send(void *wmi_hdl, 474 struct scan_chan_list_params *param); 475 476 477 QDF_STATUS wmi_crash_inject(void *wmi_hdl, 478 struct crash_inject *param); 479 480 QDF_STATUS wmi_unified_pdev_utf_cmd_send(void *wmi_hdl, 481 struct pdev_utf_params *param, 482 uint8_t mac_id); 483 484 QDF_STATUS wmi_unified_dbglog_cmd_send(void *wmi_hdl, 485 struct dbglog_params *param); 486 487 QDF_STATUS wmi_mgmt_unified_cmd_send(void *wmi_hdl, 488 struct wmi_mgmt_params *param); 489 490 QDF_STATUS wmi_offchan_data_tx_cmd_send(void *wmi_hdl, 491 struct wmi_offchan_data_tx_params *param); 492 493 QDF_STATUS wmi_unified_modem_power_state(void *wmi_hdl, 494 uint32_t param_value); 495 496 QDF_STATUS wmi_unified_set_sta_ps_mode(void *wmi_hdl, 497 uint32_t vdev_id, uint8_t val); 498 QDF_STATUS 499 wmi_unified_set_sta_uapsd_auto_trig_cmd(void *wmi_hdl, 500 struct sta_uapsd_trig_params *param); 501 502 QDF_STATUS wmi_unified_get_temperature(void *wmi_hdl); 503 504 QDF_STATUS wmi_unified_set_p2pgo_oppps_req(void *wmi_hdl, 505 struct p2p_ps_params *oppps); 506 507 QDF_STATUS wmi_unified_set_p2pgo_noa_req_cmd(void *wmi_hdl, 508 struct p2p_ps_params *noa); 509 510 #ifdef CONVERGED_P2P_ENABLE 511 QDF_STATUS wmi_unified_p2p_lo_start_cmd(void *wmi_hdl, 512 struct p2p_lo_start *param); 513 514 QDF_STATUS wmi_unified_p2p_lo_stop_cmd(void *wmi_hdl, uint8_t vdev_id); 515 #endif 516 517 QDF_STATUS wmi_unified_set_smps_params(void *wmi_hdl, uint8_t vdev_id, 518 int value); 519 520 QDF_STATUS wmi_unified_set_mimops(void *wmi_hdl, uint8_t vdev_id, int value); 521 522 QDF_STATUS wmi_unified_ocb_set_utc_time(void *wmi_hdl, 523 struct ocb_utc_param *utc); 524 525 QDF_STATUS wmi_unified_ocb_start_timing_advert(void *wmi_hdl, 526 struct ocb_timing_advert_param *timing_advert); 527 528 QDF_STATUS wmi_unified_ocb_stop_timing_advert(void *wmi_hdl, 529 struct ocb_timing_advert_param *timing_advert); 530 531 QDF_STATUS wmi_unified_ocb_set_config(void *wmi_hdl, 532 struct ocb_config_param *config, uint32_t *ch_mhz); 533 534 QDF_STATUS wmi_unified_ocb_get_tsf_timer(void *wmi_hdl, 535 uint8_t vdev_id); 536 537 QDF_STATUS wmi_unified_lro_config_cmd(void *wmi_hdl, 538 struct wmi_lro_config_cmd_t *wmi_lro_cmd); 539 540 QDF_STATUS wmi_unified_set_thermal_mgmt_cmd(void *wmi_hdl, 541 struct thermal_cmd_params *thermal_info); 542 543 QDF_STATUS wmi_unified_peer_rate_report_cmd(void *wmi_hdl, 544 struct wmi_peer_rate_report_params *rate_report_params); 545 546 QDF_STATUS wmi_unified_set_mcc_channel_time_quota_cmd 547 (void *wmi_hdl, 548 uint32_t adapter_1_chan_freq, 549 uint32_t adapter_1_quota, uint32_t adapter_2_chan_freq); 550 551 QDF_STATUS wmi_unified_set_mcc_channel_time_latency_cmd 552 (void *wmi_hdl, 553 uint32_t mcc_channel_freq, uint32_t mcc_channel_time_latency); 554 555 QDF_STATUS wmi_unified_set_enable_disable_mcc_adaptive_scheduler_cmd( 556 void *wmi_hdl, uint32_t mcc_adaptive_scheduler, 557 uint32_t pdev_id); 558 559 #ifdef CONFIG_MCL 560 QDF_STATUS wmi_unified_bcn_buf_ll_cmd(void *wmi_hdl, 561 wmi_bcn_send_from_host_cmd_fixed_param *param); 562 #endif 563 564 QDF_STATUS wmi_unified_set_sta_sa_query_param_cmd(void *wmi_hdl, 565 uint8_t vdev_id, uint32_t max_retries, 566 uint32_t retry_interval); 567 568 569 QDF_STATUS wmi_unified_set_sta_keep_alive_cmd(void *wmi_hdl, 570 struct sta_params *params); 571 572 QDF_STATUS wmi_unified_vdev_set_gtx_cfg_cmd(void *wmi_hdl, uint32_t if_id, 573 struct wmi_gtx_config *gtx_info); 574 575 #ifdef CONFIG_MCL 576 QDF_STATUS wmi_unified_process_update_edca_param(void *wmi_hdl, 577 uint8_t vdev_id, 578 wmi_wmm_vparams gwmm_param[WMI_MAX_NUM_AC]); 579 #endif 580 581 582 QDF_STATUS wmi_unified_probe_rsp_tmpl_send_cmd(void *wmi_hdl, 583 uint8_t vdev_id, 584 struct wmi_probe_resp_params *probe_rsp_info, 585 uint8_t *frm); 586 587 QDF_STATUS wmi_unified_setup_install_key_cmd(void *wmi_hdl, 588 struct set_key_params *key_params); 589 590 QDF_STATUS wmi_unified_encrypt_decrypt_send_cmd(void *wmi_hdl, 591 struct encrypt_decrypt_req_params *params); 592 593 QDF_STATUS wmi_unified_p2p_go_set_beacon_ie_cmd(void *wmi_hdl, 594 A_UINT32 vdev_id, uint8_t *p2p_ie); 595 596 597 QDF_STATUS wmi_unified_set_gateway_params_cmd(void *wmi_hdl, 598 struct gateway_update_req_param *req); 599 600 QDF_STATUS wmi_unified_set_rssi_monitoring_cmd(void *wmi_hdl, 601 struct rssi_monitor_param *req); 602 603 QDF_STATUS wmi_unified_scan_probe_setoui_cmd(void *wmi_hdl, 604 struct scan_mac_oui *psetoui); 605 606 QDF_STATUS wmi_unified_reset_passpoint_network_list_cmd(void *wmi_hdl, 607 struct wifi_passpoint_req_param *req); 608 609 QDF_STATUS wmi_unified_set_passpoint_network_list_cmd(void *wmi_hdl, 610 struct wifi_passpoint_req_param *req); 611 612 #ifdef CONFIG_MCL 613 QDF_STATUS wmi_unified_roam_scan_offload_mode_cmd(void *wmi_hdl, 614 wmi_start_scan_cmd_fixed_param *scan_cmd_fp, 615 struct roam_offload_scan_params *roam_req); 616 #endif 617 618 QDF_STATUS wmi_unified_roam_scan_offload_rssi_thresh_cmd(void *wmi_hdl, 619 struct roam_offload_scan_rssi_params *roam_req); 620 621 QDF_STATUS wmi_unified_roam_scan_filter_cmd(void *wmi_hdl, 622 struct roam_scan_filter_params *roam_req); 623 624 QDF_STATUS wmi_unified_set_epno_network_list_cmd(void *wmi_hdl, 625 struct wifi_enhanched_pno_params *req); 626 627 QDF_STATUS wmi_unified_ipa_offload_control_cmd(void *wmi_hdl, 628 struct ipa_offload_control_params *ipa_offload); 629 630 QDF_STATUS wmi_unified_extscan_get_capabilities_cmd(void *wmi_hdl, 631 struct extscan_capabilities_params *pgetcapab); 632 633 QDF_STATUS wmi_unified_extscan_get_cached_results_cmd(void *wmi_hdl, 634 struct extscan_cached_result_params *pcached_results); 635 636 637 QDF_STATUS wmi_unified_extscan_stop_change_monitor_cmd(void *wmi_hdl, 638 struct extscan_capabilities_reset_params *reset_req); 639 640 641 QDF_STATUS wmi_unified_extscan_start_change_monitor_cmd(void *wmi_hdl, 642 struct extscan_set_sig_changereq_params * 643 psigchange); 644 645 QDF_STATUS wmi_unified_extscan_stop_hotlist_monitor_cmd(void *wmi_hdl, 646 struct extscan_bssid_hotlist_reset_params *photlist_reset); 647 648 QDF_STATUS wmi_unified_stop_extscan_cmd(void *wmi_hdl, 649 struct extscan_stop_req_params *pstopcmd); 650 651 QDF_STATUS wmi_unified_start_extscan_cmd(void *wmi_hdl, 652 struct wifi_scan_cmd_req_params *pstart); 653 654 QDF_STATUS wmi_unified_plm_stop_cmd(void *wmi_hdl, 655 const struct plm_req_params *plm); 656 657 QDF_STATUS wmi_unified_plm_start_cmd(void *wmi_hdl, 658 const struct plm_req_params *plm, 659 uint32_t *gchannel_list); 660 661 QDF_STATUS wmi_unified_pno_stop_cmd(void *wmi_hdl, uint8_t vdev_id); 662 663 #ifdef FEATURE_WLAN_SCAN_PNO 664 QDF_STATUS wmi_unified_pno_start_cmd(void *wmi_hdl, 665 struct pno_scan_req_params *pno); 666 #endif 667 668 QDF_STATUS wmi_unified_set_ric_req_cmd(void *wmi_hdl, void *msg, 669 uint8_t is_add_ts); 670 671 QDF_STATUS wmi_unified_process_ll_stats_clear_cmd 672 (void *wmi_hdl, const struct ll_stats_clear_params *clear_req, 673 uint8_t addr[IEEE80211_ADDR_LEN]); 674 675 QDF_STATUS wmi_unified_process_ll_stats_set_cmd 676 (void *wmi_hdl, const struct ll_stats_set_params *set_req); 677 678 QDF_STATUS wmi_unified_process_ll_stats_get_cmd 679 (void *wmi_hdl, const struct ll_stats_get_params *get_req, 680 uint8_t addr[IEEE80211_ADDR_LEN]); 681 682 QDF_STATUS wmi_unified_get_stats_cmd(void *wmi_hdl, 683 struct pe_stats_req *get_stats_param, 684 uint8_t addr[IEEE80211_ADDR_LEN]); 685 686 /** 687 * wmi_unified_congestion_request_cmd() - send request to fw to get CCA 688 * @wmi_hdl: wma handle 689 * @vdev_id: vdev id 690 * 691 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 692 */ 693 QDF_STATUS wmi_unified_congestion_request_cmd(void *wmi_hdl, 694 uint8_t vdev_id); 695 696 QDF_STATUS wmi_unified_snr_request_cmd(void *wmi_hdl); 697 698 QDF_STATUS wmi_unified_snr_cmd(void *wmi_hdl, uint8_t vdev_id); 699 700 QDF_STATUS wmi_unified_link_status_req_cmd(void *wmi_hdl, 701 struct link_status_params *link_status); 702 703 #ifdef CONFIG_MCL 704 QDF_STATUS wmi_unified_process_dhcp_ind(void *wmi_hdl, 705 wmi_peer_set_param_cmd_fixed_param *ta_dhcp_ind); 706 707 QDF_STATUS wmi_unified_get_link_speed_cmd(void *wmi_hdl, 708 wmi_mac_addr peer_macaddr); 709 710 QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl, 711 wmi_ap_ps_egap_param_cmd_fixed_param *egap_params); 712 713 #endif 714 715 QDF_STATUS wmi_unified_fw_profiling_data_cmd(void *wmi_hdl, 716 uint32_t cmd, uint32_t value1, uint32_t value2); 717 718 QDF_STATUS wmi_unified_nat_keepalive_en_cmd(void *wmi_hdl, uint8_t vdev_id); 719 720 QDF_STATUS wmi_unified_csa_offload_enable(void *wmi_hdl, uint8_t vdev_id); 721 722 QDF_STATUS wmi_unified_start_oem_data_cmd(void *wmi_hdl, 723 uint32_t data_len, 724 uint8_t *data); 725 726 QDF_STATUS wmi_unified_dfs_phyerr_filter_offload_en_cmd(void *wmi_hdl, 727 bool dfs_phyerr_filter_offload); 728 729 #ifdef CONFIG_MCL 730 QDF_STATUS wmi_unified_pktlog_wmi_send_cmd(void *wmi_hdl, 731 WMI_PKTLOG_EVENT pktlog_event, 732 uint32_t cmd_id, 733 uint8_t user_triggered); 734 #endif 735 736 QDF_STATUS wmi_unified_wow_delete_pattern_cmd(void *wmi_hdl, uint8_t ptrn_id, 737 uint8_t vdev_id); 738 739 QDF_STATUS wmi_unified_host_wakeup_ind_to_fw_cmd(void *wmi_hdl); 740 QDF_STATUS wmi_unified_del_ts_cmd(void *wmi_hdl, uint8_t vdev_id, 741 uint8_t ac); 742 743 QDF_STATUS wmi_unified_aggr_qos_cmd(void *wmi_hdl, 744 struct aggr_add_ts_param *aggr_qos_rsp_msg); 745 746 QDF_STATUS wmi_unified_add_ts_cmd(void *wmi_hdl, 747 struct add_ts_param *msg); 748 749 QDF_STATUS wmi_unified_process_add_periodic_tx_ptrn_cmd(void *wmi_hdl, 750 struct periodic_tx_pattern * 751 pAddPeriodicTxPtrnParams, 752 uint8_t vdev_id); 753 754 QDF_STATUS wmi_unified_process_del_periodic_tx_ptrn_cmd(void *wmi_hdl, 755 uint8_t vdev_id, 756 uint8_t pattern_id); 757 758 QDF_STATUS wmi_unified_stats_ext_req_cmd(void *wmi_hdl, 759 struct stats_ext_params *preq); 760 761 QDF_STATUS wmi_unified_enable_ext_wow_cmd(void *wmi_hdl, 762 struct ext_wow_params *params); 763 764 QDF_STATUS wmi_unified_set_app_type2_params_in_fw_cmd(void *wmi_hdl, 765 struct app_type2_params *appType2Params); 766 767 QDF_STATUS wmi_unified_set_auto_shutdown_timer_cmd(void *wmi_hdl, 768 uint32_t timer_val); 769 770 QDF_STATUS wmi_unified_nan_req_cmd(void *wmi_hdl, 771 struct nan_req_params *nan_req); 772 773 QDF_STATUS wmi_unified_process_dhcpserver_offload_cmd(void *wmi_hdl, 774 struct dhcp_offload_info_params *pDhcpSrvOffloadInfo); 775 776 QDF_STATUS wmi_unified_process_ch_avoid_update_cmd(void *wmi_hdl); 777 778 QDF_STATUS wmi_unified_send_regdomain_info_to_fw_cmd(void *wmi_hdl, 779 uint32_t reg_dmn, uint16_t regdmn2G, 780 uint16_t regdmn5G, int8_t ctl2G, 781 int8_t ctl5G); 782 783 QDF_STATUS wmi_unified_set_tdls_offchan_mode_cmd(void *wmi_hdl, 784 struct tdls_channel_switch_params *chan_switch_params); 785 786 QDF_STATUS wmi_unified_update_fw_tdls_state_cmd(void *wmi_hdl, 787 void *tdls_param, uint8_t tdls_state); 788 789 QDF_STATUS wmi_unified_update_tdls_peer_state_cmd(void *wmi_hdl, 790 struct tdls_peer_state_params *peerStateParams, 791 uint32_t *ch_mhz); 792 793 QDF_STATUS wmi_unified_process_fw_mem_dump_cmd(void *wmi_hdl, 794 struct fw_dump_req_param *mem_dump_req); 795 796 QDF_STATUS wmi_unified_process_set_ie_info_cmd(void *wmi_hdl, 797 struct vdev_ie_info_param *ie_info); 798 799 QDF_STATUS wmi_unified_ocb_set_utc_time_cmd(void *wmi_hdl, 800 struct ocb_utc_param *utc); 801 802 QDF_STATUS wmi_unified_dcc_get_stats_cmd(void *wmi_hdl, 803 struct dcc_get_stats_param *get_stats_param); 804 805 QDF_STATUS wmi_unified_dcc_clear_stats(void *wmi_hdl, 806 uint32_t vdev_id, uint32_t dcc_stats_bitmap); 807 808 QDF_STATUS wmi_unified_dcc_update_ndl(void *wmi_hdl, 809 struct dcc_update_ndl_param *update_ndl_param); 810 811 QDF_STATUS wmi_unified_save_fw_version_cmd(void *wmi_hdl, 812 void *evt_buf); 813 814 #ifdef CONFIG_MCL 815 QDF_STATUS wmi_unified_send_init_cmd(void *wmi_hdl, 816 wmi_resource_config *res_cfg, 817 uint8_t num_mem_chunks, struct wmi_host_mem_chunk *mem_chunk, 818 bool action); 819 #endif 820 821 QDF_STATUS wmi_unified_send_saved_init_cmd(void *wmi_hdl); 822 823 QDF_STATUS wmi_unified_set_base_macaddr_indicate_cmd(void *wmi_hdl, 824 uint8_t *custom_addr); 825 826 QDF_STATUS wmi_unified_log_supported_evt_cmd(void *wmi_hdl, 827 uint8_t *event, 828 uint32_t len); 829 830 QDF_STATUS wmi_unified_enable_specific_fw_logs_cmd(void *wmi_hdl, 831 struct wmi_wifi_start_log *start_log); 832 833 QDF_STATUS wmi_unified_flush_logs_to_fw_cmd(void *wmi_hdl); 834 835 QDF_STATUS wmi_unified_pdev_set_pcl_cmd(void *wmi_hdl, 836 struct wmi_pcl_chan_weights *msg); 837 838 QDF_STATUS wmi_unified_soc_set_hw_mode_cmd(void *wmi_hdl, 839 uint32_t hw_mode_index); 840 841 QDF_STATUS wmi_unified_pdev_set_dual_mac_config_cmd(void *wmi_hdl, 842 struct wmi_dual_mac_config *msg); 843 844 QDF_STATUS wmi_unified_set_led_flashing_cmd(void *wmi_hdl, 845 struct flashing_req_params *flashing); 846 847 QDF_STATUS wmi_unified_app_type1_params_in_fw_cmd(void *wmi_hdl, 848 struct app_type1_params *app_type1_params); 849 850 QDF_STATUS wmi_unified_set_ssid_hotlist_cmd(void *wmi_hdl, 851 struct ssid_hotlist_request_params *request); 852 853 QDF_STATUS wmi_unified_roam_synch_complete_cmd(void *wmi_hdl, 854 uint8_t vdev_id); 855 856 QDF_STATUS wmi_unified_unit_test_cmd(void *wmi_hdl, 857 struct wmi_unit_test_cmd *wmi_utest); 858 859 QDF_STATUS wmi_unified_roam_invoke_cmd(void *wmi_hdl, 860 struct wmi_roam_invoke_cmd *roaminvoke, 861 uint32_t ch_hz); 862 863 QDF_STATUS wmi_unified_roam_scan_offload_cmd(void *wmi_hdl, 864 uint32_t command, uint32_t vdev_id); 865 866 #ifdef CONFIG_MCL 867 QDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd(void *wmi_hdl, 868 wmi_ap_profile *ap_profile_p, 869 uint32_t vdev_id); 870 #endif 871 872 QDF_STATUS wmi_unified_roam_scan_offload_scan_period(void *wmi_hdl, 873 uint32_t scan_period, 874 uint32_t scan_age, 875 uint32_t vdev_id); 876 877 QDF_STATUS wmi_unified_roam_scan_offload_chan_list_cmd(void *wmi_hdl, 878 uint8_t chan_count, 879 uint32_t *chan_list, 880 uint8_t list_type, uint32_t vdev_id); 881 882 QDF_STATUS wmi_unified_roam_scan_offload_rssi_change_cmd(void *wmi_hdl, 883 uint32_t vdev_id, 884 int32_t rssi_change_thresh, 885 uint32_t bcn_rssi_weight, 886 uint32_t hirssi_delay_btw_scans); 887 888 /** 889 * wmi_unified_set_per_roam_config() - set PER roam config in FW 890 * @wmi_hdl: wmi handle 891 * @req_buf: per roam config request buffer 892 * 893 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 894 */ 895 QDF_STATUS wmi_unified_set_per_roam_config(void *wmi_hdl, 896 struct wmi_per_roam_config_req *req_buf); 897 898 QDF_STATUS wmi_unified_get_buf_extscan_hotlist_cmd(void *wmi_hdl, 899 struct ext_scan_setbssi_hotlist_params * 900 photlist, int *buf_len); 901 902 /** 903 * wmi_unified_set_active_bpf_mode_cmd() - config active BPF mode in FW 904 * @wmi_hdl: the WMI handle 905 * @vdev_id: the Id of the vdev to apply the configuration to 906 * @ucast_mode: the active BPF mode to configure for unicast packets 907 * @mcast_bcast_mode: the active BPF mode to configure for multicast/broadcast 908 * packets 909 */ 910 QDF_STATUS wmi_unified_set_active_bpf_mode_cmd(void *wmi_hdl, 911 uint8_t vdev_id, 912 enum wmi_host_active_bpf_mode ucast_mode, 913 enum wmi_host_active_bpf_mode mcast_bcast_mode); 914 915 QDF_STATUS wmi_unified_stats_request_send(void *wmi_hdl, 916 uint8_t macaddr[IEEE80211_ADDR_LEN], 917 struct stats_request_params *param); 918 919 QDF_STATUS wmi_unified_pdev_get_tpc_config_cmd_send(void *wmi_hdl, 920 uint32_t param); 921 922 QDF_STATUS wmi_unified_set_bwf_cmd_send(void *wmi_hdl, 923 struct set_bwf_params *param); 924 925 QDF_STATUS wmi_send_get_user_position_cmd(void *wmi_hdl, uint32_t value); 926 927 QDF_STATUS wmi_send_get_peer_mumimo_tx_count_cmd(void *wmi_hdl, uint32_t value); 928 929 QDF_STATUS wmi_send_reset_peer_mumimo_tx_count_cmd(void *wmi_hdl, 930 uint32_t value); 931 932 QDF_STATUS wmi_send_pdev_caldata_version_check_cmd(void *wmi_hdl, 933 uint32_t value); 934 935 QDF_STATUS wmi_unified_send_btcoex_wlan_priority_cmd(void *wmi_hdl, 936 struct btcoex_cfg_params *param); 937 938 QDF_STATUS wmi_unified_send_btcoex_duty_cycle_cmd(void *wmi_hdl, 939 struct btcoex_cfg_params *param); 940 941 QDF_STATUS wmi_unified_send_coex_ver_cfg_cmd(void *wmi_hdl, 942 coex_ver_cfg_t *param); 943 944 QDF_STATUS wmi_unified_send_coex_config_cmd(void *wmi_hdl, 945 struct coex_config_params *param); 946 947 QDF_STATUS wmi_unified_set_atf_cmd_send(void *wmi_hdl, 948 struct set_atf_params *param); 949 950 QDF_STATUS wmi_unified_pdev_fips_cmd_send(void *wmi_hdl, 951 struct fips_params *param); 952 953 QDF_STATUS wmi_unified_wlan_profile_enable_cmd_send(void *wmi_hdl, 954 struct wlan_profile_params *param); 955 956 QDF_STATUS wmi_unified_wlan_profile_trigger_cmd_send(void *wmi_hdl, 957 struct wlan_profile_params *param); 958 959 QDF_STATUS wmi_unified_set_chan_cmd_send(void *wmi_hdl, 960 struct channel_param *param); 961 962 QDF_STATUS wmi_unified_set_ht_ie_cmd_send(void *wmi_hdl, 963 struct ht_ie_params *param); 964 965 QDF_STATUS wmi_unified_set_vht_ie_cmd_send(void *wmi_hdl, 966 struct vht_ie_params *param); 967 968 QDF_STATUS wmi_unified_wmm_update_cmd_send(void *wmi_hdl, 969 struct wmm_update_params *param); 970 971 QDF_STATUS wmi_unified_set_ant_switch_tbl_cmd_send(void *wmi_hdl, 972 struct ant_switch_tbl_params *param); 973 974 QDF_STATUS wmi_unified_set_ratepwr_table_cmd_send(void *wmi_hdl, 975 struct ratepwr_table_params *param); 976 977 QDF_STATUS wmi_unified_get_ratepwr_table_cmd_send(void *wmi_hdl); 978 979 QDF_STATUS wmi_unified_set_ctl_table_cmd_send(void *wmi_hdl, 980 struct ctl_table_params *param); 981 982 QDF_STATUS wmi_unified_set_mimogain_table_cmd_send(void *wmi_hdl, 983 struct mimogain_table_params *param); 984 985 QDF_STATUS wmi_unified_set_ratepwr_chainmsk_cmd_send(void *wmi_hdl, 986 struct ratepwr_chainmsk_params *param); 987 988 QDF_STATUS wmi_unified_set_macaddr_cmd_send(void *wmi_hdl, 989 struct macaddr_params *param); 990 991 QDF_STATUS wmi_unified_pdev_scan_start_cmd_send(void *wmi_hdl); 992 993 QDF_STATUS wmi_unified_pdev_scan_end_cmd_send(void *wmi_hdl); 994 995 QDF_STATUS wmi_unified_set_acparams_cmd_send(void *wmi_hdl, 996 struct acparams_params *param); 997 998 QDF_STATUS wmi_unified_set_vap_dscp_tid_map_cmd_send(void *wmi_hdl, 999 struct vap_dscp_tid_map_params *param); 1000 1001 QDF_STATUS wmi_unified_proxy_ast_reserve_cmd_send(void *wmi_hdl, 1002 struct proxy_ast_reserve_params *param); 1003 1004 QDF_STATUS wmi_unified_pdev_qvit_cmd_send(void *wmi_hdl, 1005 struct pdev_qvit_params *param); 1006 1007 QDF_STATUS wmi_unified_mcast_group_update_cmd_send(void *wmi_hdl, 1008 struct mcast_group_update_params *param); 1009 1010 QDF_STATUS wmi_unified_peer_add_wds_entry_cmd_send(void *wmi_hdl, 1011 struct peer_add_wds_entry_params *param); 1012 1013 QDF_STATUS wmi_unified_peer_del_wds_entry_cmd_send(void *wmi_hdl, 1014 struct peer_del_wds_entry_params *param); 1015 1016 QDF_STATUS wmi_unified_peer_update_wds_entry_cmd_send(void *wmi_hdl, 1017 struct peer_update_wds_entry_params *param); 1018 1019 QDF_STATUS wmi_unified_phyerr_enable_cmd_send(void *wmi_hdl); 1020 1021 QDF_STATUS wmi_unified_phyerr_enable_cmd_send(void *wmi_hdl); 1022 1023 QDF_STATUS wmi_unified_phyerr_disable_cmd_send(void *wmi_hdl); 1024 1025 QDF_STATUS wmi_unified_smart_ant_enable_cmd_send(void *wmi_hdl, 1026 struct smart_ant_enable_params *param); 1027 1028 QDF_STATUS wmi_unified_smart_ant_set_rx_ant_cmd_send(void *wmi_hdl, 1029 struct smart_ant_rx_ant_params *param); 1030 1031 QDF_STATUS wmi_unified_smart_ant_set_tx_ant_cmd_send(void *wmi_hdl, 1032 uint8_t macaddr[IEEE80211_ADDR_LEN], 1033 struct smart_ant_tx_ant_params *param); 1034 1035 QDF_STATUS wmi_unified_smart_ant_set_training_info_cmd_send(void *wmi_hdl, 1036 uint8_t macaddr[IEEE80211_ADDR_LEN], 1037 struct smart_ant_training_info_params *param); 1038 1039 QDF_STATUS wmi_unified_smart_ant_node_config_cmd_send(void *wmi_hdl, 1040 uint8_t macaddr[IEEE80211_ADDR_LEN], 1041 struct smart_ant_node_config_params *param); 1042 1043 QDF_STATUS wmi_unified_smart_ant_enable_tx_feedback_cmd_send(void *wmi_hdl, 1044 struct smart_ant_enable_tx_feedback_params *param); 1045 1046 QDF_STATUS wmi_unified_vdev_spectral_configure_cmd_send(void *wmi_hdl, 1047 struct vdev_spectral_configure_params *param); 1048 1049 QDF_STATUS wmi_unified_vdev_spectral_enable_cmd_send(void *wmi_hdl, 1050 struct vdev_spectral_enable_params *param); 1051 1052 QDF_STATUS wmi_unified_bss_chan_info_request_cmd_send(void *wmi_hdl, 1053 struct bss_chan_info_request_params *param); 1054 1055 QDF_STATUS wmi_unified_thermal_mitigation_param_cmd_send(void *wmi_hdl, 1056 struct thermal_mitigation_params *param); 1057 1058 QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send(void *wmi_hdl, 1059 uint8_t macaddr[IEEE80211_ADDR_LEN], 1060 struct set_neighbour_rx_params *param); 1061 1062 QDF_STATUS wmi_unified_vdev_set_fwtest_param_cmd_send(void *wmi_hdl, 1063 struct set_fwtest_params *param); 1064 1065 QDF_STATUS wmi_unified_vdev_config_ratemask_cmd_send(void *wmi_hdl, 1066 struct config_ratemask_params *param); 1067 1068 1069 QDF_STATUS wmi_unified_pdev_set_regdomain_cmd_send(void *wmi_hdl, 1070 struct pdev_set_regdomain_params *param); 1071 1072 QDF_STATUS wmi_unified_set_quiet_mode_cmd_send(void *wmi_hdl, 1073 struct set_quiet_mode_params *param); 1074 1075 QDF_STATUS wmi_unified_set_beacon_filter_cmd_send(void *wmi_hdl, 1076 struct set_beacon_filter_params *param); 1077 1078 QDF_STATUS wmi_unified_remove_beacon_filter_cmd_send(void *wmi_hdl, 1079 struct remove_beacon_filter_params *param); 1080 1081 QDF_STATUS wmi_unified_addba_clearresponse_cmd_send(void *wmi_hdl, 1082 uint8_t macaddr[IEEE80211_ADDR_LEN], 1083 struct addba_clearresponse_params *param); 1084 1085 QDF_STATUS wmi_unified_addba_send_cmd_send(void *wmi_hdl, 1086 uint8_t macaddr[IEEE80211_ADDR_LEN], 1087 struct addba_send_params *param); 1088 1089 QDF_STATUS wmi_unified_delba_send_cmd_send(void *wmi_hdl, 1090 uint8_t macaddr[IEEE80211_ADDR_LEN], 1091 struct delba_send_params *param); 1092 1093 QDF_STATUS wmi_unified_addba_setresponse_cmd_send(void *wmi_hdl, 1094 uint8_t macaddr[IEEE80211_ADDR_LEN], 1095 struct addba_setresponse_params *param); 1096 1097 QDF_STATUS wmi_unified_singleamsdu_cmd_send(void *wmi_hdl, 1098 uint8_t macaddr[IEEE80211_ADDR_LEN], 1099 struct singleamsdu_params *param); 1100 1101 QDF_STATUS wmi_unified_set_qboost_param_cmd_send(void *wmi_hdl, 1102 uint8_t macaddr[IEEE80211_ADDR_LEN], 1103 struct set_qboost_params *param); 1104 1105 QDF_STATUS wmi_unified_mu_scan_cmd_send(void *wmi_hdl, 1106 struct mu_scan_params *param); 1107 1108 QDF_STATUS wmi_unified_lteu_config_cmd_send(void *wmi_hdl, 1109 struct lteu_config_params *param); 1110 1111 QDF_STATUS wmi_unified_set_psmode_cmd_send(void *wmi_hdl, 1112 struct set_ps_mode_params *param); 1113 1114 QDF_STATUS wmi_unified_init_cmd_send(void *wmi_hdl, 1115 struct wmi_init_cmd_param *param); 1116 1117 bool wmi_service_enabled(void *wmi_hdl, uint32_t service_id); 1118 1119 QDF_STATUS wmi_save_service_bitmap(void *wmi_hdl, void *evt_buf, 1120 void *bitmap_buf); 1121 1122 QDF_STATUS wmi_save_fw_version(void *wmi_hdl, void *evt_buf); 1123 1124 QDF_STATUS wmi_get_target_cap_from_service_ready(void *wmi_hdl, 1125 void *evt_buf, 1126 struct wlan_psoc_target_capability_info *ev); 1127 1128 QDF_STATUS wmi_extract_hal_reg_cap(void *wmi_hdl, void *evt_buf, 1129 struct wlan_psoc_hal_reg_capability *hal_reg_cap); 1130 1131 host_mem_req *wmi_extract_host_mem_req_from_service_ready(void *wmi_hdl, 1132 void *evt_buf, uint8_t *num_entries); 1133 1134 uint32_t wmi_ready_extract_init_status(void *wmi_hdl, void *ev); 1135 1136 QDF_STATUS wmi_ready_extract_mac_addr(void *wmi_hdl, 1137 void *ev, uint8_t *macaddr); 1138 1139 QDF_STATUS wmi_extract_fw_version(void *wmi_hdl, 1140 void *ev, struct wmi_host_fw_ver *fw_ver); 1141 1142 QDF_STATUS wmi_extract_fw_abi_version(void *wmi_hdl, 1143 void *ev, struct wmi_host_fw_abi_ver *fw_ver); 1144 1145 QDF_STATUS wmi_check_and_update_fw_version(void *wmi_hdl, void *ev); 1146 1147 uint8_t *wmi_extract_dbglog_data_len(void *wmi_hdl, 1148 void *evt_b, uint32_t *len); 1149 1150 QDF_STATUS wmi_send_ext_resource_config(void *wmi_hdl, 1151 wmi_host_ext_resource_config *ext_cfg); 1152 1153 QDF_STATUS wmi_unified_nf_dbr_dbm_info_get_cmd_send(void *wmi_hdl); 1154 1155 QDF_STATUS wmi_unified_packet_power_info_get_cmd_send(void *wmi_hdl, 1156 struct packet_power_info_params *param); 1157 1158 QDF_STATUS wmi_unified_gpio_config_cmd_send(void *wmi_hdl, 1159 struct gpio_config_params *param); 1160 1161 QDF_STATUS wmi_unified_gpio_output_cmd_send(void *wmi_hdl, 1162 struct gpio_output_params *param); 1163 1164 QDF_STATUS wmi_unified_rtt_meas_req_test_cmd_send(void *wmi_hdl, 1165 struct rtt_meas_req_test_params *param); 1166 1167 QDF_STATUS wmi_unified_rtt_meas_req_cmd_send(void *wmi_hdl, 1168 struct rtt_meas_req_params *param); 1169 1170 QDF_STATUS wmi_unified_rtt_keepalive_req_cmd_send(void *wmi_hdl, 1171 struct rtt_keepalive_req_params *param); 1172 1173 QDF_STATUS wmi_unified_lci_set_cmd_send(void *wmi_hdl, 1174 struct lci_set_params *param); 1175 1176 QDF_STATUS wmi_unified_lcr_set_cmd_send(void *wmi_hdl, 1177 struct lcr_set_params *param); 1178 1179 QDF_STATUS wmi_unified_send_periodic_chan_stats_config_cmd(void *wmi_hdl, 1180 struct periodic_chan_stats_params *param); 1181 1182 QDF_STATUS 1183 wmi_send_atf_peer_request_cmd(void *wmi_hdl, 1184 struct atf_peer_request_params *param); 1185 1186 QDF_STATUS 1187 wmi_send_set_atf_grouping_cmd(void *wmi_hdl, 1188 struct atf_grouping_params *param); 1189 /* Extract APIs */ 1190 1191 QDF_STATUS wmi_extract_wds_addr_event(void *wmi_hdl, 1192 void *evt_buf, uint16_t len, wds_addr_event_t *wds_ev); 1193 1194 QDF_STATUS wmi_extract_dcs_interference_type(void *wmi_hdl, 1195 void *evt_buf, struct wmi_host_dcs_interference_param *param); 1196 1197 QDF_STATUS wmi_extract_dcs_cw_int(void *wmi_hdl, void *evt_buf, 1198 wmi_host_ath_dcs_cw_int *cw_int); 1199 1200 QDF_STATUS wmi_extract_dcs_im_tgt_stats(void *wmi_hdl, void *evt_buf, 1201 wmi_host_dcs_im_tgt_stats_t *wlan_stat); 1202 1203 QDF_STATUS wmi_extract_fips_event_data(void *wmi_hdl, void *evt_buf, 1204 struct wmi_host_fips_event_param *param); 1205 1206 QDF_STATUS wmi_extract_vdev_start_resp(void *wmi_hdl, void *evt_buf, 1207 wmi_host_vdev_start_resp *vdev_rsp); 1208 QDF_STATUS wmi_extract_tbttoffset_update_params(void *wmi_hdl, void *evt_buf, 1209 uint32_t *vdev_map, uint32_t **tbttoffset_list); 1210 1211 QDF_STATUS wmi_extract_mgmt_rx_params(void *wmi_hdl, void *evt_buf, 1212 struct mgmt_rx_event_params *hdr, uint8_t **bufp); 1213 1214 QDF_STATUS wmi_extract_vdev_stopped_param(void *wmi_hdl, void *evt_buf, 1215 uint32_t *vdev_id); 1216 1217 QDF_STATUS wmi_extract_vdev_roam_param(void *wmi_hdl, void *evt_buf, 1218 wmi_host_roam_event *ev); 1219 1220 QDF_STATUS wmi_extract_vdev_scan_ev_param(void *wmi_hdl, void *evt_buf, 1221 struct scan_event *param); 1222 1223 #ifdef CONVERGED_TDLS_ENABLE 1224 /** 1225 * wmi_extract_vdev_tdls_ev_param - extract vdev tdls param from event 1226 * @wmi_handle: wmi handle 1227 * @param evt_buf: pointer to event buffer 1228 * @param param: Pointer to hold vdev tdls param 1229 * 1230 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 1231 */ 1232 QDF_STATUS wmi_extract_vdev_tdls_ev_param(void *wmi_hdl, void *evt_buf, 1233 struct tdls_event_info *param); 1234 #endif 1235 1236 QDF_STATUS wmi_extract_mu_ev_param(void *wmi_hdl, void *evt_buf, 1237 wmi_host_mu_report_event *param); 1238 1239 QDF_STATUS wmi_extract_mu_db_entry(void *wmi_hdl, void *evt_buf, 1240 uint8_t idx, wmi_host_mu_db_entry *param); 1241 1242 QDF_STATUS wmi_extract_mumimo_tx_count_ev_param(void *wmi_hdl, void *evt_buf, 1243 wmi_host_peer_txmu_cnt_event *param); 1244 1245 QDF_STATUS wmi_extract_peer_gid_userpos_list_ev_param(void *wmi_hdl, 1246 void *evt_buf, wmi_host_peer_gid_userpos_list_event *param); 1247 1248 QDF_STATUS wmi_extract_pdev_caldata_version_check_ev_param(void *wmi_hdl, 1249 void *evt_buf, wmi_host_pdev_check_cal_version_event *param); 1250 1251 QDF_STATUS wmi_extract_pdev_tpc_config_ev_param(void *wmi_hdl, void *evt_buf, 1252 wmi_host_pdev_tpc_config_event *param); 1253 1254 QDF_STATUS wmi_extract_gpio_input_ev_param(void *wmi_hdl, 1255 void *evt_buf, uint32_t *gpio_num); 1256 1257 QDF_STATUS wmi_extract_pdev_reserve_ast_ev_param(void *wmi_hdl, 1258 void *evt_buf, struct wmi_host_proxy_ast_reserve_param *param); 1259 1260 QDF_STATUS wmi_extract_nfcal_power_ev_param(void *wmi_hdl, void *evt_buf, 1261 wmi_host_pdev_nfcal_power_all_channels_event *param); 1262 1263 QDF_STATUS wmi_extract_pdev_tpc_ev_param(void *wmi_hdl, void *evt_buf, 1264 wmi_host_pdev_tpc_event *param); 1265 1266 QDF_STATUS wmi_extract_pdev_generic_buffer_ev_param(void *wmi_hdl, 1267 void *evt_buf, 1268 wmi_host_pdev_generic_buffer_event *param); 1269 1270 QDF_STATUS wmi_extract_mgmt_tx_compl_param(void *wmi_hdl, void *evt_buf, 1271 wmi_host_mgmt_tx_compl_event *param); 1272 1273 QDF_STATUS wmi_extract_offchan_data_tx_compl_param(void *wmi_hdl, void *evt_buf, 1274 struct wmi_host_offchan_data_tx_compl_event *param); 1275 1276 QDF_STATUS wmi_extract_pdev_csa_switch_count_status(void *wmi_hdl, 1277 void *evt_buf, 1278 struct pdev_csa_switch_count_status *param); 1279 1280 QDF_STATUS wmi_extract_swba_vdev_map(void *wmi_hdl, void *evt_buf, 1281 uint32_t *vdev_map); 1282 1283 QDF_STATUS wmi_extract_swba_tim_info(void *wmi_hdl, void *evt_buf, 1284 uint32_t idx, wmi_host_tim_info *tim_info); 1285 1286 QDF_STATUS wmi_extract_swba_noa_info(void *wmi_hdl, void *evt_buf, 1287 uint32_t idx, wmi_host_p2p_noa_info *p2p_desc); 1288 1289 #ifdef CONVERGED_P2P_ENABLE 1290 QDF_STATUS wmi_extract_p2p_lo_stop_ev_param(void *wmi_hdl, 1291 void *evt_buf, struct p2p_lo_event *param); 1292 1293 QDF_STATUS wmi_extract_p2p_noa_ev_param(void *wmi_hdl, 1294 void *evt_buf, struct p2p_noa_info *param); 1295 #endif 1296 1297 QDF_STATUS wmi_extract_peer_sta_ps_statechange_ev(void *wmi_hdl, 1298 void *evt_buf, wmi_host_peer_sta_ps_statechange_event *ev); 1299 1300 QDF_STATUS wmi_extract_peer_sta_kickout_ev(void *wmi_hdl, void *evt_buf, 1301 wmi_host_peer_sta_kickout_event *ev); 1302 1303 QDF_STATUS wmi_extract_peer_ratecode_list_ev(void *wmi_hdl, void *evt_buf, 1304 uint8_t *peer_mac, wmi_sa_rate_cap *rate_cap); 1305 1306 QDF_STATUS wmi_extract_bcnflt_stats(void *wmi_hdl, void *evt_buf, 1307 uint32_t index, wmi_host_bcnflt_stats *bcnflt_stats); 1308 1309 QDF_STATUS wmi_extract_rtt_hdr(void *wmi_hdl, void *evt_buf, 1310 wmi_host_rtt_event_hdr *ev); 1311 1312 QDF_STATUS wmi_extract_rtt_ev(void *wmi_hdl, void *evt_buf, 1313 wmi_host_rtt_meas_event *ev, uint8_t *hdump, 1314 uint16_t hdump_len); 1315 1316 QDF_STATUS wmi_extract_rtt_error_report_ev(void *wmi_hdl, void *evt_buf, 1317 wmi_host_rtt_error_report_event *ev); 1318 1319 QDF_STATUS wmi_extract_chan_stats(void *wmi_hdl, void *evt_buf, 1320 uint32_t index, wmi_host_chan_stats *chan_stats); 1321 1322 QDF_STATUS wmi_extract_thermal_stats(void *wmi_hdl, void *evt_buf, 1323 uint32_t *temp, uint32_t *level, uint32_t *pdev_id); 1324 1325 QDF_STATUS wmi_extract_thermal_level_stats(void *wmi_hdl, void *evt_buf, 1326 uint8_t idx, uint32_t *levelcount, uint32_t *dccount); 1327 1328 QDF_STATUS wmi_extract_comb_phyerr(void *wmi_hdl, void *evt_buf, 1329 uint16_t datalen, uint16_t *buf_offset, 1330 wmi_host_phyerr_t *phyerr); 1331 1332 QDF_STATUS wmi_extract_single_phyerr(void *wmi_hdl, void *evt_buf, 1333 uint16_t datalen, uint16_t *buf_offset, 1334 wmi_host_phyerr_t *phyerr); 1335 1336 QDF_STATUS wmi_extract_composite_phyerr(void *wmi_hdl, void *evt_buf, 1337 uint16_t datalen, wmi_host_phyerr_t *phyerr); 1338 1339 QDF_STATUS wmi_extract_profile_ctx(void *wmi_hdl, void *evt_buf, 1340 wmi_host_wlan_profile_ctx_t *profile_ctx); 1341 1342 QDF_STATUS wmi_extract_profile_data(void *wmi_hdl, void *evt_buf, uint8_t idx, 1343 wmi_host_wlan_profile_t *profile_data); 1344 1345 QDF_STATUS wmi_extract_chan_info_event(void *wmi_hdl, void *evt_buf, 1346 wmi_host_chan_info_event *chan_info); 1347 1348 QDF_STATUS wmi_extract_channel_hopping_event(void *wmi_hdl, void *evt_buf, 1349 wmi_host_pdev_channel_hopping_event *ch_hopping); 1350 1351 QDF_STATUS wmi_extract_stats_param(void *wmi_hdl, void *evt_buf, 1352 wmi_host_stats_event *stats_param); 1353 1354 QDF_STATUS wmi_extract_pdev_stats(void *wmi_hdl, void *evt_buf, 1355 uint32_t index, 1356 wmi_host_pdev_stats *pdev_stats); 1357 1358 QDF_STATUS wmi_extract_pdev_ext_stats(void *wmi_hdl, void *evt_buf, 1359 uint32_t index, 1360 wmi_host_pdev_ext_stats *pdev_ext_stats); 1361 1362 QDF_STATUS wmi_extract_peer_extd_stats(void *wmi_hdl, void *evt_buf, 1363 uint32_t index, 1364 wmi_host_peer_extd_stats *peer_extd_stats); 1365 1366 QDF_STATUS wmi_extract_bss_chan_info_event(void *wmi_hdl, void *evt_buf, 1367 wmi_host_pdev_bss_chan_info_event *bss_chan_info); 1368 1369 QDF_STATUS wmi_extract_inst_rssi_stats_event(void *wmi_hdl, void *evt_buf, 1370 wmi_host_inst_stats_resp *inst_rssi_resp); 1371 1372 QDF_STATUS wmi_extract_peer_stats(void *wmi_hdl, void *evt_buf, 1373 uint32_t index, wmi_host_peer_stats *peer_stats); 1374 1375 QDF_STATUS wmi_extract_tx_data_traffic_ctrl_ev(void *wmi_hdl, void *evt_buf, 1376 wmi_host_tx_data_traffic_ctrl_event *ev); 1377 1378 QDF_STATUS wmi_extract_atf_peer_stats_ev(void *wmi_hdl, void *evt_buf, 1379 wmi_host_atf_peer_stats_event *ev); 1380 1381 QDF_STATUS wmi_extract_atf_token_info_ev(void *wmi_hdl, void *evt_buf, 1382 uint8_t idx, wmi_host_atf_peer_stats_info *atf_token_info); 1383 1384 QDF_STATUS wmi_extract_vdev_stats(void *wmi_hdl, void *evt_buf, 1385 uint32_t index, wmi_host_vdev_stats *vdev_stats); 1386 1387 QDF_STATUS wmi_extract_vdev_extd_stats(void *wmi_hdl, void *evt_buf, 1388 uint32_t index, wmi_host_vdev_extd_stats *vdev_extd_stats); 1389 1390 QDF_STATUS wmi_unified_send_power_dbg_cmd(void *wmi_hdl, 1391 struct wmi_power_dbg_params *param); 1392 1393 QDF_STATUS wmi_unified_send_multiple_vdev_restart_req_cmd(void *wmi_hdl, 1394 struct multiple_vdev_restart_params *param); 1395 1396 QDF_STATUS wmi_unified_send_sar_limit_cmd(void *wmi_hdl, 1397 struct sar_limit_cmd_params *params); 1398 QDF_STATUS wmi_unified_send_adapt_dwelltime_params_cmd(void *wmi_hdl, 1399 struct wmi_adaptive_dwelltime_params * 1400 wmi_param); 1401 QDF_STATUS wmi_unified_fw_test_cmd(void *wmi_hdl, 1402 struct set_fwtest_params *wmi_fwtest); 1403 1404 QDF_STATUS wmi_unified_peer_rx_reorder_queue_setup_send(void *wmi_hdl, 1405 struct rx_reorder_queue_setup_params *param); 1406 QDF_STATUS wmi_unified_peer_rx_reorder_queue_remove_send(void *wmi_hdl, 1407 struct rx_reorder_queue_remove_params *param); 1408 1409 QDF_STATUS wmi_extract_service_ready_ext(void *wmi_hdl, uint8_t *evt_buf, 1410 struct wlan_psoc_host_service_ext_param *param); 1411 QDF_STATUS wmi_extract_hw_mode_cap_service_ready_ext( 1412 void *wmi_hdl, 1413 uint8_t *evt_buf, uint8_t hw_mode_idx, 1414 struct wlan_psoc_host_hw_mode_caps *param); 1415 QDF_STATUS wmi_extract_mac_phy_cap_service_ready_ext( 1416 void *wmi_hdl, 1417 uint8_t *evt_buf, 1418 uint8_t hw_mode_id, 1419 uint8_t phy_id, 1420 struct wlan_psoc_host_mac_phy_caps *param); 1421 QDF_STATUS wmi_extract_reg_cap_service_ready_ext( 1422 void *wmi_hdl, 1423 uint8_t *evt_buf, uint8_t phy_idx, 1424 struct wlan_psoc_host_hal_reg_capabilities_ext *param); 1425 QDF_STATUS wmi_extract_pdev_utf_event(void *wmi_hdl, 1426 uint8_t *evt_buf, 1427 struct wmi_host_pdev_utf_event *param); 1428 1429 QDF_STATUS wmi_extract_pdev_qvit_event(void *wmi_hdl, 1430 uint8_t *evt_buf, 1431 struct wmi_host_pdev_qvit_event *param); 1432 1433 QDF_STATUS wmi_extract_peer_delete_response_event(void *wmi_hdl, 1434 uint8_t *evt_buf, 1435 struct wmi_host_peer_delete_response_event *param); 1436 1437 QDF_STATUS wmi_extract_chainmask_tables(void *wmi_hdl, uint8_t *evt_buf, 1438 struct wlan_psoc_host_chainmask_table *chainmask_table); 1439 /** 1440 * wmi_unified_dfs_phyerr_offload_en_cmd() - enable dfs phyerr offload 1441 * @wmi_handle: wmi handle 1442 * @pdev_id: pdev id 1443 * 1444 * Return: QDF_STATUS 1445 */ 1446 QDF_STATUS wmi_unified_dfs_phyerr_offload_en_cmd(void *wmi_hdl, 1447 uint32_t pdev_id); 1448 1449 /** 1450 * wmi_unified_dfs_phyerr_offload_dis_cmd() - disable dfs phyerr offload 1451 * @wmi_handle: wmi handle 1452 * @pdev_id: pdev id 1453 * 1454 * Return: QDF_STATUS 1455 */ 1456 QDF_STATUS wmi_unified_dfs_phyerr_offload_dis_cmd(void *wmi_hdl, 1457 uint32_t pdev_id); 1458 1459 QDF_STATUS wmi_unified_set_country_cmd_send(void *wmi_hdl, 1460 struct set_country *param); 1461 1462 #ifdef WMI_INTERFACE_EVENT_LOGGING 1463 void wmi_print_cmd_log(wmi_unified_t wmi, uint32_t count, 1464 qdf_abstract_print *print, void *print_priv); 1465 1466 void wmi_print_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count, 1467 qdf_abstract_print *print, void *print_priv); 1468 1469 void wmi_print_mgmt_cmd_log(wmi_unified_t wmi, uint32_t count, 1470 qdf_abstract_print *print, void *print_priv); 1471 1472 void wmi_print_mgmt_cmd_tx_cmp_log(wmi_unified_t wmi, uint32_t count, 1473 qdf_abstract_print *print, void *print_priv); 1474 1475 void wmi_print_event_log(wmi_unified_t wmi, uint32_t count, 1476 qdf_abstract_print *print, void *print_priv); 1477 1478 void wmi_print_rx_event_log(wmi_unified_t wmi, uint32_t count, 1479 qdf_abstract_print *print, void *print_priv); 1480 1481 void wmi_print_mgmt_event_log(wmi_unified_t wmi, uint32_t count, 1482 qdf_abstract_print *print, void *print_priv); 1483 1484 #endif /* WMI_INTERFACE_EVENT_LOGGING */ 1485 1486 #endif /* _WMI_UNIFIED_API_H_ */ 1487