mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-26 08:51:13 +00:00
930e702d72
Synchronize the ath11k backports with the current ath-next tree. This replaces the management TLV pending fix with the upstreamed one, fixes traffic flooding when AP and monitor modes are used at the same time, fixes QCN9074 always showing -95 dBm for station RSSI in dumps, fixes potential crash on boot if spectral scan is enabled due to writing to unitialized memory and adds 11d scan offloading for WCN6750 and WCN6855. Signed-off-by: Robert Marko <robimarko@gmail.com>
118 lines
3.8 KiB
Diff
118 lines
3.8 KiB
Diff
From 813968c24126cc5c8320cd5db0e262069a535063 Mon Sep 17 00:00:00 2001
|
|
From: Ganesh Babu Jothiram <quic_gjothira@quicinc.com>
|
|
Date: Fri, 24 Mar 2023 16:57:00 +0200
|
|
Subject: [PATCH] wifi: ath11k: Configure the FTM responder role using firmware
|
|
capability flag
|
|
|
|
Fine Time Measurement(FTM) is offloaded feature to firmware.
|
|
Hence, the configuration of FTM responder role is done using
|
|
firmware capability flag instead of hw param.
|
|
|
|
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
|
|
|
Signed-off-by: Ganesh Babu Jothiram <quic_gjothira@quicinc.com>
|
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
|
Link: https://lore.kernel.org/r/20230317072034.8217-1-quic_gjothira@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/core.c | 8 --------
|
|
drivers/net/wireless/ath/ath11k/hw.h | 1 -
|
|
drivers/net/wireless/ath/ath11k/mac.c | 4 ++--
|
|
3 files changed, 2 insertions(+), 11 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/core.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/core.c
|
|
@@ -116,7 +116,6 @@ static const struct ath11k_hw_params ath
|
|
.tcl_ring_retry = true,
|
|
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
|
|
.smp2p_wow_exit = false,
|
|
- .ftm_responder = true,
|
|
},
|
|
{
|
|
.hw_rev = ATH11K_HW_IPQ6018_HW10,
|
|
@@ -199,7 +198,6 @@ static const struct ath11k_hw_params ath
|
|
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
|
|
.smp2p_wow_exit = false,
|
|
.support_fw_mac_sequence = false,
|
|
- .ftm_responder = true,
|
|
},
|
|
{
|
|
.name = "qca6390 hw2.0",
|
|
@@ -284,7 +282,6 @@ static const struct ath11k_hw_params ath
|
|
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
|
|
.smp2p_wow_exit = false,
|
|
.support_fw_mac_sequence = true,
|
|
- .ftm_responder = false,
|
|
},
|
|
{
|
|
.name = "qcn9074 hw1.0",
|
|
@@ -366,7 +363,6 @@ static const struct ath11k_hw_params ath
|
|
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
|
|
.smp2p_wow_exit = false,
|
|
.support_fw_mac_sequence = false,
|
|
- .ftm_responder = true,
|
|
},
|
|
{
|
|
.name = "wcn6855 hw2.0",
|
|
@@ -451,7 +447,6 @@ static const struct ath11k_hw_params ath
|
|
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
|
|
.smp2p_wow_exit = false,
|
|
.support_fw_mac_sequence = true,
|
|
- .ftm_responder = false,
|
|
},
|
|
{
|
|
.name = "wcn6855 hw2.1",
|
|
@@ -534,7 +529,6 @@ static const struct ath11k_hw_params ath
|
|
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
|
|
.smp2p_wow_exit = false,
|
|
.support_fw_mac_sequence = true,
|
|
- .ftm_responder = false,
|
|
},
|
|
{
|
|
.name = "wcn6750 hw1.0",
|
|
@@ -615,7 +609,6 @@ static const struct ath11k_hw_params ath
|
|
.tx_ring_size = DP_TCL_DATA_RING_SIZE_WCN6750,
|
|
.smp2p_wow_exit = true,
|
|
.support_fw_mac_sequence = true,
|
|
- .ftm_responder = false,
|
|
},
|
|
{
|
|
.hw_rev = ATH11K_HW_IPQ5018_HW10,
|
|
@@ -695,7 +688,6 @@ static const struct ath11k_hw_params ath
|
|
.tx_ring_size = DP_TCL_DATA_RING_SIZE,
|
|
.smp2p_wow_exit = false,
|
|
.support_fw_mac_sequence = false,
|
|
- .ftm_responder = true,
|
|
},
|
|
};
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/hw.h
|
|
+++ b/drivers/net/wireless/ath/ath11k/hw.h
|
|
@@ -224,7 +224,6 @@ struct ath11k_hw_params {
|
|
u32 tx_ring_size;
|
|
bool smp2p_wow_exit;
|
|
bool support_fw_mac_sequence;
|
|
- bool ftm_responder;
|
|
};
|
|
|
|
struct ath11k_hw_ops {
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
@@ -3538,7 +3538,7 @@ static void ath11k_mac_op_bss_info_chang
|
|
|
|
if (changed & BSS_CHANGED_FTM_RESPONDER &&
|
|
arvif->ftm_responder != info->ftm_responder &&
|
|
- ar->ab->hw_params.ftm_responder &&
|
|
+ test_bit(WMI_TLV_SERVICE_RTT, ar->ab->wmi_ab.svc_map) &&
|
|
(vif->type == NL80211_IFTYPE_AP ||
|
|
vif->type == NL80211_IFTYPE_MESH_POINT)) {
|
|
arvif->ftm_responder = info->ftm_responder;
|
|
@@ -9234,7 +9234,7 @@ static int __ath11k_mac_register(struct
|
|
wiphy_ext_feature_set(ar->hw->wiphy,
|
|
NL80211_EXT_FEATURE_SET_SCAN_DWELL);
|
|
|
|
- if (ab->hw_params.ftm_responder)
|
|
+ if (test_bit(WMI_TLV_SERVICE_RTT, ar->ab->wmi_ab.svc_map))
|
|
wiphy_ext_feature_set(ar->hw->wiphy,
|
|
NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER);
|
|
|