From 06ef93b2c162d11d5a022a1b49a9da703035c7a5 Mon Sep 17 00:00:00 2001 From: Naga Date: Fri, 1 Jun 2018 16:07:16 +0530 Subject: [PATCH] qcacmn: Add os_if implementation of pdev cp stats Add change to support get API for pdev cp stats from within cp stats component Change-Id: Ib791a32a912b7f7e8b7c3b5ebcb3f4e64cdf1f6f CRs-Fixed: 2247228 --- .../cp_stats/inc/wlan_cfg80211_ic_cp_stats.h | 10 +++++++ .../cp_stats/src/wlan_cfg80211_ic_cp_stats.c | 28 ++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/os_if/linux/cp_stats/inc/wlan_cfg80211_ic_cp_stats.h b/os_if/linux/cp_stats/inc/wlan_cfg80211_ic_cp_stats.h index 84a11434e9..ef4757bde4 100644 --- a/os_if/linux/cp_stats/inc/wlan_cfg80211_ic_cp_stats.h +++ b/os_if/linux/cp_stats/inc/wlan_cfg80211_ic_cp_stats.h @@ -50,5 +50,15 @@ int wlan_cfg80211_get_peer_cp_stats(struct wlan_objmgr_peer *peer_obj, int wlan_cfg80211_get_vdev_cp_stats(struct wlan_objmgr_vdev *vdev_obj, struct vdev_ic_cp_stats *vdev_cp_stats); +/** + * wlan_cfg80211_get_pdev_cp_stats() - API to get pdev cp stats object + * @pdev_obj: pdev object as input + * @pdev_cp_stats: pdev cp stats object to populate + * + * Return: 0 on success, negative value on failure + */ +int wlan_cfg80211_get_pdev_cp_stats(struct wlan_objmgr_pdev *pdev_obj, + struct pdev_ic_cp_stats *pdev_cp_stats); + #endif /* QCA_SUPPORT_CP_STATS */ #endif /* __WLAN_CFG80211_IC_CP_STATS_H__ */ diff --git a/os_if/linux/cp_stats/src/wlan_cfg80211_ic_cp_stats.c b/os_if/linux/cp_stats/src/wlan_cfg80211_ic_cp_stats.c index ea7422df1b..b2924029e3 100644 --- a/os_if/linux/cp_stats/src/wlan_cfg80211_ic_cp_stats.c +++ b/os_if/linux/cp_stats/src/wlan_cfg80211_ic_cp_stats.c @@ -19,7 +19,7 @@ /** * DOC: wlan_cfg80211_ic_cp_stats.c * - * This file provide definitions to cp stats supported cfg80211 cmd handlers + * This file provide definitions to os_if cp_stats APIs */ #include #include @@ -73,3 +73,29 @@ int wlan_cfg80211_get_vdev_cp_stats(struct wlan_objmgr_vdev *vdev_obj, return qdf_status_to_os_return(status); } + +int wlan_cfg80211_get_pdev_cp_stats(struct wlan_objmgr_pdev *pdev_obj, + struct pdev_ic_cp_stats *pdev_cp_stats) +{ + QDF_STATUS status; + + if (!pdev_obj) { + cfg80211_err("Invalid input, pdev obj is NULL"); + return -EINVAL; + } + + if (!pdev_cp_stats) { + cfg80211_err("Invalid input, pdev cp obj is NULL"); + return -EINVAL; + } + + status = wlan_ucfg_get_pdev_cp_stats(pdev_obj, pdev_cp_stats); + if (QDF_IS_STATUS_ERROR(status)) { + cfg80211_err("wlan_cfg80211_get_pdev_cp_stats status: %d", + status); + } + + return qdf_status_to_os_return(status); +} + +qdf_export_symbol(wlan_cfg80211_get_pdev_cp_stats);