mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
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
|