mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 14:23:38 +00:00
44 lines
1.7 KiB
Diff
44 lines
1.7 KiB
Diff
From cbfbed495d3289d5a0bc7c614cea639008086cfe Mon Sep 17 00:00:00 2001
|
|
From: P Praneesh <ppranees@codeaurora.org>
|
|
Date: Fri, 12 Nov 2021 11:05:58 +0200
|
|
Subject: [PATCH] ath11k: avoid while loop in ring selection of tx completion
|
|
interrupt
|
|
|
|
Currently while loop is used to find the tx completion ring number and
|
|
it is not required since the tx ring mask and the group id can be combined
|
|
to directly fetch the ring number. Hence remove the while loop
|
|
and directly get the ring number from tx mask and group id.
|
|
|
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01734-QCAHKSWPL_SILICONZ-1 v2
|
|
|
|
Co-developed-by: Sriram R <srirrama@codeaurora.org>
|
|
Signed-off-by: Sriram R <srirrama@codeaurora.org>
|
|
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
|
|
Signed-off-by: P Praneesh <ppranees@codeaurora.org>
|
|
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
|
|
Link: https://lore.kernel.org/r/1630560820-21905-11-git-send-email-ppranees@codeaurora.org
|
|
---
|
|
drivers/net/wireless/ath/ath11k/dp.c | 9 ++++-----
|
|
1 file changed, 4 insertions(+), 5 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/dp.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/dp.c
|
|
@@ -771,13 +771,12 @@ int ath11k_dp_service_srng(struct ath11k
|
|
const struct ath11k_hw_hal_params *hal_params;
|
|
int grp_id = irq_grp->grp_id;
|
|
int work_done = 0;
|
|
- int i = 0, j;
|
|
+ int i, j;
|
|
int tot_work_done = 0;
|
|
|
|
- while (ab->hw_params.ring_mask->tx[grp_id] >> i) {
|
|
- if (ab->hw_params.ring_mask->tx[grp_id] & BIT(i))
|
|
- ath11k_dp_tx_completion_handler(ab, i);
|
|
- i++;
|
|
+ if (ab->hw_params.ring_mask->tx[grp_id]) {
|
|
+ i = __fls(ab->hw_params.ring_mask->tx[grp_id]);
|
|
+ ath11k_dp_tx_completion_handler(ab, i);
|
|
}
|
|
|
|
if (ab->hw_params.ring_mask->rx_err[grp_id]) {
|