1 /*
2 * Copyright (c) 2023 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 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17 /**
18 * DOC: contains ll_sap definitions specific to the ll_sap module
19 */
20
21 #ifndef __OS_IF_LL_SAP_H__
22 #define __OS_IF_LL_SAP_H__
23
24 #include "qdf_types.h"
25 #include "qca_vendor.h"
26 #include "wlan_objmgr_vdev_obj.h"
27
28 #ifdef WLAN_FEATURE_LL_LT_SAP
29
30 /**
31 * osif_ll_sap_register_cb() - Register ll_sap osif callbacks
32 *
33 * Return: QDF_STATUS
34 */
35 QDF_STATUS osif_ll_sap_register_cb(void);
36
37 /**
38 * osif_ll_sap_unregister_cb() - un-register ll_sap osif callbacks
39 *
40 * Return: QDF_STATUS
41 */
42 void osif_ll_sap_unregister_cb(void);
43
44 /**
45 * osif_ll_lt_sap_request_for_audio_transport_switch() - Userspace request for
46 * the audio transport switch
47 * @vdev: Vdev on which the request is received
48 * @req_type: Type of the request
49 *
50 * Return: QDF_STATUS
51 */
52 QDF_STATUS osif_ll_lt_sap_request_for_audio_transport_switch(
53 struct wlan_objmgr_vdev *vdev,
54 enum qca_wlan_audio_transport_switch_type req_type);
55
56 /**
57 * osif_ll_lt_sap_deliver_audio_transport_switch_resp() - Deliver userspace
58 * response for the audio transport switch request to BS_SM
59 * @vdev: Vdev on which the response is received
60 * @req_type: Type of the request
61 * @status: status of the response
62 *
63 * Return: QDF_STATUS
64 */
65 QDF_STATUS osif_ll_lt_sap_deliver_audio_transport_switch_resp(
66 struct wlan_objmgr_vdev *vdev,
67 enum qca_wlan_audio_transport_switch_type req_type,
68 enum qca_wlan_audio_transport_switch_status status);
69
70 #else
osif_ll_sap_register_cb(void)71 static inline QDF_STATUS osif_ll_sap_register_cb(void)
72 {
73 return QDF_STATUS_SUCCESS;
74 }
75
osif_ll_sap_unregister_cb(void)76 static inline void osif_ll_sap_unregister_cb(void) {}
77
78 static inline QDF_STATUS
osif_ll_lt_sap_request_for_audio_transport_switch(struct wlan_objmgr_vdev * vdev,enum qca_wlan_audio_transport_switch_type req_type)79 osif_ll_lt_sap_request_for_audio_transport_switch(
80 struct wlan_objmgr_vdev *vdev,
81 enum qca_wlan_audio_transport_switch_type req_type)
82 {
83 return QDF_STATUS_E_INVAL;
84 }
85
86 static inline QDF_STATUS
osif_ll_lt_sap_deliver_audio_transport_switch_resp(struct wlan_objmgr_vdev * vdev,enum qca_wlan_audio_transport_switch_type req_type,enum qca_wlan_audio_transport_switch_status status)87 osif_ll_lt_sap_deliver_audio_transport_switch_resp(
88 struct wlan_objmgr_vdev *vdev,
89 enum qca_wlan_audio_transport_switch_type req_type,
90 enum qca_wlan_audio_transport_switch_status status)
91 {
92 return QDF_STATUS_E_INVAL;
93 }
94
95 #endif /* WLAN_FEATURE_LL_LT_SAP */
96 #endif /* __OS_IF_LL_SAP_H__*/
97