1 /* 2 * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 /** 20 * DOC: Declare public API related to the wlan ipa called by north bound 21 */ 22 23 #ifndef _WLAN_IPA_UCFG_API_H_ 24 #define _WLAN_IPA_UCFG_API_H_ 25 26 #include "wlan_ipa_public_struct.h" 27 #include "wlan_ipa_obj_mgmt_api.h" 28 #include "wlan_objmgr_pdev_obj.h" 29 #include "qdf_types.h" 30 #include "wlan_ipa_main.h" 31 32 #ifdef IPA_OFFLOAD 33 34 /** 35 * ucfg_ipa_set_pld_enable() - set g_ipa_pld_enable 36 * @flag: flag to set g_ipa_pld_enable 37 * 38 * Return: None 39 */ 40 void ucfg_ipa_set_pld_enable(bool flag); 41 42 /** 43 * ucfg_ipa_get_pld_enable() - check if IPA is disabled in pld 44 * 45 * Return: g_ipa_pld_enable 46 */ 47 bool ucfg_ipa_get_pld_enable(void); 48 49 /** 50 * ucfg_ipa_is_present() - get IPA hw status 51 * 52 * ipa_uc_reg_rdyCB is not directly designed to check 53 * ipa hw status. This is an undocumented function which 54 * has confirmed with IPA team. 55 * 56 * Return: true - ipa hw present 57 * false - ipa hw not present 58 */ 59 bool ucfg_ipa_is_present(void); 60 61 /** 62 * ucfg_ipa_is_ready() - get IPA ready status 63 * 64 * After ipa_ready_cb() is registered and later invoked by IPA 65 * driver, ipa ready status flag is updated in wlan driver. 66 * Unless IPA ready callback is invoked and ready status is 67 * updated none of the IPA APIs should be invoked. 68 * 69 * Return: true - ipa is ready 70 * false - ipa is not ready 71 */ 72 bool ucfg_ipa_is_ready(void); 73 74 /** 75 * ucfg_ipa_is_enabled() - get IPA enable status 76 * 77 * Return: true - ipa is enabled 78 * false - ipa is not enabled 79 */ 80 bool ucfg_ipa_is_enabled(void); 81 82 /** 83 * ucfg_ipa_uc_is_enabled() - get IPA uC enable status 84 * 85 * Return: true - ipa uC is enabled 86 * false - ipa uC is not enabled 87 */ 88 bool ucfg_ipa_uc_is_enabled(void); 89 90 /** 91 * ucfg_ipa_is_vlan_enabled() - get IPA vlan support enable status 92 * 93 * Return: true - ipa vlan support is enabled 94 * false - ipa vlan support is not enabled 95 */ 96 bool ucfg_ipa_is_vlan_enabled(void); 97 98 /** 99 * ucfg_ipa_set_dp_handle() - register DP handle 100 * @psoc: psoc handle 101 * @dp_soc: data path soc handle 102 * 103 * Return: None 104 */ 105 void ucfg_ipa_set_dp_handle(struct wlan_objmgr_psoc *psoc, 106 void *dp_soc); 107 108 /** 109 * ucfg_ipa_set_pdev_id() - register pdev id 110 * @psoc: psoc handle 111 * @pdev_id: data path txrx pdev id 112 * 113 * Return: None 114 */ 115 void ucfg_ipa_set_pdev_id(struct wlan_objmgr_psoc *psoc, 116 uint8_t pdev_id); 117 118 /** 119 * ucfg_ipa_set_perf_level() - Set IPA perf level 120 * @pdev: pdev obj 121 * @tx_packets: Number of packets transmitted in the last sample period 122 * @rx_packets: Number of packets received in the last sample period 123 * 124 * Return: QDF_STATUS_SUCCESS on success 125 */ 126 QDF_STATUS ucfg_ipa_set_perf_level(struct wlan_objmgr_pdev *pdev, 127 uint64_t tx_packets, uint64_t rx_packets); 128 129 /** 130 * ucfg_ipa_uc_info() - Print IPA uC resource and session information 131 * @pdev: pdev obj 132 * 133 * Return: None 134 */ 135 void ucfg_ipa_uc_info(struct wlan_objmgr_pdev *pdev); 136 137 /** 138 * ucfg_ipa_uc_stat() - Print IPA uC stats 139 * @pdev: pdev obj 140 * 141 * Return: None 142 */ 143 void ucfg_ipa_uc_stat(struct wlan_objmgr_pdev *pdev); 144 145 146 /** 147 * ucfg_ipa_uc_rt_debug_host_dump() - IPA rt debug host dump 148 * @pdev: pdev obj 149 * 150 * Return: None 151 */ 152 void ucfg_ipa_uc_rt_debug_host_dump(struct wlan_objmgr_pdev *pdev); 153 154 /** 155 * ucfg_ipa_dump_info() - Dump IPA context information 156 * @pdev: pdev obj 157 * 158 * Return: None 159 */ 160 void ucfg_ipa_dump_info(struct wlan_objmgr_pdev *pdev); 161 162 /** 163 * ucfg_ipa_uc_stat_request() - Get IPA stats from IPA. 164 * @pdev: pdev obj 165 * @reason: STAT REQ Reason 166 * 167 * Return: None 168 */ 169 void ucfg_ipa_uc_stat_request(struct wlan_objmgr_pdev *pdev, 170 uint8_t reason); 171 172 /** 173 * ucfg_ipa_uc_stat_query() - Query the IPA stats 174 * @pdev: pdev obj 175 * @ipa_tx_diff: tx packet count diff from previous tx packet count 176 * @ipa_rx_diff: rx packet count diff from previous rx packet count 177 * 178 * Return: None 179 */ 180 void ucfg_ipa_uc_stat_query(struct wlan_objmgr_pdev *pdev, 181 uint32_t *ipa_tx_diff, uint32_t *ipa_rx_diff); 182 183 /** 184 * ucfg_ipa_reg_sap_xmit_cb() - Register upper layer SAP cb to transmit 185 * @pdev: pdev obj 186 * @cb: callback 187 * 188 * Return: None 189 */ 190 void ucfg_ipa_reg_sap_xmit_cb(struct wlan_objmgr_pdev *pdev, 191 wlan_ipa_softap_xmit cb); 192 193 /** 194 * ucfg_ipa_reg_send_to_nw_cb() - Register cb to send IPA Rx packet to network 195 * @pdev: pdev obj 196 * @cb: callback 197 * 198 * Return: None 199 */ 200 void ucfg_ipa_reg_send_to_nw_cb(struct wlan_objmgr_pdev *pdev, 201 wlan_ipa_send_to_nw cb); 202 203 /** 204 * ucfg_ipa_reg_rps_enable_cb() - Register cb to enable RPS 205 * @pdev: pdev obj 206 * @cb: callback 207 * 208 * Return: None 209 */ 210 #if defined(QCA_CONFIG_RPS) && !defined(MDM_PLATFORM) 211 void ucfg_ipa_reg_rps_enable_cb(struct wlan_objmgr_pdev *pdev, 212 wlan_ipa_rps_enable cb); 213 #else 214 static inline ucfg_ipa_reg_rps_enable_cb(struct wlan_objmgr_pdev * pdev,wlan_ipa_rps_enable cb)215 void ucfg_ipa_reg_rps_enable_cb(struct wlan_objmgr_pdev *pdev, 216 wlan_ipa_rps_enable cb) 217 { 218 } 219 #endif 220 221 /** 222 * ucfg_ipa_reg_is_driver_unloading_cb() - Register cb to check if driver 223 * is unloading 224 * @pdev: pdev obj 225 * @cb: callback 226 * 227 * Return: None 228 */ 229 void ucfg_ipa_reg_is_driver_unloading_cb(struct wlan_objmgr_pdev *pdev, 230 wlan_ipa_driver_unloading cb); 231 232 /** 233 * ucfg_ipa_set_mcc_mode() - Set MCC mode 234 * @pdev: pdev obj 235 * @mcc_mode: 0=MCC/1=SCC 236 * 237 * Return: void 238 */ 239 void ucfg_ipa_set_mcc_mode(struct wlan_objmgr_pdev *pdev, bool mcc_mode); 240 241 /** 242 * ucfg_ipa_set_dfs_cac_tx() - Set DFS cac tx block 243 * @pdev: pdev obj 244 * @tx_block: dfs cac tx block 245 * 246 * Return: void 247 */ 248 void ucfg_ipa_set_dfs_cac_tx(struct wlan_objmgr_pdev *pdev, bool tx_block); 249 250 /** 251 * ucfg_ipa_set_ap_ibss_fwd() - Set AP intra bss forward 252 * @pdev: pdev obj 253 * @session_id: vdev id 254 * @intra_bss: enable or disable ap intra bss forward 255 * 256 * Return: void 257 */ 258 void ucfg_ipa_set_ap_ibss_fwd(struct wlan_objmgr_pdev *pdev, uint8_t session_id, 259 bool intra_bss); 260 261 /** 262 * ucfg_ipa_uc_force_pipe_shutdown() - Force shutdown IPA pipe 263 * @pdev: pdev obj 264 * 265 * Return: void 266 */ 267 void ucfg_ipa_uc_force_pipe_shutdown(struct wlan_objmgr_pdev *pdev); 268 269 /** 270 * ucfg_ipa_flush() - flush IPA exception path SKB's 271 * @pdev: pdev obj 272 * 273 * Return: None 274 */ 275 void ucfg_ipa_flush(struct wlan_objmgr_pdev *pdev); 276 277 /** 278 * ucfg_ipa_suspend() - Suspend IPA 279 * @pdev: pdev obj 280 * 281 * Return: QDF STATUS 282 */ 283 QDF_STATUS ucfg_ipa_suspend(struct wlan_objmgr_pdev *pdev); 284 285 /** 286 * ucfg_ipa_resume() - Resume IPA 287 * @pdev: pdev obj 288 * 289 * Return: QDF STATUS 290 */ 291 QDF_STATUS ucfg_ipa_resume(struct wlan_objmgr_pdev *pdev); 292 293 /** 294 * ucfg_ipa_uc_ol_init() - Initialize IPA uC offload 295 * @pdev: pdev obj 296 * @osdev: OS dev 297 * 298 * Return: QDF STATUS 299 */ 300 QDF_STATUS ucfg_ipa_uc_ol_init(struct wlan_objmgr_pdev *pdev, 301 qdf_device_t osdev); 302 303 /** 304 * ucfg_ipa_uc_ol_deinit() - Deinitialize IPA uC offload 305 * @pdev: pdev obj 306 * 307 * Return: QDF STATUS 308 */ 309 QDF_STATUS ucfg_ipa_uc_ol_deinit(struct wlan_objmgr_pdev *pdev); 310 311 /** 312 * ucfg_ipa_is_tx_pending() - Check if IPA WLAN TX completions are pending 313 * @pdev: pdev obj 314 * 315 * Return: bool if pending TX for IPA. 316 */ 317 bool ucfg_ipa_is_tx_pending(struct wlan_objmgr_pdev *pdev); 318 319 /** 320 * ucfg_ipa_send_mcc_scc_msg() - Send IPA WLAN_SWITCH_TO_MCC/SCC message 321 * @pdev: pdev obj 322 * @mcc_mode: 0=MCC/1=SCC 323 * 324 * Return: QDF STATUS 325 */ 326 QDF_STATUS ucfg_ipa_send_mcc_scc_msg(struct wlan_objmgr_pdev *pdev, 327 bool mcc_mode); 328 329 /** 330 * ucfg_ipa_wlan_evt() - IPA event handler 331 * @pdev: pdev obj 332 * @net_dev: Interface net device 333 * @device_mode: Net interface device mode 334 * @session_id: session id for the event 335 * @ipa_event_type: event enum of type ipa_wlan_event 336 * @mac_addr: MAC address associated with the event 337 * @is_2g_iface: true if interface is operating on 2G band, otherwise false 338 * 339 * Return: QDF_STATUS 340 */ 341 QDF_STATUS ucfg_ipa_wlan_evt(struct wlan_objmgr_pdev *pdev, 342 qdf_netdev_t net_dev, uint8_t device_mode, 343 uint8_t session_id, 344 enum wlan_ipa_wlan_event ipa_event_type, 345 const uint8_t *mac_addr, bool is_2g_iface); 346 347 /** 348 * ucfg_ipa_uc_smmu_map() - Map / Unmap DMA buffer to IPA UC 349 * @map: Map / unmap operation 350 * @num_buf: Number of buffers in array 351 * @buf_arr: Buffer array of DMA mem mapping info 352 * 353 * Return: Status of map operation 354 */ 355 int ucfg_ipa_uc_smmu_map(bool map, uint32_t num_buf, qdf_mem_info_t *buf_arr); 356 357 /** 358 * ucfg_ipa_is_fw_wdi_activated - Is FW WDI activated? 359 * @pdev: pdev obj 360 * 361 * Return: true if FW WDI activated, false otherwise 362 */ 363 bool ucfg_ipa_is_fw_wdi_activated(struct wlan_objmgr_pdev *pdev); 364 365 /** 366 * ucfg_ipa_uc_cleanup_sta() - disconnect and cleanup sta iface 367 * @pdev: pdev obj 368 * @net_dev: Interface net device 369 * @session_id: vdev id 370 * 371 * Send disconnect sta event to IPA driver and cleanup IPA iface, 372 * if not yet done 373 * 374 * Return: void 375 */ 376 void ucfg_ipa_uc_cleanup_sta(struct wlan_objmgr_pdev *pdev, 377 qdf_netdev_t net_dev, uint8_t session_id); 378 379 /** 380 * ucfg_ipa_uc_disconnect_ap() - send ap disconnect event 381 * @pdev: pdev obj 382 * @net_dev: Interface net device 383 * 384 * Send disconnect ap event to IPA driver during SSR 385 * 386 * Return: QDF_STATUS 387 */ 388 QDF_STATUS ucfg_ipa_uc_disconnect_ap(struct wlan_objmgr_pdev *pdev, 389 qdf_netdev_t net_dev); 390 391 /** 392 * ucfg_ipa_cleanup_dev_iface() - Clean up net dev IPA interface 393 * @pdev: pdev obj 394 * @net_dev: Interface net device 395 * @session_id: vdev id 396 * 397 * 398 * Return: None 399 */ 400 void ucfg_ipa_cleanup_dev_iface(struct wlan_objmgr_pdev *pdev, 401 qdf_netdev_t net_dev, uint8_t session_id); 402 403 /** 404 * ucfg_ipa_uc_ssr_cleanup() - Handle IPA cleanup for SSR 405 * @pdev: pdev obj 406 * 407 * From hostside do cleanup such as deregister IPA interafces 408 * and send disconnect events so that it will be sync after SSR 409 * 410 * Return: None 411 */ 412 void ucfg_ipa_uc_ssr_cleanup(struct wlan_objmgr_pdev *pdev); 413 414 /** 415 * ucfg_ipa_fw_rejuvenate_send_msg() - Send msg to IPA driver in FW rejuvenate 416 * @pdev: pdev obj 417 * 418 * Return: None 419 */ 420 void ucfg_ipa_fw_rejuvenate_send_msg(struct wlan_objmgr_pdev *pdev); 421 422 /** 423 * ucfg_ipa_component_config_update() - update IPA component config 424 * @psoc: pointer to psoc object 425 * 426 * Return: None 427 */ 428 void ucfg_ipa_component_config_update(struct wlan_objmgr_psoc *psoc); 429 430 /** 431 * ucfg_ipa_component_config_free() - Free IPA component config 432 * 433 * Return: None 434 */ 435 void ucfg_ipa_component_config_free(void); 436 437 /** 438 * ucfg_ipa_get_tx_buf_count() - get IPA tx buffer count 439 * 440 * Return: IPA tx buffer count 441 */ 442 uint32_t ucfg_ipa_get_tx_buf_count(void); 443 444 /** 445 * ucfg_ipa_update_tx_stats() - send embedded tx traffic in bytes to IPA 446 * @pdev: pdev obj 447 * @sta_tx: tx in bytes on sta vdev 448 * @ap_tx: tx in bytes on sap vdev 449 * 450 * Return: void 451 */ 452 void ucfg_ipa_update_tx_stats(struct wlan_objmgr_pdev *pdev, uint64_t sta_tx, 453 uint64_t ap_tx); 454 /** 455 * ucfg_ipa_flush_pending_vdev_events() - flush pending vdev wlan ipa events 456 * @pdev: pdev obj 457 * @vdev_id: vdev id 458 * 459 * Return: None 460 */ 461 void ucfg_ipa_flush_pending_vdev_events(struct wlan_objmgr_pdev *pdev, 462 uint8_t vdev_id); 463 464 /** 465 * ucfg_ipa_is_wds_enabled() - get IPA AP WDS status 466 * 467 * IPA driver requires WDS status for adding filter rules 468 * to support easymesh feature, IPA expects wds status 469 * with WLAN_IPA_AP_CONNECT event. 470 * 471 * Return: true - WDS is enabled 472 * false - WDS is not enabled 473 */ 474 bool ucfg_ipa_is_wds_enabled(void); 475 476 /** 477 * ucfg_ipa_get_alt_pipe() - Get alt_pipe for vdev_id 478 * @pdev: pdev obj 479 * @vdev_id: vdev_id of the target interface 480 * @alt_pipe: Boolean output to indicate if interface with @vdev_id 481 * is using alternate TX pipe or not. 482 * 483 * Return: QDF_STATUS 484 */ 485 QDF_STATUS ucfg_ipa_get_alt_pipe(struct wlan_objmgr_pdev *pdev, 486 uint8_t vdev_id, 487 bool *alt_pipe); 488 489 /** 490 * ucfg_ipa_set_perf_level_bw_enabled - Get bandwidth based IPA perf 491 * voting status 492 * @pdev: pdev objmgr pointer 493 * 494 * This function returns true or false for bandwidth based IPA perf level 495 * voting. 496 * 497 * Return: true - bandwidth based IPA perf voting is enabld. Otherwise false. 498 */ 499 bool ucfg_ipa_set_perf_level_bw_enabled(struct wlan_objmgr_pdev *pdev); 500 501 /** 502 * ucfg_ipa_set_perf_level_bw() - Set IPA perf level based on BW 503 * @pdev: pdev objmgr pointer 504 * @lvl: enum wlan_ipa_bw_level 505 * 506 * This routine is called to set IPA perf level based on max BW 507 * configured among in-use STA and SAP vdevs 508 * 509 * Return: None 510 */ 511 void ucfg_ipa_set_perf_level_bw(struct wlan_objmgr_pdev *pdev, 512 enum wlan_ipa_bw_level lvl); 513 514 #else ucfg_ipa_set_pld_enable(bool flag)515 static inline void ucfg_ipa_set_pld_enable(bool flag) 516 { 517 } 518 ucfg_ipa_get_pld_enable(void)519 static inline bool ucfg_ipa_get_pld_enable(void) 520 { 521 return true; 522 } 523 ucfg_ipa_is_present(void)524 static inline bool ucfg_ipa_is_present(void) 525 { 526 return false; 527 } 528 ucfg_ipa_is_ready(void)529 static inline bool ucfg_ipa_is_ready(void) 530 { 531 return false; 532 } 533 ucfg_ipa_update_config(struct wlan_ipa_config * config)534 static inline void ucfg_ipa_update_config(struct wlan_ipa_config *config) 535 { 536 } 537 ucfg_ipa_is_enabled(void)538 static inline bool ucfg_ipa_is_enabled(void) 539 { 540 return false; 541 } 542 ucfg_ipa_uc_is_enabled(void)543 static inline bool ucfg_ipa_uc_is_enabled(void) 544 { 545 return false; 546 } 547 ucfg_ipa_is_vlan_enabled(void)548 static inline bool ucfg_ipa_is_vlan_enabled(void) 549 { 550 return false; 551 } 552 553 static inline ucfg_ipa_set_dp_handle(struct wlan_objmgr_psoc * psoc,void * dp_soc)554 QDF_STATUS ucfg_ipa_set_dp_handle(struct wlan_objmgr_psoc *psoc, 555 void *dp_soc) 556 { 557 return QDF_STATUS_SUCCESS; 558 } 559 560 static inline ucfg_ipa_set_pdev_id(struct wlan_objmgr_psoc * psoc,uint8_t pdev_id)561 QDF_STATUS ucfg_ipa_set_pdev_id(struct wlan_objmgr_psoc *psoc, 562 uint8_t pdev_id) 563 { 564 return QDF_STATUS_SUCCESS; 565 } 566 567 static inline ucfg_ipa_set_perf_level(struct wlan_objmgr_pdev * pdev,uint64_t tx_packets,uint64_t rx_packets)568 QDF_STATUS ucfg_ipa_set_perf_level(struct wlan_objmgr_pdev *pdev, 569 uint64_t tx_packets, uint64_t rx_packets) 570 { 571 return QDF_STATUS_SUCCESS; 572 } 573 574 static inline ucfg_ipa_uc_info(struct wlan_objmgr_pdev * pdev)575 void ucfg_ipa_uc_info(struct wlan_objmgr_pdev *pdev) 576 { 577 } 578 579 static inline ucfg_ipa_uc_stat(struct wlan_objmgr_pdev * pdev)580 void ucfg_ipa_uc_stat(struct wlan_objmgr_pdev *pdev) 581 { 582 } 583 584 static inline ucfg_ipa_uc_rt_debug_host_dump(struct wlan_objmgr_pdev * pdev)585 void ucfg_ipa_uc_rt_debug_host_dump(struct wlan_objmgr_pdev *pdev) 586 { 587 } 588 589 static inline ucfg_ipa_dump_info(struct wlan_objmgr_pdev * pdev)590 void ucfg_ipa_dump_info(struct wlan_objmgr_pdev *pdev) 591 { 592 } 593 594 static inline ucfg_ipa_uc_stat_request(struct wlan_objmgr_pdev * pdev,uint8_t reason)595 void ucfg_ipa_uc_stat_request(struct wlan_objmgr_pdev *pdev, 596 uint8_t reason) 597 { 598 } 599 600 static inline ucfg_ipa_uc_stat_query(struct wlan_objmgr_pdev * pdev,uint32_t * ipa_tx_diff,uint32_t * ipa_rx_diff)601 void ucfg_ipa_uc_stat_query(struct wlan_objmgr_pdev *pdev, 602 uint32_t *ipa_tx_diff, uint32_t *ipa_rx_diff) 603 { 604 } 605 606 static inline ucfg_ipa_reg_sap_xmit_cb(struct wlan_objmgr_pdev * pdev,wlan_ipa_softap_xmit cb)607 void ucfg_ipa_reg_sap_xmit_cb(struct wlan_objmgr_pdev *pdev, 608 wlan_ipa_softap_xmit cb) 609 { 610 } 611 612 static inline ucfg_ipa_reg_send_to_nw_cb(struct wlan_objmgr_pdev * pdev,wlan_ipa_send_to_nw cb)613 void ucfg_ipa_reg_send_to_nw_cb(struct wlan_objmgr_pdev *pdev, 614 wlan_ipa_send_to_nw cb) 615 { 616 } 617 618 static inline ucfg_ipa_reg_rps_enable_cb(struct wlan_objmgr_pdev * pdev,wlan_ipa_rps_enable cb)619 void ucfg_ipa_reg_rps_enable_cb(struct wlan_objmgr_pdev *pdev, 620 wlan_ipa_rps_enable cb) 621 { 622 } 623 624 static inline ucfg_ipa_reg_is_driver_unloading_cb(struct wlan_objmgr_pdev * pdev,wlan_ipa_driver_unloading cb)625 void ucfg_ipa_reg_is_driver_unloading_cb(struct wlan_objmgr_pdev *pdev, 626 wlan_ipa_driver_unloading cb) 627 { 628 } 629 630 static inline ucfg_ipa_set_mcc_mode(struct wlan_objmgr_pdev * pdev,bool mcc_mode)631 void ucfg_ipa_set_mcc_mode(struct wlan_objmgr_pdev *pdev, bool mcc_mode) 632 { 633 } 634 635 static inline ucfg_ipa_set_dfs_cac_tx(struct wlan_objmgr_pdev * pdev,bool tx_block)636 void ucfg_ipa_set_dfs_cac_tx(struct wlan_objmgr_pdev *pdev, bool tx_block) 637 { 638 } 639 640 static inline ucfg_ipa_set_ap_ibss_fwd(struct wlan_objmgr_pdev * pdev,uint8_t session_id,bool intra_bss)641 void ucfg_ipa_set_ap_ibss_fwd(struct wlan_objmgr_pdev *pdev, uint8_t session_id, 642 bool intra_bss) 643 { 644 } 645 646 static inline ucfg_ipa_uc_force_pipe_shutdown(struct wlan_objmgr_pdev * pdev)647 void ucfg_ipa_uc_force_pipe_shutdown(struct wlan_objmgr_pdev *pdev) 648 { 649 } 650 651 static inline ucfg_ipa_flush(struct wlan_objmgr_pdev * pdev)652 void ucfg_ipa_flush(struct wlan_objmgr_pdev *pdev) 653 { 654 } 655 656 static inline ucfg_ipa_suspend(struct wlan_objmgr_pdev * pdev)657 QDF_STATUS ucfg_ipa_suspend(struct wlan_objmgr_pdev *pdev) 658 { 659 return QDF_STATUS_SUCCESS; 660 } 661 662 static inline ucfg_ipa_resume(struct wlan_objmgr_pdev * pdev)663 QDF_STATUS ucfg_ipa_resume(struct wlan_objmgr_pdev *pdev) 664 { 665 return QDF_STATUS_SUCCESS; 666 } 667 668 static inline ucfg_ipa_uc_ol_init(struct wlan_objmgr_pdev * pdev,qdf_device_t osdev)669 QDF_STATUS ucfg_ipa_uc_ol_init(struct wlan_objmgr_pdev *pdev, 670 qdf_device_t osdev) 671 { 672 return QDF_STATUS_SUCCESS; 673 } 674 675 static inline ucfg_ipa_uc_ol_deinit(struct wlan_objmgr_pdev * pdev)676 QDF_STATUS ucfg_ipa_uc_ol_deinit(struct wlan_objmgr_pdev *pdev) 677 { 678 return QDF_STATUS_SUCCESS; 679 } 680 ucfg_ipa_is_tx_pending(struct wlan_objmgr_pdev * pdev)681 static inline bool ucfg_ipa_is_tx_pending(struct wlan_objmgr_pdev *pdev) 682 { 683 return false; 684 } 685 686 static inline ucfg_ipa_send_mcc_scc_msg(struct wlan_objmgr_pdev * pdev,bool mcc_mode)687 QDF_STATUS ucfg_ipa_send_mcc_scc_msg(struct wlan_objmgr_pdev *pdev, 688 bool mcc_mode) 689 { 690 return QDF_STATUS_SUCCESS; 691 } 692 693 static inline ucfg_ipa_wlan_evt(struct wlan_objmgr_pdev * pdev,qdf_netdev_t net_dev,uint8_t device_mode,uint8_t session_id,enum wlan_ipa_wlan_event ipa_event_type,const uint8_t * mac_addr,bool is_2g_iface)694 QDF_STATUS ucfg_ipa_wlan_evt(struct wlan_objmgr_pdev *pdev, 695 qdf_netdev_t net_dev, uint8_t device_mode, 696 uint8_t session_id, 697 enum wlan_ipa_wlan_event ipa_event_type, 698 const uint8_t *mac_addr, bool is_2g_iface) 699 { 700 return QDF_STATUS_SUCCESS; 701 } 702 703 static inline ucfg_ipa_uc_smmu_map(bool map,uint32_t num_buf,qdf_mem_info_t * buf_arr)704 int ucfg_ipa_uc_smmu_map(bool map, uint32_t num_buf, qdf_mem_info_t *buf_arr) 705 { 706 return 0; 707 } 708 709 static inline ucfg_ipa_is_fw_wdi_activated(struct wlan_objmgr_pdev * pdev)710 bool ucfg_ipa_is_fw_wdi_activated(struct wlan_objmgr_pdev *pdev) 711 { 712 return false; 713 } 714 715 static inline ucfg_ipa_uc_cleanup_sta(struct wlan_objmgr_pdev * pdev,qdf_netdev_t net_dev,uint8_t session_id)716 void ucfg_ipa_uc_cleanup_sta(struct wlan_objmgr_pdev *pdev, 717 qdf_netdev_t net_dev, uint8_t session_id) 718 { 719 } 720 721 static inline ucfg_ipa_uc_disconnect_ap(struct wlan_objmgr_pdev * pdev,qdf_netdev_t net_dev)722 QDF_STATUS ucfg_ipa_uc_disconnect_ap(struct wlan_objmgr_pdev *pdev, 723 qdf_netdev_t net_dev) 724 { 725 return QDF_STATUS_SUCCESS; 726 } 727 728 static inline ucfg_ipa_cleanup_dev_iface(struct wlan_objmgr_pdev * pdev,qdf_netdev_t net_dev,uint8_t session_id)729 void ucfg_ipa_cleanup_dev_iface(struct wlan_objmgr_pdev *pdev, 730 qdf_netdev_t net_dev, uint8_t session_id) 731 { 732 } 733 734 static inline ucfg_ipa_uc_ssr_cleanup(struct wlan_objmgr_pdev * pdev)735 void ucfg_ipa_uc_ssr_cleanup(struct wlan_objmgr_pdev *pdev) 736 { 737 } 738 739 static inline ucfg_ipa_fw_rejuvenate_send_msg(struct wlan_objmgr_pdev * pdev)740 void ucfg_ipa_fw_rejuvenate_send_msg(struct wlan_objmgr_pdev *pdev) 741 { 742 } 743 744 static inline ucfg_ipa_component_config_update(struct wlan_objmgr_psoc * psoc)745 void ucfg_ipa_component_config_update(struct wlan_objmgr_psoc *psoc) 746 { 747 } 748 749 static inline ucfg_ipa_component_config_free(void)750 void ucfg_ipa_component_config_free(void) 751 { 752 } 753 754 static inline ucfg_ipa_get_tx_buf_count(void)755 uint32_t ucfg_ipa_get_tx_buf_count(void) 756 { 757 return 0; 758 } 759 760 static inline ucfg_ipa_update_tx_stats(struct wlan_objmgr_pdev * pdev,uint64_t sta_tx,uint64_t ap_tx)761 void ucfg_ipa_update_tx_stats(struct wlan_objmgr_pdev *pdev, uint64_t sta_tx, 762 uint64_t ap_tx) 763 { 764 } 765 766 static inline ucfg_ipa_flush_pending_vdev_events(struct wlan_objmgr_pdev * pdev,uint8_t vdev_id)767 void ucfg_ipa_flush_pending_vdev_events(struct wlan_objmgr_pdev *pdev, 768 uint8_t vdev_id) 769 { 770 } 771 772 static inline ucfg_ipa_is_wds_enabled(void)773 bool ucfg_ipa_is_wds_enabled(void) 774 { 775 return false; 776 } 777 778 static inline ucfg_ipa_get_alt_pipe(struct wlan_objmgr_pdev * pdev,uint8_t vdev_id,bool * alt_pipe)779 QDF_STATUS ucfg_ipa_get_alt_pipe(struct wlan_objmgr_pdev *pdev, 780 uint8_t vdev_id, 781 bool *alt_pipe) 782 { 783 return QDF_STATUS_SUCCESS; 784 } 785 786 static inline ucfg_ipa_set_perf_level_bw_enabled(struct wlan_objmgr_pdev * pdev)787 bool ucfg_ipa_set_perf_level_bw_enabled(struct wlan_objmgr_pdev *pdev) 788 { 789 return false; 790 } 791 ucfg_ipa_set_perf_level_bw(struct wlan_objmgr_pdev * pdev,enum wlan_ipa_bw_level lvl)792 static inline void ucfg_ipa_set_perf_level_bw(struct wlan_objmgr_pdev *pdev, 793 enum wlan_ipa_bw_level lvl) 794 { 795 } 796 797 #endif /* IPA_OFFLOAD */ 798 #endif /* _WLAN_IPA_UCFG_API_H_ */ 799