qcacmn: Add dp ini param for sawf stats
Add dp ini-param to configure sawf_stats. CRs-Fixed: 3300948 Change-Id: Ifeb6935e2309be1f974c4da30b33a5caca308569
This commit is contained in:
@@ -1288,6 +1288,8 @@ enum cdp_pdev_param_type {
|
|||||||
* @cdp_ipa_enabled : set ipa mode
|
* @cdp_ipa_enabled : set ipa mode
|
||||||
* @cdp_psoc_param_vdev_stats_hw_offload: Configure HW vdev stats offload
|
* @cdp_psoc_param_vdev_stats_hw_offload: Configure HW vdev stats offload
|
||||||
* @cdp_pdev_param_undecoded_metadata_enable: Undecoded metadata capture enable
|
* @cdp_pdev_param_undecoded_metadata_enable: Undecoded metadata capture enable
|
||||||
|
* @cdp_sawf_enabled: SAWF enable/dsiable
|
||||||
|
* @cdp_sawf_stats: SAWF stats config
|
||||||
* @cdp_vdev_param_traffic_end_ind: Traffic end indication enable/disable
|
* @cdp_vdev_param_traffic_end_ind: Traffic end indication enable/disable
|
||||||
* @cdp_skel_enable : Enable/Disable skeleton code for Umac reset debug
|
* @cdp_skel_enable : Enable/Disable skeleton code for Umac reset debug
|
||||||
*/
|
*/
|
||||||
@@ -1375,6 +1377,7 @@ typedef union cdp_config_param_t {
|
|||||||
bool cdp_psoc_param_vdev_stats_hw_offload;
|
bool cdp_psoc_param_vdev_stats_hw_offload;
|
||||||
bool cdp_pdev_param_undecoded_metadata_enable;
|
bool cdp_pdev_param_undecoded_metadata_enable;
|
||||||
bool cdp_sawf_enabled;
|
bool cdp_sawf_enabled;
|
||||||
|
uint8_t cdp_sawf_stats;
|
||||||
bool cdp_drop_3addr_mcast;
|
bool cdp_drop_3addr_mcast;
|
||||||
bool cdp_vdev_param_traffic_end_ind;
|
bool cdp_vdev_param_traffic_end_ind;
|
||||||
bool cdp_umac_rst_skel;
|
bool cdp_umac_rst_skel;
|
||||||
@@ -1516,6 +1519,7 @@ enum cdp_vdev_param_type {
|
|||||||
* @CDP_CFG_VDEV_STATS_HW_OFFLOAD: HW Vdev stats config
|
* @CDP_CFG_VDEV_STATS_HW_OFFLOAD: HW Vdev stats config
|
||||||
* @CDP_UMAC_RST_SKEL_ENABLE: Enable Umac reset skeleton code for debug
|
* @CDP_UMAC_RST_SKEL_ENABLE: Enable Umac reset skeleton code for debug
|
||||||
* @CDP_CDP_PPEDS_ENABLE: PPEDS is enabled or not
|
* @CDP_CDP_PPEDS_ENABLE: PPEDS is enabled or not
|
||||||
|
* @CDP_SAWF_STATS : set SAWF stats config
|
||||||
*/
|
*/
|
||||||
enum cdp_psoc_param_type {
|
enum cdp_psoc_param_type {
|
||||||
CDP_ENABLE_RATE_STATS,
|
CDP_ENABLE_RATE_STATS,
|
||||||
@@ -1527,6 +1531,7 @@ enum cdp_psoc_param_type {
|
|||||||
CDP_SAWF_ENABLE,
|
CDP_SAWF_ENABLE,
|
||||||
CDP_UMAC_RST_SKEL_ENABLE,
|
CDP_UMAC_RST_SKEL_ENABLE,
|
||||||
CDP_PPEDS_ENABLE,
|
CDP_PPEDS_ENABLE,
|
||||||
|
CDP_SAWF_STATS,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TXRX_FW_STATS_TXSTATS 1
|
#define TXRX_FW_STATS_TXSTATS 1
|
||||||
|
@@ -313,6 +313,18 @@ cdp_get_drop_stats(ol_txrx_soc_handle soc, void *arg,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
static inline QDF_STATUS
|
||||||
|
cdp_sawf_mpdu_stats_req(ol_txrx_soc_handle soc, uint8_t enable)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
cdp_sawf_mpdu_details_stats_req(ol_txrx_soc_handle soc, uint8_t enable)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
cdp_get_peer_sawf_delay_stats(ol_txrx_soc_handle soc, uint32_t svc_id,
|
cdp_get_peer_sawf_delay_stats(ol_txrx_soc_handle soc, uint32_t svc_id,
|
||||||
uint8_t *mac, void *data)
|
uint8_t *mac, void *data)
|
||||||
|
@@ -11004,6 +11004,10 @@ dp_set_psoc_param(struct cdp_soc_t *cdp_soc,
|
|||||||
case CDP_UMAC_RST_SKEL_ENABLE:
|
case CDP_UMAC_RST_SKEL_ENABLE:
|
||||||
dp_umac_rst_skel_enable_update(soc, val.cdp_umac_rst_skel);
|
dp_umac_rst_skel_enable_update(soc, val.cdp_umac_rst_skel);
|
||||||
break;
|
break;
|
||||||
|
case CDP_SAWF_STATS:
|
||||||
|
wlan_cfg_set_sawf_stats_config(wlan_cfg_ctx,
|
||||||
|
val.cdp_sawf_stats);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -14047,7 +14051,7 @@ static struct cdp_sawf_ops dp_ops_sawf = {
|
|||||||
.sawf_def_queues_unmap_req = dp_sawf_def_queues_unmap_req,
|
.sawf_def_queues_unmap_req = dp_sawf_def_queues_unmap_req,
|
||||||
.sawf_def_queues_get_map_report =
|
.sawf_def_queues_get_map_report =
|
||||||
dp_sawf_def_queues_get_map_report,
|
dp_sawf_def_queues_get_map_report,
|
||||||
#ifdef CONFIG_SAWF
|
#ifdef CONFIG_SAWF_STATS
|
||||||
.txrx_get_peer_sawf_delay_stats = dp_sawf_get_peer_delay_stats,
|
.txrx_get_peer_sawf_delay_stats = dp_sawf_get_peer_delay_stats,
|
||||||
.txrx_get_peer_sawf_tx_stats = dp_sawf_get_peer_tx_stats,
|
.txrx_get_peer_sawf_tx_stats = dp_sawf_get_peer_tx_stats,
|
||||||
.sawf_mpdu_stats_req = dp_sawf_mpdu_stats_req,
|
.sawf_mpdu_stats_req = dp_sawf_mpdu_stats_req,
|
||||||
|
@@ -472,6 +472,11 @@
|
|||||||
#define WLAN_CFG_DP_NAPI_SCALE_FACTOR_MIN 0
|
#define WLAN_CFG_DP_NAPI_SCALE_FACTOR_MIN 0
|
||||||
#define WLAN_CFG_DP_NAPI_SCALE_FACTOR_MAX 4
|
#define WLAN_CFG_DP_NAPI_SCALE_FACTOR_MAX 4
|
||||||
|
|
||||||
|
#ifdef CONFIG_SAWF_STATS
|
||||||
|
#define WLAN_CFG_SAWF_STATS 0x0
|
||||||
|
#define WLAN_CFG_SAWF_STATS_MIN 0x0
|
||||||
|
#define WLAN_CFG_SAWF_STATS_MAX 0x7
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* "dp_tx_capt_max_mem_mb"- maximum memory used by Tx capture
|
* "dp_tx_capt_max_mem_mb"- maximum memory used by Tx capture
|
||||||
@@ -691,6 +696,19 @@
|
|||||||
WLAN_CFG_TIME_CONTROL_BP_MAX,\
|
WLAN_CFG_TIME_CONTROL_BP_MAX,\
|
||||||
WLAN_CFG_TIME_CONTROL_BP,\
|
WLAN_CFG_TIME_CONTROL_BP,\
|
||||||
CFG_VALUE_OR_DEFAULT, "DP time control back pressure")
|
CFG_VALUE_OR_DEFAULT, "DP time control back pressure")
|
||||||
|
|
||||||
|
#ifdef CONFIG_SAWF_STATS
|
||||||
|
#define CFG_DP_SAWF_STATS \
|
||||||
|
CFG_INI_UINT("dp_sawf_stats", \
|
||||||
|
WLAN_CFG_SAWF_STATS_MIN,\
|
||||||
|
WLAN_CFG_SAWF_STATS_MAX,\
|
||||||
|
WLAN_CFG_SAWF_STATS,\
|
||||||
|
CFG_VALUE_OR_DEFAULT, "DP sawf stats config")
|
||||||
|
#define CFG_DP_SAWF_STATS_CONFIG CFG(CFG_DP_SAWF_STATS)
|
||||||
|
#else
|
||||||
|
#define CFG_DP_SAWF_STATS_CONFIG
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* dp_rx_pending_hl_threshold - High threshold of frame number to start
|
* dp_rx_pending_hl_threshold - High threshold of frame number to start
|
||||||
@@ -1830,5 +1848,6 @@
|
|||||||
CFG_DP_VDEV_STATS_HW_OFFLOAD \
|
CFG_DP_VDEV_STATS_HW_OFFLOAD \
|
||||||
CFG(CFG_DP_TX_CAPT_MAX_MEM_MB) \
|
CFG(CFG_DP_TX_CAPT_MAX_MEM_MB) \
|
||||||
CFG(CFG_DP_NAPI_SCALE_FACTOR) \
|
CFG(CFG_DP_NAPI_SCALE_FACTOR) \
|
||||||
CFG(CFG_DP_HOST_AST_DB_ENABLE)
|
CFG(CFG_DP_HOST_AST_DB_ENABLE) \
|
||||||
|
CFG_DP_SAWF_STATS_CONFIG
|
||||||
#endif /* _CFG_DP_H_ */
|
#endif /* _CFG_DP_H_ */
|
||||||
|
@@ -2629,6 +2629,58 @@ wlan_cfg_soc_update_tgt_params(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx,
|
|||||||
CFG_DP_REO_RINGS_MAP);
|
CFG_DP_REO_RINGS_MAP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_SAWF_STATS
|
||||||
|
/**
|
||||||
|
* wlan_soc_sawf_stats_cfg_attach() - Update sawf stats config in dp soc
|
||||||
|
* cfg context
|
||||||
|
* @psoc - Object manager psoc
|
||||||
|
* @wlan_cfg_ctx - dp soc cfg ctx
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
wlan_soc_sawf_stats_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
|
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx)
|
||||||
|
{
|
||||||
|
wlan_cfg_ctx->sawf_stats = cfg_get(psoc, CFG_DP_SAWF_STATS);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t wlan_cfg_get_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg)
|
||||||
|
{
|
||||||
|
return cfg->sawf_stats;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wlan_cfg_set_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg,
|
||||||
|
uint8_t val)
|
||||||
|
{
|
||||||
|
cfg->sawf_stats = val;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
/**
|
||||||
|
* wlan_soc_sawf_stats_cfg_attach() - Update sawf stats config in dp soc
|
||||||
|
* cfg context
|
||||||
|
* @psoc - Object manager psoc
|
||||||
|
* @wlan_cfg_ctx - dp soc cfg ctx
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
wlan_soc_sawf_stats_cfg_attach(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||||
|
struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
uint8_t wlan_cfg_get_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void wlan_cfg_set_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg,
|
||||||
|
uint8_t val)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_SAWF_STATS */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_cfg_soc_attach() - Allocate and prepare SoC configuration
|
* wlan_cfg_soc_attach() - Allocate and prepare SoC configuration
|
||||||
* @psoc - Object manager psoc
|
* @psoc - Object manager psoc
|
||||||
@@ -2840,6 +2892,7 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
|
|||||||
|
|
||||||
wlan_cfg_ctx->napi_scale_factor = cfg_get(psoc,
|
wlan_cfg_ctx->napi_scale_factor = cfg_get(psoc,
|
||||||
CFG_DP_NAPI_SCALE_FACTOR);
|
CFG_DP_NAPI_SCALE_FACTOR);
|
||||||
|
wlan_soc_sawf_stats_cfg_attach(psoc, wlan_cfg_ctx);
|
||||||
return wlan_cfg_ctx;
|
return wlan_cfg_ctx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -438,6 +438,9 @@ struct wlan_cfg_dp_soc_ctxt {
|
|||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_SAWF
|
#ifdef CONFIG_SAWF
|
||||||
bool sawf_enabled;
|
bool sawf_enabled;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_SAWF_STATS
|
||||||
|
uint8_t sawf_stats;
|
||||||
#endif
|
#endif
|
||||||
uint8_t mpdu_retry_threshold_1;
|
uint8_t mpdu_retry_threshold_1;
|
||||||
uint8_t mpdu_retry_threshold_2;
|
uint8_t mpdu_retry_threshold_2;
|
||||||
@@ -2122,6 +2125,25 @@ wlan_cfg_set_sawf_config(struct wlan_cfg_dp_soc_ctxt *cfg, bool value);
|
|||||||
bool
|
bool
|
||||||
wlan_cfg_get_sawf_config(struct wlan_cfg_dp_soc_ctxt *cfg);
|
wlan_cfg_get_sawf_config(struct wlan_cfg_dp_soc_ctxt *cfg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_cfg_set_sawf_stats_config() - Set SAWF stats config
|
||||||
|
* @cfg: config context
|
||||||
|
* @value: value to be set
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
wlan_cfg_set_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg, uint8_t value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wlan_cfg_get_sawf_stats_config() - Get SAWF stats config
|
||||||
|
* @cfg: config context
|
||||||
|
*
|
||||||
|
* Return: value for sawf_stats_config
|
||||||
|
*/
|
||||||
|
uint8_t
|
||||||
|
wlan_cfg_get_sawf_stats_config(struct wlan_cfg_dp_soc_ctxt *cfg);
|
||||||
|
|
||||||
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MLO_MULTI_CHIP)
|
||||||
/**
|
/**
|
||||||
* wlan_cfg_mlo_rx_ring_map_get() - get rx ring map
|
* wlan_cfg_mlo_rx_ring_map_get() - get rx ring map
|
||||||
|
Reference in New Issue
Block a user