qcacld-3.0: Add support for ctrl path stats infrastructure

Implement support for sending new control path stats
infrastructure via WMI_REQUEST_CTRL_PATH_STATS_CMDID and
WMI_CTRL_PATH_STATS_EVENTID in cp stats component. Also add
support for TWT Get statistics through this new method.

Change-Id: I62b3a525cde797cd5b809ca9e8e6c91d5651c6b4
CRs-Fixed: 2851016
Cette révision appartient à :
Rajasekaran Kalidoss
2020-11-26 21:20:26 +05:30
révisé par snandini
Parent 2bd65bf01f
révision 744ae542a0
7 fichiers modifiés avec 610 ajouts et 9 suppressions

Voir le fichier

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -31,6 +31,10 @@
/* For WMI_MAX_CHAINS */
#include "wmi_unified.h"
#ifdef QCA_SUPPORT_MC_CP_STATS
#include "wlan_cp_stats_public_structs.h"
#endif
#ifdef WLAN_SUPPORT_TWT
#include <wmi_unified_twt_param.h>

Voir le fichier

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2018, 2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -48,14 +48,31 @@ uint8_t target_if_mc_cp_get_mac_id(struct vdev_mlme_obj *vdev_mlme);
* @psoc: pointer to psoc object
* @event: event parameters
*
* Return: QDF_STATUS_SUCCESS on Success, other QDF_STATUS error codes on
* failure
*/
QDF_STATUS
tgt_mc_cp_stats_process_stats_event(struct wlan_objmgr_psoc *psoc,
struct stats_event *ev);
#ifdef WLAN_SUPPORT_INFRA_CTRL_PATH_STATS
/**
* tgt_mc_cp_stats_process_infra_stats_event(): API to process event from
* cp stats infrastrucure
* @psoc: pointer to psoc object
* @infra_event: infra cp stats event parameters
*
* Return: status of operation
*/
QDF_STATUS tgt_mc_cp_stats_process_stats_event(struct wlan_objmgr_psoc *psoc,
struct stats_event *event);
QDF_STATUS tgt_mc_cp_stats_process_infra_stats_event(
struct wlan_objmgr_psoc *psoc,
struct infra_cp_stats_event *infra_event);
#endif
/**
* tgt_send_mc_cp_stats_req(): API to send stats request to lmac
* @psoc: pointer to psoc object
* @req: pointer to stats request
*
* Return: status of operation
*/

Voir le fichier

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -153,6 +153,20 @@ QDF_STATUS ucfg_mc_cp_stats_send_stats_request(struct wlan_objmgr_vdev *vdev,
enum stats_req_type type,
struct request_info *info);
/**
* wlan_cfg80211_mc_twt_get_infra_cp_stats() - send twt get statistic request
* @vdev: pointer to vdev object
* @dialog_id: TWT session dialog id
* @twt_peer_mac: mac address of the peer
* @errno: error code
*
* Return: pointer to infra cp stats event for success or NULL for failure
*/
struct infra_cp_stats_event *
wlan_cfg80211_mc_twt_get_infra_cp_stats(struct wlan_objmgr_vdev *vdev,
uint32_t dialog_id,
uint8_t twt_peer_mac[QDF_MAC_ADDR_SIZE],
int *errno);
/**
* ucfg_mc_cp_stats_get_tx_power() - API to fetch tx_power
* @vdev: pointer to vdev object
@@ -221,7 +235,6 @@ bool ucfg_mc_cp_stats_is_req_pending(struct wlan_objmgr_psoc *psoc,
QDF_STATUS ucfg_mc_cp_stats_set_pending_req(struct wlan_objmgr_psoc *psoc,
enum stats_req_type type,
struct request_info *req);
/**
* ucfg_mc_cp_stats_reset_pending_req() - API to reset pending request
* @psoc: pointer to psoc object
@@ -250,10 +263,20 @@ QDF_STATUS ucfg_mc_cp_stats_get_pending_req(struct wlan_objmgr_psoc *psoc,
enum stats_req_type type,
struct request_info *info);
/**
* ucfg_mc_infra_cp_stats_free_stats_resources() - API to free buffers within
* infra cp stats_event structure
* @ev: structure whose buffer are to freed
*
* Return: none
*/
void
ucfg_mc_infra_cp_stats_free_stats_resources(struct infra_cp_stats_event *ev);
/**
* ucfg_mc_cp_stats_free_stats_resources() - API to free buffers within stats_event
* structure
* @ev: strcture whose buffer are to freed
* @ev: structure whose buffer are to freed
*
* Return: none
*/