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>
62 lines
2.5 KiB
Diff
62 lines
2.5 KiB
Diff
From e89a51aedf380bc60219dc9afa96c36507060fb3 Mon Sep 17 00:00:00 2001
|
|
From: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
|
|
Date: Wed, 15 Mar 2023 21:48:17 +0530
|
|
Subject: [PATCH] wifi: ath11k: Send 11d scan start before WMI_START_SCAN_CMDID
|
|
|
|
Firmwares advertising the support of triggering 11d algorithm on the
|
|
scan results of a regular scan expects driver to send
|
|
WMI_11D_SCAN_START_CMDID before sending WMI_START_SCAN_CMDID.
|
|
Triggering 11d algorithm on the scan results of a normal scan helps
|
|
in completely avoiding a separate 11d scan for determining regdomain.
|
|
This indirectly helps in speeding up connections on station
|
|
interfaces on the chipsets supporting 11D scan.
|
|
|
|
To enable this feature, send WMI_11D_SCAN_START_CMDID just before
|
|
sending WMI_START_SCAN_CMDID if the firmware advertises
|
|
WMI_TLV_SERVICE_SUPPORT_11D_FOR_HOST_SCAN service flag.
|
|
|
|
WCN6750 & WCN6855 supports this feature.
|
|
|
|
Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-01160-QCAMSLSWPLZ-1
|
|
Tested-on: WCN6855 hw2.1 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23
|
|
|
|
Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
|
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
|
Link: https://lore.kernel.org/r/20230315161817.29627-1-quic_mpubbise@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/mac.c | 12 ++++++++++++
|
|
drivers/net/wireless/ath/ath11k/wmi.h | 1 +
|
|
2 files changed, 13 insertions(+)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
@@ -3755,6 +3755,18 @@ static int ath11k_mac_op_hw_scan(struct
|
|
int i;
|
|
u32 scan_timeout;
|
|
|
|
+ /* Firmwares advertising the support of triggering 11D algorithm
|
|
+ * on the scan results of a regular scan expects driver to send
|
|
+ * WMI_11D_SCAN_START_CMDID before sending WMI_START_SCAN_CMDID.
|
|
+ * With this feature, separate 11D scan can be avoided since
|
|
+ * regdomain can be determined with the scan results of the
|
|
+ * regular scan.
|
|
+ */
|
|
+ if (ar->state_11d == ATH11K_11D_PREPARING &&
|
|
+ test_bit(WMI_TLV_SERVICE_SUPPORT_11D_FOR_HOST_SCAN,
|
|
+ ar->ab->wmi_ab.svc_map))
|
|
+ ath11k_mac_11d_scan_start(ar, arvif->vdev_id);
|
|
+
|
|
mutex_lock(&ar->conf_mutex);
|
|
|
|
spin_lock_bh(&ar->data_lock);
|
|
--- a/drivers/net/wireless/ath/ath11k/wmi.h
|
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
|
|
@@ -2103,6 +2103,7 @@ enum wmi_tlv_service {
|
|
WMI_TLV_SERVICE_SCAN_CONFIG_PER_CHANNEL = 265,
|
|
WMI_TLV_SERVICE_REG_CC_EXT_EVENT_SUPPORT = 281,
|
|
WMI_TLV_SERVICE_BIOS_SAR_SUPPORT = 326,
|
|
+ WMI_TLV_SERVICE_SUPPORT_11D_FOR_HOST_SCAN = 357,
|
|
|
|
/* The third 128 bits */
|
|
WMI_MAX_EXT2_SERVICE = 384
|