qcacmn: Add INI option to enable FISA feature

Add INI dp_rx_fisa_enable to enable/disable FISA feature.
Disable the feature by default.

Change-Id: I0cc524956e32ab9f2b5c556d8ae2e1855e8d3513
CRs-Fixed: 2599917
Esse commit está contido em:
Manjunathappa Prakash
2020-01-08 00:10:27 -08:00
commit de nshrivas
commit d501c32614
3 arquivos alterados com 48 adições e 1 exclusões

Ver arquivo

@@ -753,6 +753,27 @@
CFG_INI_BOOL("dp_rx_monitor_protocol_flow_tag_enable", true, \
"Enable/Disable Rx Protocol & Flow tags in Monitor mode")
/*
* <ini>
* 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
*
* </ini>
*/
#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_ */

Ver arquivo

@@ -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;
}
@@ -1228,6 +1229,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)

Ver arquivo

@@ -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