ソースを参照

qcacmn: Add os_if implementation of vdev cp stats

Add change to support get API for vdev cp stats from
within cp stats component

Change-Id: Ice1c9d6858cbf7241791a6901db7934217bb6076
CRs-Fixed: 2247228
Naga 7 年 前
コミット
9eeb35db5f

+ 10 - 0
os_if/linux/cp_stats/inc/wlan_cfg80211_ic_cp_stats.h

@@ -40,5 +40,15 @@
 int wlan_cfg80211_get_peer_cp_stats(struct wlan_objmgr_peer *peer_obj,
 				    struct peer_ic_cp_stats *peer_cp_stats);
 
+/**
+ * wlan_cfg80211_get_vdev_cp_stats() - API to get vdev stats object
+ * @vdev_obj: vdev object as input
+ * @vdev_cp_stats: vdev stats object to populate
+ *
+ * Return: 0 on success, negative value on failure
+ */
+int wlan_cfg80211_get_vdev_cp_stats(struct wlan_objmgr_vdev *vdev_obj,
+				    struct vdev_ic_cp_stats *vdev_cp_stats);
+
 #endif /* QCA_SUPPORT_CP_STATS */
 #endif /* __WLAN_CFG80211_IC_CP_STATS_H__ */

+ 24 - 0
os_if/linux/cp_stats/src/wlan_cfg80211_ic_cp_stats.c

@@ -49,3 +49,27 @@ int wlan_cfg80211_get_peer_cp_stats(struct wlan_objmgr_peer *peer_obj,
 
 	return qdf_status_to_os_return(status);
 }
+
+int wlan_cfg80211_get_vdev_cp_stats(struct wlan_objmgr_vdev *vdev_obj,
+				    struct vdev_ic_cp_stats *vdev_cp_stats)
+{
+	QDF_STATUS status;
+
+	if (!vdev_obj) {
+		cfg80211_err("Invalid input, vdev obj is NULL");
+		return -EINVAL;
+	}
+
+	if (!vdev_cp_stats) {
+		cfg80211_err("Invalid input, vdev cp obj is NULL");
+		return -EINVAL;
+	}
+
+	status = wlan_ucfg_get_vdev_cp_stats(vdev_obj, vdev_cp_stats);
+	if (QDF_IS_STATUS_ERROR(status)) {
+		cfg80211_err("wlan_cfg80211_get_vdev_cp_stats status: %d",
+			     status);
+	}
+
+	return qdf_status_to_os_return(status);
+}