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 17:59:12 +0530
commit6b71293663902f18513554f653af1eaebc694ce5 (patch)
tree43f80cc319d9c79d7ed37fb02e260bf9c12b50e5
parentc834d461ac0e8fb398e94f54ca7a36b11d3b0a1e (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);
}
}