2023-10-12 10:25:32 +00:00
|
|
|
From 77f1ee6fd8b6e470f721d05a2e269039d5cafcb7 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Aditya Kumar Singh <quic_adisi@quicinc.com>
|
|
|
|
Date: Tue, 3 Oct 2023 17:26:54 +0300
|
|
|
|
Subject: [PATCH] wifi: ath11k: fix Tx power value during active CAC
|
|
|
|
|
|
|
|
Tx power is fetched from firmware's pdev stats. However, during active
|
|
|
|
CAC, firmware does not fill the current Tx power and sends the max
|
|
|
|
initialised value filled during firmware init. If host sends this power
|
|
|
|
to user space, this is wrong since in certain situations, the Tx power
|
|
|
|
could be greater than the max allowed by the regulatory. Hence, host
|
|
|
|
should not be fetching the Tx power during an active CAC.
|
|
|
|
|
|
|
|
Fix this issue by returning -EAGAIN error so that user space knows that there's
|
|
|
|
no valid value available.
|
|
|
|
|
|
|
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
|
|
|
|
|
|
|
Fixes: 9a2aa68afe3d ("wifi: ath11k: add get_txpower mac ops")
|
|
|
|
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
|
|
|
|
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
|
|
|
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
|
|
|
Link: https://lore.kernel.org/r/20230912051857.2284-4-quic_adisi@quicinc.com
|
|
|
|
---
|
|
|
|
drivers/net/wireless/ath/ath11k/mac.c | 8 ++++++++
|
|
|
|
1 file changed, 8 insertions(+)
|
|
|
|
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
2024-02-04 12:24:29 +00:00
|
|
|
@@ -9068,6 +9068,14 @@ static int ath11k_mac_op_get_txpower(str
|
|
|
|
return -EAGAIN;
|
|
|
|
}
|
2023-10-12 10:25:32 +00:00
|
|
|
|
|
|
|
+ /* Firmware doesn't provide Tx power during CAC hence no need to fetch
|
|
|
|
+ * the stats.
|
|
|
|
+ */
|
|
|
|
+ if (test_bit(ATH11K_CAC_RUNNING, &ar->dev_flags)) {
|
|
|
|
+ mutex_unlock(&ar->conf_mutex);
|
|
|
|
+ return -EAGAIN;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
req_param.pdev_id = ar->pdev->pdev_id;
|
|
|
|
req_param.stats_id = WMI_REQUEST_PDEV_STAT;
|
|
|
|
|