1 /* 2 * Copyright (c) 2018, 2020-2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021-2022 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_OBJ_MGMT_H_ 24 #define _WLAN_IPA_OBJ_MGMT_H_ 25 26 #include "wlan_ipa_public_struct.h" 27 #include "wlan_objmgr_pdev_obj.h" 28 #include "wlan_ipa_main.h" 29 30 #ifdef IPA_OFFLOAD 31 32 /** 33 * ipa_init() - IPA module initialization 34 * 35 * Return: QDF_STATUS_SUCCESS on success 36 */ 37 QDF_STATUS ipa_init(void); 38 39 /** 40 * ipa_deinit() - IPA module deinitialization 41 * 42 * Return: QDF_STATUS_SUCCESS on success 43 */ 44 QDF_STATUS ipa_deinit(void); 45 46 /** 47 * ipa_register_is_ipa_ready() - Register IPA ready callback 48 * @pdev: pointer to pdev 49 * 50 * Return: QDF_STATUS_SUCCESS on success 51 */ 52 QDF_STATUS ipa_register_is_ipa_ready(struct wlan_objmgr_pdev *pdev); 53 54 /** 55 * ipa_disable_register_cb() - Reset the IPA is ready flag 56 * 57 * Return: Set the ipa_is_ready flag to false when module is 58 * unloaded to indicate that ipa ready cb is not registered 59 */ 60 void ipa_disable_register_cb(void); 61 62 /** 63 * wlan_ipa_config_is_enabled() - api to get IPA enable status 64 * 65 * Return: true - ipa is enabled 66 * false - ipa is not enabled 67 */ 68 static inline bool wlan_ipa_config_is_enabled(void) 69 { 70 return ipa_config_is_enabled(); 71 } 72 73 /** 74 * wlan_ipa_get_hdl() - Get ipa hdl set by IPA driver 75 * @psoc: void psoc object 76 * @pdev_id: pdev id 77 * 78 * Return: IPA handle 79 */ 80 qdf_ipa_wdi_hdl_t wlan_ipa_get_hdl(void *soc, uint8_t pdev_id); 81 82 /** 83 * wlan_ipa_is_vlan enabled() - get IPA vlan support enable status 84 * 85 * Return: true - ipa vlan support is enabled 86 * false - ipa vlan support is not enabled 87 */ 88 bool wlan_ipa_is_vlan_enabled(void); 89 #else 90 91 static inline QDF_STATUS ipa_init(void) 92 { 93 return QDF_STATUS_SUCCESS; 94 } 95 96 static inline QDF_STATUS ipa_deinit(void) 97 { 98 return QDF_STATUS_SUCCESS; 99 } 100 101 static inline QDF_STATUS ipa_register_is_ipa_ready( 102 struct wlan_objmgr_pdev *pdev) 103 { 104 return QDF_STATUS_SUCCESS; 105 } 106 107 static inline void ipa_disable_register_cb(void) 108 { 109 } 110 111 static inline bool wlan_ipa_config_is_enabled(void) 112 { 113 return false; 114 } 115 116 static inline bool wlan_ipa_is_vlan_enabled(void) 117 { 118 return false; 119 } 120 #endif /* IPA_OFFLOAD */ 121 122 #endif /* _WLAN_IPA_OBJ_MGMT_H_ */ 123