mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-15 09:19:57 +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>
65 lines
2.3 KiB
Diff
65 lines
2.3 KiB
Diff
From ebf82988f844dd98e6b007cffcc5e95986056995 Mon Sep 17 00:00:00 2001
|
|
From: Muna Sinada <quic_msinada@quicinc.com>
|
|
Date: Fri, 24 Feb 2023 12:28:04 +0200
|
|
Subject: [PATCH] wifi: ath11k: generate rx and tx mcs maps for supported HE
|
|
mcs
|
|
|
|
Generate rx and tx mcs maps in ath11k_mac_set_hemcsmap() and set them
|
|
in supported mcs/nss for HE capabilities.
|
|
|
|
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00356-QCAHKSWPL_SILICONZ-1
|
|
|
|
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
|
|
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
|
|
Link: https://lore.kernel.org/r/1666128501-12364-5-git-send-email-quic_msinada@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/mac.c | 30 ++++++++++++++++++++-------
|
|
1 file changed, 23 insertions(+), 7 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
@@ -5485,20 +5485,36 @@ static void ath11k_mac_set_hemcsmap(stru
|
|
struct ieee80211_sta_he_cap *he_cap,
|
|
int band)
|
|
{
|
|
- struct ath11k_band_cap *band_cap = &cap->band[band];
|
|
+ u16 txmcs_map, rxmcs_map;
|
|
+ u32 i;
|
|
|
|
+ rxmcs_map = 0;
|
|
+ txmcs_map = 0;
|
|
+ for (i = 0; i < 8; i++) {
|
|
+ if (i < ar->num_tx_chains &&
|
|
+ (ar->cfg_tx_chainmask >> cap->tx_chain_mask_shift) & BIT(i))
|
|
+ txmcs_map |= IEEE80211_HE_MCS_SUPPORT_0_11 << (i * 2);
|
|
+ else
|
|
+ txmcs_map |= IEEE80211_HE_MCS_NOT_SUPPORTED << (i * 2);
|
|
+
|
|
+ if (i < ar->num_rx_chains &&
|
|
+ (ar->cfg_rx_chainmask >> cap->tx_chain_mask_shift) & BIT(i))
|
|
+ rxmcs_map |= IEEE80211_HE_MCS_SUPPORT_0_11 << (i * 2);
|
|
+ else
|
|
+ rxmcs_map |= IEEE80211_HE_MCS_NOT_SUPPORTED << (i * 2);
|
|
+ }
|
|
he_cap->he_mcs_nss_supp.rx_mcs_80 =
|
|
- cpu_to_le16(band_cap->he_mcs & 0xffff);
|
|
+ cpu_to_le16(rxmcs_map & 0xffff);
|
|
he_cap->he_mcs_nss_supp.tx_mcs_80 =
|
|
- cpu_to_le16(band_cap->he_mcs & 0xffff);
|
|
+ cpu_to_le16(txmcs_map & 0xffff);
|
|
he_cap->he_mcs_nss_supp.rx_mcs_160 =
|
|
- cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
+ cpu_to_le16(rxmcs_map & 0xffff);
|
|
he_cap->he_mcs_nss_supp.tx_mcs_160 =
|
|
- cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
+ cpu_to_le16(txmcs_map & 0xffff);
|
|
he_cap->he_mcs_nss_supp.rx_mcs_80p80 =
|
|
- cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
+ cpu_to_le16(rxmcs_map & 0xffff);
|
|
he_cap->he_mcs_nss_supp.tx_mcs_80p80 =
|
|
- cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
+ cpu_to_le16(txmcs_map & 0xffff);
|
|
}
|
|
|
|
static int ath11k_mac_copy_he_cap(struct ath11k *ar,
|