Browse Source

qcacmn: Add support for sw2rxdma_link_ring size cfg ini

Add support for sw2rxdma_link_ring size cfg ini.

Also add wrapper function to get the sw2rxdma_link_ring size.

Change-Id: Ic5b17f029fe6c735785701801b75284dd489ac1e
CRs-Fixed: 3525040
Venkateswara Naralasetty 2 years ago
parent
commit
748fe0b6d7
3 changed files with 33 additions and 1 deletions
  1. 13 1
      wlan_cfg/cfg_dp.h
  2. 10 0
      wlan_cfg/wlan_cfg.c
  3. 10 0
      wlan_cfg/wlan_cfg.h

+ 13 - 1
wlan_cfg/cfg_dp.h

@@ -409,6 +409,10 @@
 #define WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MIN 4096
 #define WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE_MAX 16384
 
+#define WLAN_CFG_SW2RXDMA_LINK_RING_SIZE 1024
+#define WLAN_CFG_SW2RXDMA_LINK_RING_SIZE_MIN 256
+#define WLAN_CFG_SW2RXDMA_LINK_RING_SIZE_MAX 4096
+
 #define WLAN_CFG_RXDMA_ERR_DST_RING_SIZE 1024
 #define WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MIN 1024
 #define WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MAX 8192
@@ -1304,6 +1308,13 @@
 		WLAN_CFG_RXDMA_MONITOR_DESC_RING_SIZE, \
 		CFG_VALUE_OR_DEFAULT, "DP RXDMA monitor destination ring")
 
+#define CFG_DP_SW2RXDMA_LINK_RING \
+		CFG_INI_UINT("dp_sw2rxdma_link_ring", \
+		WLAN_CFG_SW2RXDMA_LINK_RING_SIZE_MIN, \
+		WLAN_CFG_SW2RXDMA_LINK_RING_SIZE_MAX, \
+		WLAN_CFG_SW2RXDMA_LINK_RING_SIZE, \
+		CFG_VALUE_OR_DEFAULT, "DP SW2RXDMA link ring")
+
 #define CFG_DP_RXDMA_ERR_DST_RING \
 		CFG_INI_UINT("dp_rxdma_err_dst_ring", \
 		WLAN_CFG_RXDMA_ERR_DST_RING_SIZE_MIN, \
@@ -2098,5 +2109,6 @@
 		CFG(CFG_DP_POINTER_TIMER_THRESHOLD_RX) \
 		CFG(CFG_DP_POINTER_NUM_THRESHOLD_RX) \
 		CFG_DP_LOCAL_PKT_CAPTURE_CONFIG \
-		CFG(CFG_SPECIAL_FRAME_MSK)
+		CFG(CFG_SPECIAL_FRAME_MSK) \
+		CFG(CFG_DP_SW2RXDMA_LINK_RING)
 #endif /* _CFG_DP_H_ */

+ 10 - 0
wlan_cfg/wlan_cfg.c

@@ -4422,6 +4422,8 @@ wlan_cfg_pdev_attach(struct cdp_ctrl_objmgr_psoc *psoc)
 	wlan_cfg_ctx->rxdma_monitor_desc_ring = cfg_get(psoc,
 					CFG_DP_RXDMA_MONITOR_DESC_RING);
 	wlan_cfg_ctx->num_mac_rings = NUM_RXDMA_RINGS_PER_PDEV;
+	wlan_cfg_ctx->sw2rxdma_link_ring_size = cfg_get(psoc,
+					CFG_DP_SW2RXDMA_LINK_RING);
 
 	return wlan_cfg_ctx;
 }
@@ -4948,6 +4950,14 @@ int wlan_cfg_get_dma_mon_stat_ring_size(struct wlan_cfg_dp_pdev_ctxt *cfg)
 
 qdf_export_symbol(wlan_cfg_get_dma_mon_stat_ring_size);
 
+int
+wlan_cfg_get_dma_sw2rxdma_link_ring_size(struct wlan_cfg_dp_pdev_ctxt *cfg)
+{
+	return cfg->sw2rxdma_link_ring_size;
+}
+
+qdf_export_symbol(wlan_cfg_get_dma_sw2rxdma_link_ring_size);
+
 int
 wlan_cfg_get_dma_mon_desc_ring_size(struct wlan_cfg_dp_pdev_ctxt *cfg)
 {

+ 10 - 0
wlan_cfg/wlan_cfg.h

@@ -564,6 +564,7 @@ struct wlan_cfg_dp_soc_ctxt {
  * @num_mac_rings: Number of mac rings
  * @nss_enabled: 1 - NSS enabled, 0 - NSS disabled
  * @dma_tx_mon_buf_ring_size: Tx monitor BUF Ring size
+ * @sw2rxdma_link_ring_size: SW2RXDMA link ring size
  */
 struct wlan_cfg_dp_pdev_ctxt {
 	int rx_dma_buf_ring_size;
@@ -575,6 +576,7 @@ struct wlan_cfg_dp_pdev_ctxt {
 	int num_mac_rings;
 	int nss_enabled;
 	int dma_tx_mon_buf_ring_size;
+	int sw2rxdma_link_ring_size;
 };
 
 /**
@@ -2406,6 +2408,14 @@ wlan_cfg_get_dp_soc_tx_mon_buf_ring_size(struct wlan_cfg_dp_soc_ctxt *cfg);
  */
 int wlan_cfg_get_dma_rx_mon_dest_ring_size(struct wlan_cfg_dp_pdev_ctxt *cfg);
 
+/**
+ * wlan_cfg_get_dma_sw2rxdma_link_ring_size() - SW2RXDMA link ring size
+ * @cfg:  Configuration Handle
+ *
+ * Return: Size of SW2RXDMA link ring size
+ */
+int wlan_cfg_get_dma_sw2rxdma_link_ring_size(struct wlan_cfg_dp_pdev_ctxt *cfg);
+
 /**
  * wlan_cfg_get_dma_tx_mon_dest_ring_size() - Tx MON dest ring size
  * @cfg:  Configuration Handle