mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 22:47:56 +00:00
524704e677
Synchronize the ath11k backports with the current ath-next tree. This backports several memory leak issues, PCI IRQ fixup, peer add locking fix as well as IPQ5018 support, though IPQ5018 support is unused for now. This allows to easily backport further fixes as cherry picking them has started requiring manual conflict resolution. Signed-off-by: Robert Marko <robimarko@gmail.com>
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;
|