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:

committed by
Madan Koyyalamudi

parent
1f1b921796
commit
20b758944f
@@ -2755,4 +2755,30 @@ void cdp_set_rtpm_tput_policy_requirement(ol_txrx_soc_handle soc,
|
|||||||
|
|
||||||
#endif /* FEATURE_RUNTIME_PM */
|
#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_ */
|
#endif /* _CDP_TXRX_CMN_H_ */
|
||||||
|
@@ -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);
|
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
|
#endif
|
||||||
|
|
||||||
#if defined(WLAN_TX_PKT_CAPTURE_ENH) || defined(WLAN_RX_PKT_CAPTURE_ENH)
|
#if defined(WLAN_TX_PKT_CAPTURE_ENH) || defined(WLAN_RX_PKT_CAPTURE_ENH)
|
||||||
|
@@ -889,6 +889,14 @@ struct cdp_me_ops {
|
|||||||
bool is_igmp, bool is_dms_pkt);
|
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 {
|
struct cdp_mon_ops {
|
||||||
|
|
||||||
QDF_STATUS (*txrx_reset_monitor_mode)
|
QDF_STATUS (*txrx_reset_monitor_mode)
|
||||||
@@ -912,6 +920,11 @@ struct cdp_mon_ops {
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*get_mon_pdev_rx_stats)(struct cdp_soc_t *soc, uint8_t pdev_id,
|
(*get_mon_pdev_rx_stats)(struct cdp_soc_t *soc, uint8_t pdev_id,
|
||||||
struct cdp_pdev_mon_stats *stats);
|
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 {
|
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_set_cfr_rcc: Handler to enable/disable CFR mode
|
||||||
* @txrx_get_cfr_dbg_stats: Handler to get debug statistics for 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_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 {
|
struct cdp_cfr_ops {
|
||||||
void (*txrx_cfr_filter)(struct cdp_soc_t *soc_hdl,
|
void (*txrx_cfr_filter)(struct cdp_soc_t *soc_hdl,
|
||||||
@@ -1867,9 +1879,6 @@ struct cdp_cfr_ops {
|
|||||||
struct cdp_cfr_rcc_stats *buf);
|
struct cdp_cfr_rcc_stats *buf);
|
||||||
void (*txrx_clear_cfr_dbg_stats)(struct cdp_soc_t *soc_hdl,
|
void (*txrx_clear_cfr_dbg_stats)(struct cdp_soc_t *soc_hdl,
|
||||||
uint8_t pdev_id);
|
uint8_t pdev_id);
|
||||||
void (*txrx_enable_mon_reap_timer)(struct cdp_soc_t *soc_hdl,
|
|
||||||
uint8_t pdev_id,
|
|
||||||
bool enable);
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -12425,7 +12425,6 @@ static struct cdp_cfr_ops dp_ops_cfr = {
|
|||||||
.txrx_set_cfr_rcc = dp_set_cfr_rcc,
|
.txrx_set_cfr_rcc = dp_set_cfr_rcc,
|
||||||
.txrx_get_cfr_dbg_stats = dp_get_cfr_dbg_stats,
|
.txrx_get_cfr_dbg_stats = dp_get_cfr_dbg_stats,
|
||||||
.txrx_clear_cfr_dbg_stats = dp_clear_cfr_dbg_stats,
|
.txrx_clear_cfr_dbg_stats = dp_clear_cfr_dbg_stats,
|
||||||
.txrx_enable_mon_reap_timer = NULL,
|
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -22,9 +22,13 @@
|
|||||||
#include <qdf_types.h>
|
#include <qdf_types.h>
|
||||||
#include <qdf_nbuf.h>
|
#include <qdf_nbuf.h>
|
||||||
#include "dp_types.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"
|
#include "if_meta_hdr.h"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#include "dp_internal.h"
|
#include "dp_internal.h"
|
||||||
#include "hal_tx.h"
|
#include "hal_tx.h"
|
||||||
#include <qdf_tracepoint.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 */
|
#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
|
#ifdef FEATURE_PERPKT_INFO
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
dp_get_completion_indication_for_stack(struct dp_soc *soc,
|
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,
|
void dp_send_completion_to_stack(struct dp_soc *soc, struct dp_pdev *pdev,
|
||||||
uint16_t peer_id, uint32_t ppdu_id,
|
uint16_t peer_id, uint32_t ppdu_id,
|
||||||
qdf_nbuf_t netbuf);
|
qdf_nbuf_t netbuf);
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
static inline
|
static inline
|
||||||
QDF_STATUS dp_get_completion_indication_for_stack(struct dp_soc *soc,
|
QDF_STATUS dp_get_completion_indication_for_stack(struct dp_soc *soc,
|
||||||
|
@@ -1335,6 +1335,9 @@ void dp_hmwds_ast_add_notify(struct dp_peer *peer,
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(QCA_SUPPORT_LATENCY_CAPTURE) || \
|
||||||
|
defined(QCA_TX_CAPTURE_SUPPORT) || \
|
||||||
|
defined(QCA_MCOPY_SUPPORT)
|
||||||
#ifdef FEATURE_PERPKT_INFO
|
#ifdef FEATURE_PERPKT_INFO
|
||||||
/**
|
/**
|
||||||
* dp_get_completion_indication_for_stack() - send completion to stack
|
* 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);
|
WDI_NO_VAL, pdev->pdev_id);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
@@ -1219,6 +1219,7 @@ struct cdp_mon_ops dp_ops_mon_1_0 = {
|
|||||||
.config_full_mon_mode = dp_config_full_mon_mode,
|
.config_full_mon_mode = dp_config_full_mon_mode,
|
||||||
.soc_config_full_mon_mode = dp_soc_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,
|
.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
|
#ifdef QCA_MONITOR_OPS_PER_SOC_SUPPORT
|
||||||
|
@@ -1327,6 +1327,7 @@ struct cdp_mon_ops dp_ops_mon_2_0 = {
|
|||||||
.config_full_mon_mode = NULL,
|
.config_full_mon_mode = NULL,
|
||||||
.soc_config_full_mon_mode = NULL,
|
.soc_config_full_mon_mode = NULL,
|
||||||
.get_mon_pdev_rx_stats = dp_pdev_get_rx_mon_stats,
|
.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
|
#ifdef QCA_MONITOR_OPS_PER_SOC_SUPPORT
|
||||||
|
@@ -1611,16 +1611,9 @@ static void dp_cfr_filter(struct cdp_soc_t *soc_hdl,
|
|||||||
&htt_tlv_filter);
|
&htt_tlv_filter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
void
|
||||||
* 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
|
|
||||||
dp_enable_mon_reap_timer(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
dp_enable_mon_reap_timer(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||||
bool enable)
|
bool enable)
|
||||||
{
|
{
|
||||||
@@ -1653,7 +1646,6 @@ dp_enable_mon_reap_timer(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
|||||||
else
|
else
|
||||||
qdf_timer_sync_cancel(&mon_soc->mon_reap_timer);
|
qdf_timer_sync_cancel(&mon_soc->mon_reap_timer);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(DP_CON_MON)
|
#if defined(DP_CON_MON)
|
||||||
#ifndef REMOVE_PKT_LOG
|
#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)
|
#if defined(WLAN_CFR_ENABLE) && defined(WLAN_ENH_CFR_ENABLE)
|
||||||
ops->cfr_ops->txrx_cfr_filter = dp_cfr_filter;
|
ops->cfr_ops->txrx_cfr_filter = dp_cfr_filter;
|
||||||
ops->cfr_ops->txrx_enable_mon_reap_timer = dp_enable_mon_reap_timer;
|
|
||||||
#endif
|
#endif
|
||||||
ops->cmn_drv_ops->txrx_set_monitor_mode = dp_vdev_set_monitor_mode;
|
ops->cmn_drv_ops->txrx_set_monitor_mode = dp_vdev_set_monitor_mode;
|
||||||
ops->cmn_drv_ops->txrx_get_mon_vdev_from_pdev =
|
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)
|
#if defined(WLAN_CFR_ENABLE) && defined(WLAN_ENH_CFR_ENABLE)
|
||||||
ops->cfr_ops->txrx_cfr_filter = NULL;
|
ops->cfr_ops->txrx_cfr_filter = NULL;
|
||||||
ops->cfr_ops->txrx_enable_mon_reap_timer = NULL;
|
|
||||||
#endif
|
#endif
|
||||||
ops->cmn_drv_ops->txrx_set_monitor_mode = NULL;
|
ops->cmn_drv_ops->txrx_set_monitor_mode = NULL;
|
||||||
ops->cmn_drv_ops->txrx_get_mon_vdev_from_pdev = NULL;
|
ops->cmn_drv_ops->txrx_get_mon_vdev_from_pdev = NULL;
|
||||||
|
@@ -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,
|
QDF_STATUS dp_pdev_get_rx_mon_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||||
struct cdp_pdev_mon_stats *stats);
|
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_ */
|
#endif /* _DP_MON_H_ */
|
||||||
|
Reference in New Issue
Block a user