mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-10 06:52:53 +00:00
74 lines
2.7 KiB
Diff
74 lines
2.7 KiB
Diff
|
From cf8f3d4deb02a8fdc806c46d4112b69868544697 Mon Sep 17 00:00:00 2001
|
||
|
From: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||
|
Date: Wed, 15 Feb 2023 20:31:36 +0200
|
||
|
Subject: [PATCH] wifi: ath11k: Set ext passive scan flag to adjust passive
|
||
|
scan start time
|
||
|
|
||
|
Set the WMI_SCAN_FLAG_EXT_PASSIVE_SCAN_START_TIME_ENHANCE flag
|
||
|
while sending the scan command. If this flag is enabled when the
|
||
|
incoming scan request comes with a strict start time and its duration
|
||
|
overlaps with next TBTT, then target adjust the start time accordingly
|
||
|
for passive scan. Target supporting this feature will advertise
|
||
|
WMI_TLV_SERVICE_PASSIVE_SCAN_START_TIME_ENHANCE.
|
||
|
|
||
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-01467-QCAHKSWPL_SILICONZ-1
|
||
|
|
||
|
Signed-off-by: Tamizh Chelvam Raja <quic_tamizhr@quicinc.com>
|
||
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
||
|
Link: https://lore.kernel.org/r/20221222131720.11368-1-quic_tamizhr@quicinc.com
|
||
|
---
|
||
|
drivers/net/wireless/ath/ath11k/wmi.c | 8 ++++++++
|
||
|
drivers/net/wireless/ath/ath11k/wmi.h | 3 +++
|
||
|
2 files changed, 11 insertions(+)
|
||
|
|
||
|
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
||
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
||
|
@@ -2068,6 +2068,12 @@ void ath11k_wmi_start_scan_init(struct a
|
||
|
WMI_SCAN_EVENT_FOREIGN_CHAN |
|
||
|
WMI_SCAN_EVENT_DEQUEUED;
|
||
|
arg->scan_flags |= WMI_SCAN_CHAN_STAT_EVENT;
|
||
|
+
|
||
|
+ if (test_bit(WMI_TLV_SERVICE_PASSIVE_SCAN_START_TIME_ENHANCE,
|
||
|
+ ar->ab->wmi_ab.svc_map))
|
||
|
+ arg->scan_ctrl_flags_ext |=
|
||
|
+ WMI_SCAN_FLAG_EXT_PASSIVE_SCAN_START_TIME_ENHANCE;
|
||
|
+
|
||
|
arg->num_bssid = 1;
|
||
|
|
||
|
/* fill bssid_list[0] with 0xff, otherwise bssid and RA will be
|
||
|
@@ -2149,6 +2155,8 @@ ath11k_wmi_copy_scan_event_cntrl_flags(s
|
||
|
/* for adaptive scan mode using 3 bits (21 - 23 bits) */
|
||
|
WMI_SCAN_SET_DWELL_MODE(cmd->scan_ctrl_flags,
|
||
|
param->adaptive_dwell_time_mode);
|
||
|
+
|
||
|
+ cmd->scan_ctrl_flags_ext = param->scan_ctrl_flags_ext;
|
||
|
}
|
||
|
|
||
|
int ath11k_wmi_send_scan_start_cmd(struct ath11k *ar,
|
||
|
--- a/drivers/net/wireless/ath/ath11k/wmi.h
|
||
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
|
||
|
@@ -2093,6 +2093,7 @@ enum wmi_tlv_service {
|
||
|
WMI_TLV_SERVICE_EXT2_MSG = 220,
|
||
|
WMI_TLV_SERVICE_PEER_POWER_SAVE_DURATION_SUPPORT = 246,
|
||
|
WMI_TLV_SERVICE_SRG_SRP_SPATIAL_REUSE_SUPPORT = 249,
|
||
|
+ WMI_TLV_SERVICE_PASSIVE_SCAN_START_TIME_ENHANCE = 263,
|
||
|
|
||
|
/* The second 128 bits */
|
||
|
WMI_MAX_EXT_SERVICE = 256,
|
||
|
@@ -3223,6 +3224,7 @@ struct wmi_start_scan_cmd {
|
||
|
|
||
|
#define WMI_SCAN_DWELL_MODE_MASK 0x00E00000
|
||
|
#define WMI_SCAN_DWELL_MODE_SHIFT 21
|
||
|
+#define WMI_SCAN_FLAG_EXT_PASSIVE_SCAN_START_TIME_ENHANCE 0x00000800
|
||
|
|
||
|
enum {
|
||
|
WMI_SCAN_DWELL_MODE_DEFAULT = 0,
|
||
|
@@ -3270,6 +3272,7 @@ struct scan_req_params {
|
||
|
};
|
||
|
u32 scan_events;
|
||
|
};
|
||
|
+ u32 scan_ctrl_flags_ext;
|
||
|
u32 dwell_time_active;
|
||
|
u32 dwell_time_active_2g;
|
||
|
u32 dwell_time_passive;
|