2023-03-15 16:19:28

by Manikanta Pubbisetty

[permalink] [raw]
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 <[email protected]>
---
drivers/net/wireless/ath/ath11k/mac.c | 12 ++++++++++++
drivers/net/wireless/ath/ath11k/wmi.h | 1 +
2 files changed, 13 insertions(+)

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index cad832e0e6b8..be2e17b641d1 100644
--- 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 ieee80211_hw *hw,
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);
diff --git a/drivers/net/wireless/ath/ath11k/wmi.h b/drivers/net/wireless/ath/ath11k/wmi.h
index b23b7a22bc9a..21589d8efcc7 100644
--- a/drivers/net/wireless/ath/ath11k/wmi.h
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
@@ -2102,6 +2102,7 @@ enum wmi_tlv_service {
WMI_MAX_EXT_SERVICE = 256,
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

base-commit: 3df3715e556027e94246b2cb30986563362a65f4
--
2.17.1



2023-04-12 10:06:55

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] wifi: ath11k: Send 11d scan start before WMI_START_SCAN_CMDID

Manikanta Pubbisetty <[email protected]> wrote:

> 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 <[email protected]>
> Signed-off-by: Kalle Valo <[email protected]>

Patch applied to ath-next branch of ath.git, thanks.

e89a51aedf38 wifi: ath11k: Send 11d scan start before WMI_START_SCAN_CMDID

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches