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