1 /* 2 * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved. 3 * Copyright (c) 2022 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_mc_cp_stats_api.h" 24 25 QDF_STATUS wmi_extract_per_chain_rssi_stats(wmi_unified_t wmi_handle,void * evt_buf,uint32_t index,struct wmi_host_per_chain_rssi_stats * rssi_stats)26 wmi_extract_per_chain_rssi_stats(wmi_unified_t wmi_handle, void *evt_buf, 27 uint32_t index, 28 struct wmi_host_per_chain_rssi_stats *rssi_stats) 29 { 30 if (wmi_handle->ops->extract_per_chain_rssi_stats) 31 return wmi_handle->ops->extract_per_chain_rssi_stats(wmi_handle, 32 evt_buf, index, rssi_stats); 33 34 return QDF_STATUS_E_FAILURE; 35 } 36 37 QDF_STATUS wmi_extract_peer_adv_stats(wmi_unified_t wmi_handle,void * evt_buf,struct wmi_host_peer_adv_stats * peer_adv_stats)38 wmi_extract_peer_adv_stats(wmi_unified_t wmi_handle, void *evt_buf, 39 struct wmi_host_peer_adv_stats *peer_adv_stats) 40 { 41 if (wmi_handle->ops->extract_peer_adv_stats) 42 return wmi_handle->ops->extract_peer_adv_stats(wmi_handle, 43 evt_buf, peer_adv_stats); 44 45 return QDF_STATUS_E_FAILURE; 46 } 47 48 #ifdef WLAN_FEATURE_MIB_STATS wmi_extract_mib_stats(wmi_unified_t wmi_handle,void * evt_buf,struct mib_stats_metrics * mib_stats)49 QDF_STATUS wmi_extract_mib_stats(wmi_unified_t wmi_handle, void *evt_buf, 50 struct mib_stats_metrics *mib_stats) 51 { 52 if (wmi_handle->ops->extract_mib_stats) 53 return wmi_handle->ops->extract_mib_stats(wmi_handle, 54 evt_buf, 55 mib_stats); 56 57 return QDF_STATUS_E_FAILURE; 58 } 59 #endif 60 61 QDF_STATUS wmi_unified_peer_stats_request_send(wmi_unified_t wmi_handle,struct peer_stats_request_params * param)62 wmi_unified_peer_stats_request_send(wmi_unified_t wmi_handle, 63 struct peer_stats_request_params *param) 64 { 65 if (wmi_handle->ops->send_request_peer_stats_info_cmd) 66 return wmi_handle->ops->send_request_peer_stats_info_cmd( 67 wmi_handle, param); 68 69 return QDF_STATUS_E_FAILURE; 70 } 71 72 QDF_STATUS wmi_extract_peer_stats_param(wmi_unified_t wmi_handle,void * evt_buf,wmi_host_stats_event * stats_param)73 wmi_extract_peer_stats_param(wmi_unified_t wmi_handle, void *evt_buf, 74 wmi_host_stats_event *stats_param) 75 { 76 if (wmi_handle->ops->extract_peer_stats_count) 77 return wmi_handle->ops->extract_peer_stats_count(wmi_handle, 78 evt_buf, stats_param); 79 80 return QDF_STATUS_E_FAILURE; 81 } 82 83 QDF_STATUS wmi_extract_peer_tx_pkt_per_mcs(wmi_unified_t wmi_handle,void * evt_buf,uint32_t index,wmi_host_peer_stats_info * peer_stats_info)84 wmi_extract_peer_tx_pkt_per_mcs(wmi_unified_t wmi_handle, void *evt_buf, 85 uint32_t index, 86 wmi_host_peer_stats_info *peer_stats_info) 87 { 88 if (wmi_handle->ops->extract_peer_tx_pkt_per_mcs) 89 return wmi_handle->ops->extract_peer_tx_pkt_per_mcs(wmi_handle, 90 evt_buf, index, peer_stats_info); 91 92 return QDF_STATUS_E_FAILURE; 93 } 94 95 QDF_STATUS wmi_extract_peer_rx_pkt_per_mcs(wmi_unified_t wmi_handle,void * evt_buf,uint32_t index,wmi_host_peer_stats_info * peer_stats_info)96 wmi_extract_peer_rx_pkt_per_mcs(wmi_unified_t wmi_handle, void *evt_buf, 97 uint32_t index, 98 wmi_host_peer_stats_info *peer_stats_info) 99 { 100 if (wmi_handle->ops->extract_peer_rx_pkt_per_mcs) 101 return wmi_handle->ops->extract_peer_rx_pkt_per_mcs(wmi_handle, 102 evt_buf, index, peer_stats_info); 103 104 return QDF_STATUS_E_FAILURE; 105 } 106 107 QDF_STATUS wmi_extract_peer_stats_info(wmi_unified_t wmi_handle,void * evt_buf,uint32_t index,wmi_host_peer_stats_info * peer_stats_info)108 wmi_extract_peer_stats_info(wmi_unified_t wmi_handle, void *evt_buf, 109 uint32_t index, 110 wmi_host_peer_stats_info *peer_stats_info) 111 { 112 if (wmi_handle->ops->extract_peer_stats_info) 113 return wmi_handle->ops->extract_peer_stats_info(wmi_handle, 114 evt_buf, index, peer_stats_info); 115 116 return QDF_STATUS_E_FAILURE; 117 } 118 119 #ifdef WLAN_FEATURE_BIG_DATA_STATS 120 QDF_STATUS wmi_extract_big_data_stats_param(wmi_unified_t wmi_handle,void * evt_buf,struct big_data_stats_event * stats_param)121 wmi_extract_big_data_stats_param(wmi_unified_t wmi_handle, void *evt_buf, 122 struct big_data_stats_event *stats_param) 123 { 124 if (wmi_handle->ops->extract_big_data_stats) 125 return wmi_handle->ops->extract_big_data_stats(wmi_handle, 126 evt_buf, stats_param); 127 128 return QDF_STATUS_E_FAILURE; 129 } 130 #endif 131