xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_cp_stats_api.c (revision 901120c066e139c7f8a2c8e4820561fdd83c67ef)
1 /*
2  * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
3  * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 /**
18  * DOC: Implement API's specific to cp stats component.
19  */
20 
21 #include "wmi_unified_priv.h"
22 #include "wmi_unified_param.h"
23 #include "wmi_unified_cp_stats_api.h"
24 
25 #ifdef WLAN_SUPPORT_INFRA_CTRL_PATH_STATS
26 QDF_STATUS
27 wmi_unified_infra_cp_stats_request_send(wmi_unified_t wmi_handle,
28 					struct infra_cp_stats_cmd_info *param)
29 {
30 	if (wmi_handle->ops->send_infra_cp_stats_request_cmd)
31 		return wmi_handle->ops->send_infra_cp_stats_request_cmd(
32 								wmi_handle,
33 								param);
34 
35 	return QDF_STATUS_E_FAILURE;
36 }
37 
38 QDF_STATUS
39 wmi_unified_extract_infra_cp_stats(wmi_unified_t wmi_handle,
40 				   void *evt_buf, uint32_t evt_buf_len,
41 				   struct infra_cp_stats_event *params)
42 {
43 	if (wmi_handle->ops->extract_infra_cp_stats)
44 		return wmi_handle->ops->extract_infra_cp_stats(wmi_handle,
45 								   evt_buf,
46 								   evt_buf_len,
47 								   params);
48 
49 	return QDF_STATUS_E_FAILURE;
50 }
51 
52 #endif /* WLAN_SUPPORT_INFRA_CTRL_PATH_STATS */
53 
54 QDF_STATUS wmi_unified_stats_request_send(wmi_unified_t wmi_handle,
55 					  uint8_t macaddr[QDF_MAC_ADDR_SIZE],
56 					  struct stats_request_params *param)
57 {
58 	if (wmi_handle->ops->send_stats_request_cmd)
59 		return wmi_handle->ops->send_stats_request_cmd(wmi_handle,
60 				   macaddr, param);
61 
62 	return QDF_STATUS_E_FAILURE;
63 }
64 
65 #ifdef WLAN_FEATURE_BIG_DATA_STATS
66 QDF_STATUS
67 wmi_unified_big_data_stats_request_send(wmi_unified_t wmi_handle,
68 					struct stats_request_params *param)
69 {
70 	if (wmi_handle->ops->send_big_data_stats_request_cmd)
71 		return wmi_handle->ops->send_big_data_stats_request_cmd(
72 								wmi_handle,
73 								param);
74 
75 	return QDF_STATUS_E_FAILURE;
76 }
77 #endif
78 
79 QDF_STATUS
80 wmi_extract_stats_param(wmi_unified_t wmi_handle, void *evt_buf,
81 			wmi_host_stats_event *stats_param)
82 {
83 	if (wmi_handle->ops->extract_all_stats_count)
84 		return wmi_handle->ops->extract_all_stats_count(wmi_handle,
85 			evt_buf, stats_param);
86 
87 	return QDF_STATUS_E_FAILURE;
88 }
89 
90 QDF_STATUS
91 wmi_extract_pdev_stats(wmi_unified_t wmi_handle, void *evt_buf,
92 		       uint32_t index, wmi_host_pdev_stats *pdev_stats)
93 {
94 	if (wmi_handle->ops->extract_pdev_stats)
95 		return wmi_handle->ops->extract_pdev_stats(wmi_handle,
96 			evt_buf, index, pdev_stats);
97 
98 	return QDF_STATUS_E_FAILURE;
99 }
100 
101 QDF_STATUS
102 wmi_extract_vdev_stats(wmi_unified_t wmi_handle, void *evt_buf,
103 		       uint32_t index, wmi_host_vdev_stats *vdev_stats)
104 {
105 	if (wmi_handle->ops->extract_vdev_stats)
106 		return wmi_handle->ops->extract_vdev_stats(wmi_handle,
107 			evt_buf, index, vdev_stats);
108 
109 	return QDF_STATUS_E_FAILURE;
110 }
111 
112 QDF_STATUS
113 wmi_extract_peer_stats(wmi_unified_t wmi_handle, void *evt_buf,
114 		       uint32_t index, wmi_host_peer_stats *peer_stats)
115 {
116 	if (wmi_handle->ops->extract_peer_stats)
117 		return wmi_handle->ops->extract_peer_stats(wmi_handle,
118 			evt_buf, index, peer_stats);
119 
120 	return QDF_STATUS_E_FAILURE;
121 }
122 
123 QDF_STATUS
124 wmi_extract_peer_extd_stats(wmi_unified_t wmi_handle, void *evt_buf,
125 			    uint32_t index,
126 			    wmi_host_peer_extd_stats *peer_extd_stats)
127 {
128 	if (wmi_handle->ops->extract_peer_extd_stats)
129 		return wmi_handle->ops->extract_peer_extd_stats(wmi_handle,
130 			evt_buf, index, peer_extd_stats);
131 
132 	return QDF_STATUS_E_FAILURE;
133 }
134 
135 #ifdef WLAN_FEATURE_SON
136 QDF_STATUS
137 wmi_extract_inst_rssi_stats_resp(wmi_unified_t wmi_handle, void *evt_buf,
138 			struct wmi_host_inst_rssi_stats_resp *inst_rssi_resp)
139 {
140 	if (wmi_handle->ops->extract_inst_rssi_stats_resp)
141 		return wmi_handle->ops->extract_inst_rssi_stats_resp(
142 				wmi_handle, evt_buf, inst_rssi_resp);
143 
144 	return QDF_STATUS_E_FAILURE;
145 }
146 #endif
147