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