Bläddra i källkod

qcacmn: Add support to configure REO ring threshold

Add support to configure REO ring threshold through ini
for WLAN_DP_PER_RING_TYPE_CONFIG feature.

Change-Id: I02a14adcf243905ab25c2af12cb9499f32ff453f
CRs-Fixed: 2789147
Nirav Shah 4 år sedan
förälder
incheckning
0fb3541617
3 ändrade filer med 19 tillägg och 5 borttagningar
  1. 6 1
      dp/wifi3.0/dp_main.c
  2. 12 3
      wlan_cfg/cfg_dp.h
  3. 1 1
      wlan_cfg/wlan_cfg.c

+ 6 - 1
dp/wifi3.0/dp_main.c

@@ -1358,7 +1358,12 @@ dp_srng_configure_interrupt_thresholds(struct dp_soc *soc,
 				       int ring_type, int ring_num,
 				       int num_entries)
 {
-	if (ring_type == WBM2SW_RELEASE && (ring_num == 3)) {
+	if (ring_type == REO_DST) {
+		ring_params->intr_timer_thres_us =
+			wlan_cfg_get_int_timer_threshold_rx(soc->wlan_cfg_ctx);
+		ring_params->intr_batch_cntr_thres_entries =
+			wlan_cfg_get_int_batch_threshold_rx(soc->wlan_cfg_ctx);
+	} else if (ring_type == WBM2SW_RELEASE && (ring_num == 3)) {
 		ring_params->intr_timer_thres_us =
 				wlan_cfg_get_int_timer_threshold_other(soc->wlan_cfg_ctx);
 		ring_params->intr_batch_cntr_thres_entries =

+ 12 - 3
wlan_cfg/cfg_dp.h

@@ -94,13 +94,21 @@
 
 /* Interrupt Mitigation - Batch threshold in terms of number of frames */
 #define WLAN_CFG_INT_BATCH_THRESHOLD_TX 1
-#define WLAN_CFG_INT_BATCH_THRESHOLD_RX 1
 #define WLAN_CFG_INT_BATCH_THRESHOLD_OTHER 1
 
 /* Interrupt Mitigation - Timer threshold in us */
 #define WLAN_CFG_INT_TIMER_THRESHOLD_TX 8
-#define WLAN_CFG_INT_TIMER_THRESHOLD_RX 8
 #define WLAN_CFG_INT_TIMER_THRESHOLD_OTHER 8
+
+#ifdef WLAN_DP_PER_RING_TYPE_CONFIG
+#define WLAN_CFG_INT_BATCH_THRESHOLD_RX \
+		WLAN_CFG_INT_BATCH_THRESHOLD_REO_RING
+#define WLAN_CFG_INT_TIMER_THRESHOLD_RX \
+		WLAN_CFG_INT_TIMER_THRESHOLD_REO_RING
+#else
+#define WLAN_CFG_INT_BATCH_THRESHOLD_RX 1
+#define WLAN_CFG_INT_TIMER_THRESHOLD_RX 8
+#endif
 #endif
 
 #define WLAN_CFG_RX_PENDING_HL_THRESHOLD 0x60000
@@ -113,6 +121,7 @@
 
 #define WLAN_CFG_INT_TIMER_THRESHOLD_WBM_RELEASE_RING 256
 #define WLAN_CFG_INT_TIMER_THRESHOLD_REO_RING 512
+#define WLAN_CFG_INT_BATCH_THRESHOLD_REO_RING 0
 
 #define WLAN_CFG_PER_PDEV_RX_RING_MIN 0
 #define WLAN_CFG_PER_PDEV_RX_RING_MAX 0
@@ -135,7 +144,7 @@
 #define WLAN_CFG_INT_BATCH_THRESHOLD_TX_MIN 1
 #define WLAN_CFG_INT_BATCH_THRESHOLD_TX_MAX 256
 
-#define WLAN_CFG_INT_BATCH_THRESHOLD_RX_MIN 1
+#define WLAN_CFG_INT_BATCH_THRESHOLD_RX_MIN 0
 #define WLAN_CFG_INT_BATCH_THRESHOLD_RX_MAX 128
 
 #define WLAN_CFG_INT_BATCH_THRESHOLD_REO_RING_MIN 1

+ 1 - 1
wlan_cfg/wlan_cfg.c

@@ -330,7 +330,7 @@ struct wlan_srng_cfg g_wlan_srng_cfg[MAX_RING_TYPES];
 /* REO_DST ring configuration */
 struct wlan_srng_cfg wlan_srng_reo_cfg = {
 	.timer_threshold = WLAN_CFG_INT_TIMER_THRESHOLD_REO_RING,
-	.batch_count_threshold = 0,
+	.batch_count_threshold = WLAN_CFG_INT_BATCH_THRESHOLD_REO_RING,
 	.low_threshold = 0,
 };