1 /* 2 * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021,2023 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 #if defined(WLAN_SUPPORT_INFRA_CTRL_PATH_STATS) || \ 26 defined(WLAN_CONFIG_TELEMETRY_AGENT) 27 QDF_STATUS 28 wmi_unified_infra_cp_stats_request_send(wmi_unified_t wmi_handle, 29 struct infra_cp_stats_cmd_info *param) 30 { 31 if (wmi_handle->ops->send_infra_cp_stats_request_cmd) 32 return wmi_handle->ops->send_infra_cp_stats_request_cmd( 33 wmi_handle, 34 param); 35 36 return QDF_STATUS_E_FAILURE; 37 } 38 39 QDF_STATUS 40 wmi_unified_extract_infra_cp_stats(wmi_unified_t wmi_handle, 41 void *evt_buf, uint32_t evt_buf_len, 42 struct infra_cp_stats_event *params) 43 { 44 if (wmi_handle->ops->extract_infra_cp_stats) 45 return wmi_handle->ops->extract_infra_cp_stats(wmi_handle, 46 evt_buf, 47 evt_buf_len, 48 params); 49 50 return QDF_STATUS_E_FAILURE; 51 } 52 53 #endif /* WLAN_SUPPORT_INFRA_CTRL_PATH_STATS */ 54 55 QDF_STATUS wmi_unified_stats_request_send(wmi_unified_t wmi_handle, 56 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 57 struct stats_request_params *param) 58 { 59 if (wmi_handle->ops->send_stats_request_cmd) 60 return wmi_handle->ops->send_stats_request_cmd(wmi_handle, 61 macaddr, param); 62 63 return QDF_STATUS_E_FAILURE; 64 } 65 66 #ifdef WLAN_FEATURE_BIG_DATA_STATS 67 QDF_STATUS 68 wmi_unified_big_data_stats_request_send(wmi_unified_t wmi_handle, 69 struct stats_request_params *param) 70 { 71 if (wmi_handle->ops->send_big_data_stats_request_cmd) 72 return wmi_handle->ops->send_big_data_stats_request_cmd( 73 wmi_handle, 74 param); 75 76 return QDF_STATUS_E_FAILURE; 77 } 78 #endif 79 80 QDF_STATUS 81 wmi_extract_stats_param(wmi_unified_t wmi_handle, void *evt_buf, 82 wmi_host_stats_event *stats_param) 83 { 84 if (wmi_handle->ops->extract_all_stats_count) 85 return wmi_handle->ops->extract_all_stats_count(wmi_handle, 86 evt_buf, stats_param); 87 88 return QDF_STATUS_E_FAILURE; 89 } 90 91 QDF_STATUS 92 wmi_extract_pdev_stats(wmi_unified_t wmi_handle, void *evt_buf, 93 uint32_t index, wmi_host_pdev_stats *pdev_stats) 94 { 95 if (wmi_handle->ops->extract_pdev_stats) 96 return wmi_handle->ops->extract_pdev_stats(wmi_handle, 97 evt_buf, index, pdev_stats); 98 99 return QDF_STATUS_E_FAILURE; 100 } 101 102 QDF_STATUS 103 wmi_extract_vdev_stats(wmi_unified_t wmi_handle, void *evt_buf, 104 uint32_t index, wmi_host_vdev_stats *vdev_stats) 105 { 106 if (wmi_handle->ops->extract_vdev_stats) 107 return wmi_handle->ops->extract_vdev_stats(wmi_handle, 108 evt_buf, index, vdev_stats); 109 110 return QDF_STATUS_E_FAILURE; 111 } 112 113 QDF_STATUS 114 wmi_extract_peer_stats(wmi_unified_t wmi_handle, void *evt_buf, 115 uint32_t index, wmi_host_peer_stats *peer_stats) 116 { 117 if (wmi_handle->ops->extract_peer_stats) 118 return wmi_handle->ops->extract_peer_stats(wmi_handle, 119 evt_buf, index, peer_stats); 120 121 return QDF_STATUS_E_FAILURE; 122 } 123 124 QDF_STATUS 125 wmi_extract_peer_extd_stats(wmi_unified_t wmi_handle, void *evt_buf, 126 uint32_t index, 127 wmi_host_peer_extd_stats *peer_extd_stats) 128 { 129 if (wmi_handle->ops->extract_peer_extd_stats) 130 return wmi_handle->ops->extract_peer_extd_stats(wmi_handle, 131 evt_buf, index, peer_extd_stats); 132 133 return QDF_STATUS_E_FAILURE; 134 } 135 136 #ifdef WLAN_FEATURE_SON 137 QDF_STATUS 138 wmi_extract_inst_rssi_stats_resp(wmi_unified_t wmi_handle, void *evt_buf, 139 struct wmi_host_inst_rssi_stats_resp *inst_rssi_resp) 140 { 141 if (wmi_handle->ops->extract_inst_rssi_stats_resp) 142 return wmi_handle->ops->extract_inst_rssi_stats_resp( 143 wmi_handle, evt_buf, inst_rssi_resp); 144 145 return QDF_STATUS_E_FAILURE; 146 } 147 #endif 148