From 0fb354161739ba08a5cc772e2c52eacc5478d477 Mon Sep 17 00:00:00 2001 From: Nirav Shah Date: Wed, 30 Sep 2020 17:06:38 +0530 Subject: [PATCH] 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 --- dp/wifi3.0/dp_main.c | 7 ++++++- wlan_cfg/cfg_dp.h | 15 ++++++++++++--- wlan_cfg/wlan_cfg.c | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 8638804455cb..adadac940a5a 100644 --- a/dp/wifi3.0/dp_main.c +++ b/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 = diff --git a/wlan_cfg/cfg_dp.h b/wlan_cfg/cfg_dp.h index 8fceaa135f60..16613c3ff656 100644 --- a/wlan_cfg/cfg_dp.h +++ b/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 diff --git a/wlan_cfg/wlan_cfg.c b/wlan_cfg/wlan_cfg.c index 29bffd77324e..557bba0f26cd 100644 --- a/wlan_cfg/wlan_cfg.c +++ b/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, };