summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGovind Singh <govinds@qti.qualcomm.com>2016-07-25 15:07:40 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-07-28 14:36:58 +0530
commit374acff684621da082d7df176e2b1bd9b41e49f2 (patch)
tree43f80cc319d9c79d7ed37fb02e260bf9c12b50e5
parent5c3e2b0254698bf19119e2569376363bc1bd0d2b (diff)
qcacld-2.0: Flush TX LL queues when throttle level is set to 0
TX LL queues are not flushed immediately when throttle level is set to 0. This is causing latency as TX LL queues are getting flushed on arrival of new packet from network stack. Flush Tx LL queues by rescheduling the throttle phase timer ,when throttle level is set to 0. Change-Id: I69ec02017e6fc08221059266e06af3c17c084549 CRs-Fixed: 1046433
-rw-r--r--CORE/CLD_TXRX/TXRX/ol_tx_queue.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/CORE/CLD_TXRX/TXRX/ol_tx_queue.c b/CORE/CLD_TXRX/TXRX/ol_tx_queue.c
index 23bc63c5782e..6f6ac453f381 100644
--- a/CORE/CLD_TXRX/TXRX/ol_tx_queue.c
+++ b/CORE/CLD_TXRX/TXRX/ol_tx_queue.c
@@ -1241,6 +1241,7 @@ void ol_tx_throttle_set_level(struct ol_txrx_pdev_t *pdev, int level)
ms = pdev->tx_throttle.throttle_time_ms[level][THROTTLE_PHASE_OFF];
/* pause all */
ol_txrx_throttle_pause(pdev);
+ adf_os_timer_start(&pdev->tx_throttle.phase_timer, ms);
} else {
pdev->tx_throttle.current_throttle_phase = THROTTLE_PHASE_ON;
ms = pdev->tx_throttle.throttle_time_ms[level][THROTTLE_PHASE_ON];
@@ -1255,9 +1256,6 @@ void ol_tx_throttle_set_level(struct ol_txrx_pdev_t *pdev, int level)
ms = pdev->tx_throttle.throttle_time_ms[level][THROTTLE_PHASE_OFF];
adf_os_timer_cancel(&pdev->tx_throttle.phase_timer);
- }
-
- if (level != THROTTLE_LEVEL_0) {
adf_os_timer_start(&pdev->tx_throttle.phase_timer, ms);
}
}