diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 1a23c05663..d0d789b01d 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -2252,7 +2252,7 @@ struct dp_soc { struct dp_rx_fst *rx_fst; #ifdef WLAN_SUPPORT_RX_FISA uint8_t fisa_enable; - + uint8_t fisa_lru_del_enable; /** * Params used for controlling the fisa aggregation dynamically */ diff --git a/wlan_cfg/cfg_dp.h b/wlan_cfg/cfg_dp.h index ea0ab3d7b6..d676ab81ab 100644 --- a/wlan_cfg/cfg_dp.h +++ b/wlan_cfg/cfg_dp.h @@ -1234,6 +1234,27 @@ CFG_INI_BOOL("dp_rx_fisa_enable", true, \ "Enable/Disable DP Rx FISA") +/* + * + * dp_rx_fisa_lru_del_enable - Control Rx datapath FISA + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to enable DP Rx FISA lru deletion feature + * + * Related: dp_rx_fisa_enable + * + * Supported Feature: STA,P2P and SAP IPA disabled terminating + * + * Usage: Internal + * + * + */ +#define CFG_DP_RX_FISA_LRU_DEL_ENABLE \ + CFG_INI_BOOL("dp_rx_fisa_lru_del_enable", true, \ + "Enable/Disable DP Rx FISA LRU deletion") + #define CFG_DP_RXDMA_MONITOR_RX_DROP_THRESHOLD \ CFG_INI_UINT("mon_drop_thresh", \ WLAN_CFG_RXDMA_MONITOR_RX_DROP_THRESH_SIZE_MIN, \ @@ -1703,6 +1724,7 @@ CFG(CFG_DP_RXDMA_MONITOR_RX_DROP_THRESHOLD) \ CFG(CFG_DP_PKTLOG_BUFFER_SIZE) \ CFG(CFG_DP_RX_FISA_ENABLE) \ + CFG(CFG_DP_RX_FISA_LRU_DEL_ENABLE) \ CFG(CFG_DP_FULL_MON_MODE) \ CFG(CFG_DP_REO_RINGS_MAP) \ CFG(CFG_DP_PEER_EXT_STATS) \ diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index a3dcde6a13..070d8640fc 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -2103,6 +2103,8 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc) wlan_cfg_ctx->mon_drop_thresh = cfg_get(psoc, CFG_DP_RXDMA_MONITOR_RX_DROP_THRESHOLD); wlan_cfg_ctx->is_rx_fisa_enabled = cfg_get(psoc, CFG_DP_RX_FISA_ENABLE); + wlan_cfg_ctx->is_rx_fisa_lru_del_enabled = + cfg_get(psoc, CFG_DP_RX_FISA_LRU_DEL_ENABLE); wlan_cfg_ctx->reo_rings_mapping = cfg_get(psoc, CFG_DP_REO_RINGS_MAP); wlan_cfg_ctx->pext_stats_enabled = cfg_get(psoc, CFG_DP_PEER_EXT_STATS); wlan_cfg_ctx->is_rx_buff_pool_enabled = @@ -2987,11 +2989,21 @@ bool wlan_cfg_is_rx_fisa_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) { return (bool)(cfg->is_rx_fisa_enabled); } + +bool wlan_cfg_is_rx_fisa_lru_del_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) +{ + return cfg->is_rx_fisa_lru_del_enabled; +} #else bool wlan_cfg_is_rx_fisa_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) { return false; } + +bool wlan_cfg_is_rx_fisa_lru_del_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) +{ + return false; +} #endif bool wlan_cfg_is_poll_mode_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) diff --git a/wlan_cfg/wlan_cfg.h b/wlan_cfg/wlan_cfg.h index 4efb7346dc..51244c45c9 100644 --- a/wlan_cfg/wlan_cfg.h +++ b/wlan_cfg/wlan_cfg.h @@ -363,6 +363,7 @@ struct wlan_cfg_dp_soc_ctxt { uint8_t *rx_toeplitz_hash_key; uint8_t pktlog_buffer_size; uint8_t is_rx_fisa_enabled; + bool is_rx_fisa_lru_del_enabled; bool is_tso_desc_attach_defer; uint32_t delayed_replenish_entries; uint32_t reo_rings_mapping; @@ -1668,6 +1669,16 @@ void wlan_cfg_fill_interrupt_mask(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx, */ bool wlan_cfg_is_rx_fisa_enabled(struct wlan_cfg_dp_soc_ctxt *cfg); +/** + * wlan_cfg_is_rx_fisa_lru_del_enabled() - Get Rx FISA LRU del enabled flag + * + * + * @cfg: soc configuration context + * + * Return: true if enabled, false otherwise. + */ +bool wlan_cfg_is_rx_fisa_lru_del_enabled(struct wlan_cfg_dp_soc_ctxt *cfg); + /** * wlan_cfg_is_rx_buffer_pool_enabled() - Get RX buffer pool enabled flag *