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 b2dadd7c8258..66ab78badd06 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 @@ -32,6 +32,7 @@ #ifdef WLAN_ATF_ENABLE #include #endif +#include /** * wlan_cfg80211_get_peer_cp_stats() - API to get peer stats object @@ -93,5 +94,16 @@ int wlan_cfg80211_get_atf_peer_cp_stats_from_mac( struct atf_peer_cp_stats *atf_cp_stats); #endif /* WLAN_ATF_ENABLE */ +/** + * wlan_cfg80211_get_dcs_pdev_cp_stats() - API to get DCS chan stats + * @pdev_obj: pdev object as input + * @dcs_chan_stats: DCS pdev stats object to populate + * + * Return: 0 on success, negative value on failure + */ +int wlan_cfg80211_get_dcs_pdev_cp_stats( + struct wlan_objmgr_pdev *pdev_obj, + struct pdev_dcs_chan_stats *dcs_chan_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 f1ddf35ed49a..4dcc0d5c8cdc 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 @@ -158,3 +158,28 @@ int wlan_cfg80211_get_atf_peer_cp_stats_from_mac( return qdf_status_to_os_return(status); } #endif + +int +wlan_cfg80211_get_dcs_pdev_cp_stats(struct wlan_objmgr_pdev *pdev_obj, + struct pdev_dcs_chan_stats *dcs_chan_stats) +{ + QDF_STATUS status; + + if (!pdev_obj) { + cfg80211_err("Invalid input, pdev obj is NULL"); + return -EINVAL; + } + + if (!dcs_chan_stats) { + cfg80211_err("Invalid input, dcs chan stats is NULL"); + return -EINVAL; + } + + status = wlan_ucfg_get_dcs_chan_stats(pdev_obj, dcs_chan_stats); + if (QDF_IS_STATUS_ERROR(status)) { + cfg80211_err("wlan_cfg80211_get_dcs_pdev_cp_stats status: %d", + status); + } + + return qdf_status_to_os_return(status); +}