Browse Source

Merge "qcacmn: Add INI option to enable FISA feature"

Linux Build Service Account 5 years ago
parent
commit
2bb21ea23f
3 changed files with 48 additions and 1 deletions
  1. 23 1
      wlan_cfg/cfg_dp.h
  2. 13 0
      wlan_cfg/wlan_cfg.c
  3. 12 0
      wlan_cfg/wlan_cfg.h

+ 23 - 1
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")
 
+/*
+ * <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_ */

+ 13 - 0
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)

+ 12 - 0
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