diff --git a/wlan_cfg/cfg_dp.h b/wlan_cfg/cfg_dp.h index c31ae6e9f7..db0fa7ea06 100644 --- a/wlan_cfg/cfg_dp.h +++ b/wlan_cfg/cfg_dp.h @@ -753,6 +753,27 @@ CFG_INI_BOOL("dp_rx_monitor_protocol_flow_tag_enable", true, \ "Enable/Disable Rx Protocol & Flow tags in Monitor mode") +/* + * + * dp_rx_fisa_enable - Control Rx datapath FISA + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used to enable DP Rx FISA feature + * + * Related: dp_rx_flow_search_table_size + * + * Supported Feature: STA,P2P and SAP IPA disabled terminating + * + * Usage: Internal/External + * + * + */ +#define CFG_DP_RX_FISA_ENABLE \ + CFG_INI_BOOL("dp_rx_fisa_enable", false, \ + "Enable/Disable DP Rx FISA") + #define CFG_DP_RXDMA_MONITOR_RX_DROP_THRESHOLD \ CFG_INI_UINT("mon_drop_thresh", \ WLAN_CFG_RXDMA_MONITOR_RX_DROP_THRESH_SIZE_MIN, \ @@ -838,6 +859,7 @@ CFG(CFG_DP_RX_FLOW_SEARCH_TABLE_PER_PDEV) \ CFG(CFG_DP_RX_MON_PROTOCOL_FLOW_TAG_ENABLE) \ CFG(CFG_DP_RXDMA_MONITOR_RX_DROP_THRESHOLD) \ - CFG(CFG_DP_PKTLOG_BUFFER_SIZE) + CFG(CFG_DP_PKTLOG_BUFFER_SIZE) \ + CFG(CFG_DP_RX_FISA_ENABLE) #endif /* _CFG_DP_H_ */ diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index a518e3fea8..a24fab74b1 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/wlan_cfg/wlan_cfg.c @@ -566,6 +566,7 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc) cfg_get(psoc, CFG_DP_RX_MON_PROTOCOL_FLOW_TAG_ENABLE); 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); return wlan_cfg_ctx; } @@ -1235,6 +1236,18 @@ bool wlan_cfg_is_rx_flow_tag_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) return cfg->is_rx_flow_tag_enabled; } +#ifdef WLAN_SUPPORT_RX_FISA +bool wlan_cfg_is_rx_fisa_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) +{ + return (bool)(cfg->is_rx_fisa_enabled); +} +#else +bool wlan_cfg_is_rx_fisa_enabled(struct wlan_cfg_dp_soc_ctxt *cfg) +{ + return false; +} +#endif + void wlan_cfg_set_rx_flow_search_table_per_pdev(struct wlan_cfg_dp_soc_ctxt *cfg, bool val) diff --git a/wlan_cfg/wlan_cfg.h b/wlan_cfg/wlan_cfg.h index 09ca7287a6..dda20459fb 100644 --- a/wlan_cfg/wlan_cfg.h +++ b/wlan_cfg/wlan_cfg.h @@ -180,6 +180,7 @@ struct wlan_srng_cfg { * @rx_toeplitz_hash_key: toeplitz key pointer used for hash computation over * 5 tuple flow entry * @pktlog_buffer_size: packet log buffer size + * @is_rx_fisa_enabled: flag to enable/disable FISA Rx */ struct wlan_cfg_dp_soc_ctxt { int num_int_ctxts; @@ -276,6 +277,7 @@ struct wlan_cfg_dp_soc_ctxt { uint16_t rx_flow_max_search; uint8_t *rx_toeplitz_hash_key; uint8_t pktlog_buffer_size; + uint8_t is_rx_fisa_enabled; }; /** @@ -1275,4 +1277,14 @@ wlan_cfg_is_rx_mon_protocol_flow_tag_enabled(struct wlan_cfg_dp_soc_ctxt *cfg); */ void wlan_cfg_fill_interrupt_mask(struct wlan_cfg_dp_soc_ctxt *wlan_cfg_ctx, int interrupt_mode, bool is_monitor_mode); + +/** + * wlan_cfg_is_rx_fisa_enabled() - Get Rx FISA enabled flag + * + * + * @cfg: soc configuration context + * + * Return: true if enabled, false otherwise. + */ +bool wlan_cfg_is_rx_fisa_enabled(struct wlan_cfg_dp_soc_ctxt *cfg); #endif