mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-04 04:54:18 +00:00
323e249ce8
This updates mac80211 to version 6.1.97-1. This code is based on Linux 6.1.97 and contains all fixes included in the upstream wireless subsystem from that kernel version. This includes many bugfixes and also some security fixes. The removed patches are already integrated in upstream Linux 6.1.97 or in backports. The following patches were integrated in upstream Linux: ath11k/0013-wifi-ath11k-synchronize-ath11k_mac_he_gi_to_nl80211_.patch ath11k/0035-wifi-ath11k-Use-platform_get_irq-to-get-the-interrup.patch ath11k/0036-wifi-ath11k-fix-SAC-bug-on-peer-addition-with-sta-ba.patch ath11k/0047-wifi-ath11k-fix-deinitialization-of-firmware-resourc.patch ath11k/0053-wifi-ath11k-fix-writing-to-unintended-memory-region.patch ath11k/0060-wifi-ath11k-Ignore-frags-from-uninitialized-peer-in-.patch ath11k/0065-wifi-ath11k-fix-tx-status-reporting-in-encap-offload.patch ath11k/0067-wifi-ath11k-Fix-SKB-corruption-in-REO-destination-ri.patch ath11k/0069-wifi-ath11k-fix-registration-of-6Ghz-only-phy-withou.patch ath11k/0080-wifi-ath11k-add-support-default-regdb-while-searchin.patch ath11k/0085-wifi-ath11k-fix-memory-leak-in-WMI-firmware-stats.patch ath11k/0086-wifi-ath11k-Add-missing-check-for-ioremap.patch ath11k/0096-wifi-ath11k-fix-boot-failure-with-one-MSI-vector.patch subsys/337-wifi-mac80211-fix-race-condition-on-enabling-fast-xm.patch The following patches were integrated in upstream backports: ath11k/901-wifi-ath11k-pci-fix-compilation-in-5.16-and-older.patch build/080-resv_start_op.patch build/110-backport_napi_build_skb.patch The following files are missing in backports, we do not have to remove them any more. Some were already missing before some were removed in this update: include/linux/cordic.h include/linux/crc8.h include/linux/eeprom_93cx6.h include/linux/wl12xx.h include/net/ieee80211.h backport-include/linux/bcm47xx_nvram.h include/linux/ath9k_platform.h include/net/bluetooth/ backports ships a dummy Mediatek wed header for older kernel versions. We backported the feature in our kernel, remove the dummy header: backport-include/linux/soc/mediatek/mtk_wed.h Remove header files for subsystems used form the mainline kernel: include/trace/events/qrtr.h include/net/rsi_91x.h backport-include/linux/platform_data/brcmnand.h Link: https://github.com/openwrt/openwrt/pull/15827 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
134 lines
4.9 KiB
Diff
134 lines
4.9 KiB
Diff
From a08dbb04d7365a04d52882143cf196005bfc88c3 Mon Sep 17 00:00:00 2001
|
|
From: Aloka Dixit <quic_alokad@quicinc.com>
|
|
Date: Fri, 5 May 2023 16:11:27 +0300
|
|
Subject: [PATCH 71/77] wifi: ath11k: driver settings for MBSSID and EMA
|
|
|
|
Advertise the driver support for multiple BSSID (MBSSID) and
|
|
enhanced multi-BSSID advertisements (EMA) by setting extended
|
|
capabilities.
|
|
|
|
Configure mbssid_max_interfaces and ema_max_profile_periodicity
|
|
fields in structure wiphy which are used to advertise maximum number
|
|
of interfaces and profile periodicity supported by the driver.
|
|
|
|
Add new WMI fields to configure maximum vdev count supported for
|
|
MBSSID and profile periodicity in case of EMA.
|
|
Setting WMI_RSRC_CFG_FLAG2_CALC_NEXT_DTIM_COUNT_SET flag
|
|
indicates that the firmware should track and update the DTIM counts
|
|
for each non-transmitted profile.
|
|
|
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1
|
|
|
|
Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com>
|
|
Co-developed-by: John Crispin <john@phrozen.org>
|
|
Signed-off-by: John Crispin <john@phrozen.org>
|
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
|
Link: https://lore.kernel.org/r/20230405221648.17950-2-quic_alokad@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/hw.c | 3 +++
|
|
drivers/net/wireless/ath/ath11k/hw.h | 1 +
|
|
drivers/net/wireless/ath/ath11k/mac.c | 7 +++++++
|
|
drivers/net/wireless/ath/ath11k/wmi.c | 3 +++
|
|
drivers/net/wireless/ath/ath11k/wmi.h | 6 ++++++
|
|
5 files changed, 20 insertions(+)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/hw.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/hw.c
|
|
@@ -202,6 +202,9 @@ static void ath11k_init_wmi_config_ipq80
|
|
config->twt_ap_sta_count = 1000;
|
|
config->flag1 |= WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64;
|
|
config->flag1 |= WMI_RSRC_CFG_FLAG1_ACK_RSSI;
|
|
+ config->ema_max_vap_cnt = ab->num_radios;
|
|
+ config->ema_max_profile_period = TARGET_EMA_MAX_PROFILE_PERIOD;
|
|
+ config->beacon_tx_offload_max_vdev += config->ema_max_vap_cnt;
|
|
}
|
|
|
|
static int ath11k_hw_mac_id_to_pdev_id_ipq8074(struct ath11k_hw_params *hw,
|
|
--- a/drivers/net/wireless/ath/ath11k/hw.h
|
|
+++ b/drivers/net/wireless/ath/ath11k/hw.h
|
|
@@ -64,6 +64,7 @@
|
|
#define TARGET_NUM_WDS_ENTRIES 32
|
|
#define TARGET_DMA_BURST_SIZE 1
|
|
#define TARGET_RX_BATCHMODE 1
|
|
+#define TARGET_EMA_MAX_PROFILE_PERIOD 8
|
|
|
|
#define ATH11K_HW_MAX_QUEUES 4
|
|
#define ATH11K_QUEUE_LEN 4096
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
@@ -9006,19 +9006,23 @@ static int ath11k_mac_setup_iface_combin
|
|
|
|
static const u8 ath11k_if_types_ext_capa[] = {
|
|
[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
|
|
+ [2] = WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT,
|
|
[7] = WLAN_EXT_CAPA8_OPMODE_NOTIF,
|
|
};
|
|
|
|
static const u8 ath11k_if_types_ext_capa_sta[] = {
|
|
[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
|
|
+ [2] = WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT,
|
|
[7] = WLAN_EXT_CAPA8_OPMODE_NOTIF,
|
|
[9] = WLAN_EXT_CAPA10_TWT_REQUESTER_SUPPORT,
|
|
};
|
|
|
|
static const u8 ath11k_if_types_ext_capa_ap[] = {
|
|
[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
|
|
+ [2] = WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT,
|
|
[7] = WLAN_EXT_CAPA8_OPMODE_NOTIF,
|
|
[9] = WLAN_EXT_CAPA10_TWT_RESPONDER_SUPPORT,
|
|
+ [10] = WLAN_EXT_CAPA11_EMA_SUPPORT,
|
|
};
|
|
|
|
static const struct wiphy_iftype_ext_capab ath11k_iftypes_ext_capa[] = {
|
|
@@ -9256,6 +9260,9 @@ static int __ath11k_mac_register(struct
|
|
wiphy_ext_feature_set(ar->hw->wiphy,
|
|
NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER);
|
|
|
|
+ ar->hw->wiphy->mbssid_max_interfaces = TARGET_NUM_VDEVS(ab);
|
|
+ ar->hw->wiphy->ema_max_profile_periodicity = TARGET_EMA_MAX_PROFILE_PERIOD;
|
|
+
|
|
ath11k_reg_init(ar);
|
|
|
|
if (!test_bit(ATH11K_FLAG_RAW_MODE, &ab->dev_flags)) {
|
|
--- a/drivers/net/wireless/ath/ath11k/wmi.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.c
|
|
@@ -3987,6 +3987,9 @@ ath11k_wmi_copy_resource_config(struct w
|
|
~(1 << WMI_CFG_HOST_SERVICE_FLAG_REG_CC_EXT);
|
|
wmi_cfg->host_service_flags |= (tg_cfg->is_reg_cc_ext_event_supported <<
|
|
WMI_CFG_HOST_SERVICE_FLAG_REG_CC_EXT);
|
|
+ wmi_cfg->flags2 = WMI_RSRC_CFG_FLAG2_CALC_NEXT_DTIM_COUNT_SET;
|
|
+ wmi_cfg->ema_max_vap_cnt = tg_cfg->ema_max_vap_cnt;
|
|
+ wmi_cfg->ema_max_profile_period = tg_cfg->ema_max_profile_period;
|
|
}
|
|
|
|
static int ath11k_init_cmd_send(struct ath11k_pdev_wmi *wmi,
|
|
--- a/drivers/net/wireless/ath/ath11k/wmi.h
|
|
+++ b/drivers/net/wireless/ath/ath11k/wmi.h
|
|
@@ -2317,6 +2317,7 @@ struct wmi_init_cmd {
|
|
} __packed;
|
|
|
|
#define WMI_RSRC_CFG_FLAG1_BSS_CHANNEL_INFO_64 BIT(5)
|
|
+#define WMI_RSRC_CFG_FLAG2_CALC_NEXT_DTIM_COUNT_SET BIT(9)
|
|
#define WMI_RSRC_CFG_FLAG1_ACK_RSSI BIT(18)
|
|
|
|
#define WMI_CFG_HOST_SERVICE_FLAG_REG_CC_EXT 4
|
|
@@ -2389,6 +2390,9 @@ struct wmi_resource_config {
|
|
u32 msdu_flow_override_config1;
|
|
u32 flags2;
|
|
u32 host_service_flags;
|
|
+ u32 max_rnr_neighbours;
|
|
+ u32 ema_max_vap_cnt;
|
|
+ u32 ema_max_profile_period;
|
|
} __packed;
|
|
|
|
struct wmi_service_ready_event {
|
|
@@ -5646,6 +5650,8 @@ struct target_resource_config {
|
|
u32 twt_ap_pdev_count;
|
|
u32 twt_ap_sta_count;
|
|
u8 is_reg_cc_ext_event_supported;
|
|
+ u32 ema_max_vap_cnt;
|
|
+ u32 ema_max_profile_period;
|
|
};
|
|
|
|
enum wmi_debug_log_param {
|