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