1 /*
2  * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
3  * Copyright (c) 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: Implement API's specific to DBR component.
21  */
22 
23 #ifndef _WMI_UNIFIED_DBR_API_H_
24 #define _WMI_UNIFIED_DBR_API_H_
25 
26 #include "wmi_unified_dbr_param.h"
27 
28 /**
29  * wmi_unified_dbr_ring_cfg: Configure direct buffer rx rings
30  * @wmi_handle: WMI handle
31  * @cfg: pointer to direct buffer rx config request
32  *
33  * Return: QDF status of operation
34  */
35 QDF_STATUS wmi_unified_dbr_ring_cfg(wmi_unified_t wmi_handle,
36 				    struct direct_buf_rx_cfg_req *cfg);
37 
38 /**
39  * wmi_extract_dbr_buf_release_fixed : Extract direct buffer rx fixed param
40  *				     from buffer release event
41  * @wmi_handle: WMI handle
42  * @evt_buf: Event buffer
43  * @param: Pointer to direct buffer rx response struct
44  *
45  * Return: QDF status of operation
46  */
47 QDF_STATUS wmi_extract_dbr_buf_release_fixed(
48 			wmi_unified_t wmi_handle,
49 			uint8_t *evt_buf,
50 			struct direct_buf_rx_rsp *param);
51 
52 /**
53  * wmi_extract_dbr_buf_release_entry: Extract direct buffer rx buffer tlv
54  *
55  * @wmi_handle: WMI handle
56  * @evt_buf: Event buffer
57  * @idx: Index of the module for which capability is received
58  * @param: Pointer to direct buffer rx entry
59  *
60  * Return: QDF status of operation
61  */
62 QDF_STATUS wmi_extract_dbr_buf_release_entry(
63 			wmi_unified_t wmi_handle,
64 			uint8_t *evt_buf, uint8_t idx,
65 			struct direct_buf_rx_entry *param);
66 
67 /**
68  * wmi_extract_dbr_buf_metadata: Extract direct buffer metadata
69  *
70  * @wmi_handle: WMI handle
71  * @evt_buf: Event buffer
72  * @idx: Index of the module for which capability is received
73  * @param: Pointer to direct buffer metadata
74  *
75  * Return: QDF status of operation
76  */
77 QDF_STATUS wmi_extract_dbr_buf_metadata(
78 			wmi_unified_t wmi_handle,
79 			uint8_t *evt_buf, uint8_t idx,
80 			struct direct_buf_rx_metadata *param);
81 
82 /**
83  * wmi_extract_dbr_buf_cv_metadata: Extract direct buffer TxBF cbf cv metadata
84  *
85  * @wmi_handle: WMI handle
86  * @evt_buf: Event buffer
87  * @idx: Index of the module for which capability is received
88  * @param: Pointer to direct buffer cv metadata
89  *
90  * Return: QDF status of operation
91  */
92 QDF_STATUS wmi_extract_dbr_buf_cv_metadata(
93 			wmi_unified_t wmi_handle,
94 			uint8_t *evt_buf, uint8_t idx,
95 			struct direct_buf_rx_cv_metadata *param);
96 
97 /**
98  * wmi_extract_dbr_buf_cqi_metadata: Extract direct buffer TxBF cqi metadata
99  *
100  * @wmi_handle: WMI handle
101  * @evt_buf: Event buffer
102  * @idx: Index of the module for which capability is received
103  * @param: Pointer to direct buffer cqi metadata
104  *
105  * Return: QDF status of operation
106  */
107 QDF_STATUS wmi_extract_dbr_buf_cqi_metadata(
108 			wmi_unified_t wmi_handle,
109 			uint8_t *evt_buf, uint8_t idx,
110 			struct direct_buf_rx_cqi_metadata *param);
111 #endif /* _WMI_UNIFIED_DBR_API_H_ */
112