1 /*
2 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
3 *
4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17 /**
18 * DOC: wlan_qmi_ucfg_api.h
19 *
20 * QMI component north bound interface
21 */
22
23 #ifndef _WLAN_QMI_UCFG_API_H_
24 #define _WLAN_QMI_UCFG_API_H_
25
26 #include <wlan_objmgr_psoc_obj.h>
27 #include <wlan_qmi_public_struct.h>
28
29 #ifdef QMI_COMPONENT_ENABLE
30 /**
31 * ucfg_qmi_init() - API to init QMI component
32 *
33 * This API is invoked from hdd_component_init during all component init.
34 * This API will register all required handlers for psoc object
35 * create/delete notification.
36 *
37 * Return: QDF status
38 */
39 QDF_STATUS ucfg_qmi_init(void);
40
41 /**
42 * ucfg_qmi_deinit() - API to deinit QMI component
43 *
44 * This API is invoked from hdd_component_deinit during all component deinit.
45 * This API will unregister all required handlers for psoc object
46 * create/delete notification.
47 *
48 * Return: QDF status
49 */
50 QDF_STATUS ucfg_qmi_deinit(void);
51
52 /**
53 * ucfg_qmi_register_os_if_callbacks() - API to register os if callbacks with
54 * QMI component
55 * @psoc: PSOC handle
56 * @cb_obj: callback object
57 *
58 * Return: None
59 */
60 void ucfg_qmi_register_os_if_callbacks(struct wlan_objmgr_psoc *psoc,
61 struct wlan_qmi_psoc_callbacks *cb_obj);
62 #else
ucfg_qmi_init(void)63 static inline QDF_STATUS ucfg_qmi_init(void)
64 {
65 return QDF_STATUS_SUCCESS;
66 }
67
ucfg_qmi_deinit(void)68 static inline QDF_STATUS ucfg_qmi_deinit(void)
69 {
70 return QDF_STATUS_SUCCESS;
71 }
72
73 static inline
ucfg_qmi_register_os_if_callbacks(struct wlan_objmgr_psoc * psoc,struct wlan_qmi_psoc_callbacks * cb_obj)74 void ucfg_qmi_register_os_if_callbacks(struct wlan_objmgr_psoc *psoc,
75 struct wlan_qmi_psoc_callbacks *cb_obj)
76 {
77 }
78 #endif
79 #endif
80