xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_dbr_api.c (revision 1397a33f48ea6455be40871470b286e535820eb8)
1 /*
2  * Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 #include "wmi_unified_priv.h"
20 #include "qdf_module.h"
21 
22 QDF_STATUS wmi_unified_dbr_ring_cfg(void *wmi_hdl,
23 				struct direct_buf_rx_cfg_req *cfg)
24 {
25 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
26 
27 	if (wmi_handle->ops->send_dbr_cfg_cmd)
28 		return wmi_handle->ops->send_dbr_cfg_cmd(wmi_handle, cfg);
29 
30 	return QDF_STATUS_E_FAILURE;
31 }
32 
33 QDF_STATUS wmi_extract_dbr_buf_release_fixed(
34 			void *wmi_hdl,
35 			uint8_t *evt_buf,
36 			struct direct_buf_rx_rsp *param)
37 {
38 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
39 
40 	if (wmi_handle->ops->extract_dbr_buf_release_fixed)
41 		return wmi_handle->ops->extract_dbr_buf_release_fixed(
42 				wmi_handle,
43 				evt_buf, param);
44 
45 	return QDF_STATUS_E_FAILURE;
46 }
47 
48 QDF_STATUS wmi_extract_dbr_buf_release_entry(
49 			void *wmi_hdl,
50 			uint8_t *evt_buf, uint8_t idx,
51 			struct direct_buf_rx_entry *param)
52 {
53 	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
54 
55 	if (wmi_handle->ops->extract_dbr_buf_release_entry)
56 		return wmi_handle->ops->extract_dbr_buf_release_entry(
57 				wmi_handle,
58 				evt_buf, idx, param);
59 
60 	return QDF_STATUS_E_FAILURE;
61 }
62 
63 QDF_STATUS wmi_extract_dbr_buf_metadata(
64 			void *wmi_hdl,
65 			uint8_t *evt_buf, uint8_t idx,
66 			struct direct_buf_rx_metadata *param)
67 {
68 	wmi_unified_t wmi_handle = (wmi_unified_t)wmi_hdl;
69 
70 	if (wmi_handle->ops->extract_dbr_buf_metadata)
71 		return wmi_handle->ops->extract_dbr_buf_metadata(
72 				wmi_handle,
73 				evt_buf, idx, param);
74 
75 	return QDF_STATUS_E_FAILURE;
76 }
77