|
@@ -1905,6 +1905,7 @@ dp_srng_configure_interrupt_thresholds(struct dp_soc *soc,
|
|
|
int num_entries)
|
|
|
{
|
|
|
uint8_t wbm2_sw_rx_rel_ring_id;
|
|
|
+ bool rx_refill_lt_disable;
|
|
|
|
|
|
wbm2_sw_rx_rel_ring_id = wlan_cfg_get_rx_rel_ring_id(soc->wlan_cfg_ctx);
|
|
|
|
|
@@ -1920,6 +1921,18 @@ dp_srng_configure_interrupt_thresholds(struct dp_soc *soc,
|
|
|
wlan_cfg_get_int_timer_threshold_tx(soc->wlan_cfg_ctx);
|
|
|
ring_params->intr_batch_cntr_thres_entries =
|
|
|
wlan_cfg_get_int_batch_threshold_tx(soc->wlan_cfg_ctx);
|
|
|
+ } else if (ring_type == RXDMA_BUF) {
|
|
|
+ rx_refill_lt_disable =
|
|
|
+ wlan_cfg_get_dp_soc_rxdma_refill_lt_disable
|
|
|
+ (soc->wlan_cfg_ctx);
|
|
|
+ ring_params->intr_timer_thres_us =
|
|
|
+ wlan_cfg_get_int_timer_threshold_rx(soc->wlan_cfg_ctx);
|
|
|
+
|
|
|
+ if (!rx_refill_lt_disable) {
|
|
|
+ ring_params->low_threshold = num_entries >> 3;
|
|
|
+ ring_params->flags |= HAL_SRNG_LOW_THRES_INTR_ENABLE;
|
|
|
+ ring_params->intr_batch_cntr_thres_entries = 0;
|
|
|
+ }
|
|
|
} else {
|
|
|
ring_params->intr_timer_thres_us =
|
|
|
wlan_cfg_get_int_timer_threshold_other(soc->wlan_cfg_ctx);
|
|
@@ -1947,7 +1960,7 @@ dp_srng_configure_interrupt_thresholds(struct dp_soc *soc,
|
|
|
* monitor buffer rings.
|
|
|
* TODO: See if this is required for any other ring
|
|
|
*/
|
|
|
- if ((ring_type == RXDMA_BUF) || (ring_type == RXDMA_MONITOR_BUF) ||
|
|
|
+ if ((ring_type == RXDMA_MONITOR_BUF) ||
|
|
|
(ring_type == RXDMA_MONITOR_STATUS ||
|
|
|
(ring_type == TX_MONITOR_BUF))) {
|
|
|
/* TODO: Setting low threshold to 1/8th of ring size
|