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