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