qcacmn: Decouple FEATURE_PERPKT_INFO from MESH_MODE_SUPPORT

The per packet info feature can be enbaled to support enhanced
stats independent of mesh mode.

Change-Id: I852e7a958c520901b6f418d30deb53fa2f68fb68
CRs-Fixed: 3079000
This commit is contained in:
Subrat Dash
2022-01-14 12:14:45 +05:30
committed by Madan Koyyalamudi
parent 1f1b921796
commit 20b758944f
10 changed files with 66 additions and 45 deletions

View File

@@ -2755,4 +2755,30 @@ void cdp_set_rtpm_tput_policy_requirement(ol_txrx_soc_handle soc,
#endif /* FEATURE_RUNTIME_PM */
/**
* cdp_enable_mon_reap_timer() - enable/disable reap timer
* @soc: Datapath soc handle
* @pdev_id: id of objmgr pdev
* @enable: enable/disable reap timer of monitor status ring
*
* Return: none
*/
static inline void
cdp_enable_mon_reap_timer(ol_txrx_soc_handle soc, uint8_t pdev_id,
bool enable)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
"%s invalid instance", __func__);
QDF_BUG(0);
return;
}
if (!soc->ops->mon_ops ||
!soc->ops->mon_ops->txrx_enable_mon_reap_timer)
return;
return soc->ops->mon_ops->txrx_enable_mon_reap_timer(soc, pdev_id,
enable);
}
#endif /* _CDP_TXRX_CMN_H_ */

View File

@@ -1077,33 +1077,6 @@ cdp_cfr_clr_dbg_stats(ol_txrx_soc_handle soc, uint8_t pdev_id)
soc->ops->cfr_ops->txrx_clear_cfr_dbg_stats(soc, pdev_id);
}
/**
* cdp_enable_mon_reap_timer() - enable/disable reap timer
* @soc: Datapath soc handle
* @pdev_id: id of objmgr pdev
* @enable: enable/disable reap timer of monitor status ring
*
* Return: none
*/
static inline void
cdp_enable_mon_reap_timer(ol_txrx_soc_handle soc, uint8_t pdev_id,
bool enable)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
"%s invalid instance", __func__);
QDF_BUG(0);
return;
}
if (!soc->ops->cfr_ops ||
!soc->ops->cfr_ops->txrx_enable_mon_reap_timer)
return;
return soc->ops->cfr_ops->txrx_enable_mon_reap_timer(soc, pdev_id,
enable);
}
#endif
#if defined(WLAN_TX_PKT_CAPTURE_ENH) || defined(WLAN_RX_PKT_CAPTURE_ENH)

View File

@@ -889,6 +889,14 @@ struct cdp_me_ops {
bool is_igmp, bool is_dms_pkt);
};
/**
* struct cdp_mon_ops - host mon ops
* @txrx_reset_monitor_mode: Handler to reset monitor mode
* @txrx_deliver_tx_mgmt: deliver mgmt tx frame
* @txrx_set_advance_monitor_filter: set advanced monitor mode
* @config_full_mon_mode: configure full monitor mode
* @txrx_enable_mon_reap_timer: Enable/Disable reap timer of monitor status ring
*/
struct cdp_mon_ops {
QDF_STATUS (*txrx_reset_monitor_mode)
@@ -912,6 +920,11 @@ struct cdp_mon_ops {
QDF_STATUS
(*get_mon_pdev_rx_stats)(struct cdp_soc_t *soc, uint8_t pdev_id,
struct cdp_pdev_mon_stats *stats);
/* Configure monitor status srng reap timer */
void (*txrx_enable_mon_reap_timer)(struct cdp_soc_t *soc_hdl,
uint8_t pdev_id,
bool enable);
};
struct cdp_host_stats_ops {
@@ -1850,7 +1863,6 @@ struct cdp_rx_offld_ops {
* @txrx_set_cfr_rcc: Handler to enable/disable CFR mode
* @txrx_get_cfr_dbg_stats: Handler to get debug statistics for CFR mode
* @txrx_clear_cfr_dbg_stats: Handler to clear debug statistics for CFR mode
* @txrx_enable_mon_reap_timer: Enable/Disable reap timer of monitor status ring
*/
struct cdp_cfr_ops {
void (*txrx_cfr_filter)(struct cdp_soc_t *soc_hdl,
@@ -1867,9 +1879,6 @@ struct cdp_cfr_ops {
struct cdp_cfr_rcc_stats *buf);
void (*txrx_clear_cfr_dbg_stats)(struct cdp_soc_t *soc_hdl,
uint8_t pdev_id);
void (*txrx_enable_mon_reap_timer)(struct cdp_soc_t *soc_hdl,
uint8_t pdev_id,
bool enable);
};
#endif

View File

@@ -12425,7 +12425,6 @@ static struct cdp_cfr_ops dp_ops_cfr = {
.txrx_set_cfr_rcc = dp_set_cfr_rcc,
.txrx_get_cfr_dbg_stats = dp_get_cfr_dbg_stats,
.txrx_clear_cfr_dbg_stats = dp_clear_cfr_dbg_stats,
.txrx_enable_mon_reap_timer = NULL,
};
#endif

View File

@@ -22,9 +22,13 @@
#include <qdf_types.h>
#include <qdf_nbuf.h>
#include "dp_types.h"
#if defined(MESH_MODE_SUPPORT) || defined(FEATURE_PERPKT_INFO)
#ifdef FEATURE_PERPKT_INFO
#if defined(QCA_SUPPORT_LATENCY_CAPTURE) || \
defined(QCA_TX_CAPTURE_SUPPORT) || \
defined(QCA_MCOPY_SUPPORT)
#include "if_meta_hdr.h"
#endif
#endif
#include "dp_internal.h"
#include "hal_tx.h"
#include <qdf_tracepoint.h>
@@ -716,6 +720,9 @@ static inline void dp_tx_vdev_update_search_flags(struct dp_vdev *vdev)
#endif /* QCA_HOST_MODE_WIFI_DISABLED */
#if defined(QCA_SUPPORT_LATENCY_CAPTURE) || \
defined(QCA_TX_CAPTURE_SUPPORT) || \
defined(QCA_MCOPY_SUPPORT)
#ifdef FEATURE_PERPKT_INFO
QDF_STATUS
dp_get_completion_indication_for_stack(struct dp_soc *soc,
@@ -728,6 +735,7 @@ dp_get_completion_indication_for_stack(struct dp_soc *soc,
void dp_send_completion_to_stack(struct dp_soc *soc, struct dp_pdev *pdev,
uint16_t peer_id, uint32_t ppdu_id,
qdf_nbuf_t netbuf);
#endif
#else
static inline
QDF_STATUS dp_get_completion_indication_for_stack(struct dp_soc *soc,

View File

@@ -1335,6 +1335,9 @@ void dp_hmwds_ast_add_notify(struct dp_peer *peer,
#endif
}
#if defined(QCA_SUPPORT_LATENCY_CAPTURE) || \
defined(QCA_TX_CAPTURE_SUPPORT) || \
defined(QCA_MCOPY_SUPPORT)
#ifdef FEATURE_PERPKT_INFO
/**
* dp_get_completion_indication_for_stack() - send completion to stack
@@ -1441,3 +1444,4 @@ void dp_send_completion_to_stack(struct dp_soc *soc, struct dp_pdev *pdev,
WDI_NO_VAL, pdev->pdev_id);
}
#endif
#endif

View File

@@ -1219,6 +1219,7 @@ struct cdp_mon_ops dp_ops_mon_1_0 = {
.config_full_mon_mode = dp_config_full_mon_mode,
.soc_config_full_mon_mode = dp_soc_config_full_mon_mode,
.get_mon_pdev_rx_stats = dp_pdev_get_rx_mon_stats,
.txrx_enable_mon_reap_timer = dp_enable_mon_reap_timer,
};
#ifdef QCA_MONITOR_OPS_PER_SOC_SUPPORT

View File

@@ -1327,6 +1327,7 @@ struct cdp_mon_ops dp_ops_mon_2_0 = {
.config_full_mon_mode = NULL,
.soc_config_full_mon_mode = NULL,
.get_mon_pdev_rx_stats = dp_pdev_get_rx_mon_stats,
.txrx_enable_mon_reap_timer = dp_enable_mon_reap_timer,
};
#ifdef QCA_MONITOR_OPS_PER_SOC_SUPPORT

View File

@@ -1611,16 +1611,9 @@ static void dp_cfr_filter(struct cdp_soc_t *soc_hdl,
&htt_tlv_filter);
}
}
#endif
/*
* dp_enable_mon_reap_timer() - enable/disable reap timer
* @soc_hdl: Datapath soc handle
* @pdev_id: id of objmgr pdev
* @enable: Enable/Disable reap timer of monitor status ring
*
* Return: none
*/
static void
void
dp_enable_mon_reap_timer(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
bool enable)
{
@@ -1653,7 +1646,6 @@ dp_enable_mon_reap_timer(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
else
qdf_timer_sync_cancel(&mon_soc->mon_reap_timer);
}
#endif
#if defined(DP_CON_MON)
#ifndef REMOVE_PKT_LOG
@@ -5470,7 +5462,6 @@ void dp_mon_cdp_ops_register(struct dp_soc *soc)
#if defined(WLAN_CFR_ENABLE) && defined(WLAN_ENH_CFR_ENABLE)
ops->cfr_ops->txrx_cfr_filter = dp_cfr_filter;
ops->cfr_ops->txrx_enable_mon_reap_timer = dp_enable_mon_reap_timer;
#endif
ops->cmn_drv_ops->txrx_set_monitor_mode = dp_vdev_set_monitor_mode;
ops->cmn_drv_ops->txrx_get_mon_vdev_from_pdev =
@@ -5541,7 +5532,6 @@ void dp_mon_cdp_ops_deregister(struct dp_soc *soc)
#if defined(WLAN_CFR_ENABLE) && defined(WLAN_ENH_CFR_ENABLE)
ops->cfr_ops->txrx_cfr_filter = NULL;
ops->cfr_ops->txrx_enable_mon_reap_timer = NULL;
#endif
ops->cmn_drv_ops->txrx_set_monitor_mode = NULL;
ops->cmn_drv_ops->txrx_get_mon_vdev_from_pdev = NULL;

View File

@@ -3907,4 +3907,14 @@ void dp_mon_register_feature_ops(struct dp_soc *soc)
*/
QDF_STATUS dp_pdev_get_rx_mon_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
struct cdp_pdev_mon_stats *stats);
/*
* dp_enable_mon_reap_timer() - enable/disable reap timer
* @soc_hdl: Datapath soc handle
* @pdev_id: id of objmgr pdev
* @enable: Enable/Disable reap timer of monitor status ring
*
* Return: none
*/
void dp_enable_mon_reap_timer(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
bool enable);
#endif /* _DP_MON_H_ */