mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-31 00:24:12 +00:00
7e42fdcafe
This updates mac80211 to version 6.1.110-1. This code is based on Linux 6.1.110 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.110. The following patches were integrated in upstream Linux: subsys/311-v6.2-wifi-mac80211-fix-and-simplify-unencrypted-drop-chec.patch subsys/312-v6.3-wifi-cfg80211-move-A-MSDU-check-in-ieee80211_data_to.patch subsys/313-v6.3-wifi-cfg80211-factor-out-bridge-tunnel-RFC1042-heade.patch subsys/314-v6.3-wifi-mac80211-remove-mesh-forwarding-congestion-chec.patch subsys/315-v6.3-wifi-mac80211-fix-receiving-A-MSDU-frames-on-mesh-in.patch subsys/316-v6.3-wifi-mac80211-add-a-workaround-for-receiving-non-sta.patch subsys/321-mac80211-fix-mesh-forwarding.patch subsys/322-wifi-mac80211-fix-mesh-path-discovery-based-on-unica.patch subsys/329-wifi-mac80211-fix-receiving-mesh-packets-in-forwardi.patch subsys/339-wifi-cfg80211-fix-receving-mesh-packets-without-RFC1.patch subsys/350-v6.3-wifi-mac80211-Allow-NSS-change-only-up-to-capability.patch subsys/351-v6.9-wifi-mac80211-track-capability-opmode-NSS-separately.patch Link: https://github.com/openwrt/openwrt/pull/16368 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
68 lines
2.5 KiB
Diff
68 lines
2.5 KiB
Diff
From 8077c1bbbc28e527fb29143c46f32c6a9d6cadf0 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: move HE MCS mapper to a separate function
|
|
|
|
Move HE MCS mapper to a separate function and call new function
|
|
in ath11k_mac_copy_he_cap().
|
|
|
|
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-4-git-send-email-quic_msinada@quicinc.com
|
|
---
|
|
drivers/net/wireless/ath/ath11k/mac.c | 34 +++++++++++++++++----------
|
|
1 file changed, 22 insertions(+), 12 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
@@ -5479,6 +5479,27 @@ static __le16 ath11k_mac_setup_he_6ghz_c
|
|
return cpu_to_le16(bcap->he_6ghz_capa);
|
|
}
|
|
|
|
+static void ath11k_mac_set_hemcsmap(struct ath11k *ar,
|
|
+ struct ath11k_pdev_cap *cap,
|
|
+ struct ieee80211_sta_he_cap *he_cap,
|
|
+ int band)
|
|
+{
|
|
+ struct ath11k_band_cap *band_cap = &cap->band[band];
|
|
+
|
|
+ he_cap->he_mcs_nss_supp.rx_mcs_80 =
|
|
+ cpu_to_le16(band_cap->he_mcs & 0xffff);
|
|
+ he_cap->he_mcs_nss_supp.tx_mcs_80 =
|
|
+ cpu_to_le16(band_cap->he_mcs & 0xffff);
|
|
+ he_cap->he_mcs_nss_supp.rx_mcs_160 =
|
|
+ cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
+ he_cap->he_mcs_nss_supp.tx_mcs_160 =
|
|
+ cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
+ he_cap->he_mcs_nss_supp.rx_mcs_80p80 =
|
|
+ cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
+ he_cap->he_mcs_nss_supp.tx_mcs_80p80 =
|
|
+ cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
+}
|
|
+
|
|
static int ath11k_mac_copy_he_cap(struct ath11k *ar,
|
|
struct ath11k_pdev_cap *cap,
|
|
struct ieee80211_sband_iftype_data *data,
|
|
@@ -5540,18 +5561,7 @@ static int ath11k_mac_copy_he_cap(struct
|
|
break;
|
|
}
|
|
|
|
- he_cap->he_mcs_nss_supp.rx_mcs_80 =
|
|
- cpu_to_le16(band_cap->he_mcs & 0xffff);
|
|
- he_cap->he_mcs_nss_supp.tx_mcs_80 =
|
|
- cpu_to_le16(band_cap->he_mcs & 0xffff);
|
|
- he_cap->he_mcs_nss_supp.rx_mcs_160 =
|
|
- cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
- he_cap->he_mcs_nss_supp.tx_mcs_160 =
|
|
- cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
- he_cap->he_mcs_nss_supp.rx_mcs_80p80 =
|
|
- cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
- he_cap->he_mcs_nss_supp.tx_mcs_80p80 =
|
|
- cpu_to_le16((band_cap->he_mcs >> 16) & 0xffff);
|
|
+ ath11k_mac_set_hemcsmap(ar, cap, he_cap, band);
|
|
|
|
memset(he_cap->ppe_thres, 0, sizeof(he_cap->ppe_thres));
|
|
if (he_cap_elem->phy_cap_info[6] &
|