mac80211: ath11k: sync with ath-next
[openwrt/staging/dedeckeh.git] / package / kernel / mac80211 / patches / ath11k / 0038-wifi-ath11k-modify-accessor-macros-to-match-index-si.patch
diff --git a/package/kernel/mac80211/patches/ath11k/0038-wifi-ath11k-modify-accessor-macros-to-match-index-si.patch b/package/kernel/mac80211/patches/ath11k/0038-wifi-ath11k-modify-accessor-macros-to-match-index-si.patch
new file mode 100644 (file)
index 0000000..42bf170
--- /dev/null
@@ -0,0 +1,61 @@
+From a96f10422e74cde27c100b321b127ec32ae75747 Mon Sep 17 00:00:00 2001
+From: Muna Sinada <quic_msinada@quicinc.com>
+Date: Fri, 24 Feb 2023 12:28:03 +0200
+Subject: [PATCH] wifi: ath11k: modify accessor macros to match index size
+
+HE PHY is only 11 bytes, therefore it should be using byte indexes
+instead of dword. Change corresponding macros to reflect this.
+
+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-2-git-send-email-quic_msinada@quicinc.com
+---
+ drivers/net/wireless/ath/ath11k/wmi.h | 24 +++++++++++++-----------
+ 1 file changed, 13 insertions(+), 11 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath11k/wmi.h
++++ b/drivers/net/wireless/ath/ath11k/wmi.h
+@@ -2859,30 +2859,32 @@ struct rx_reorder_queue_remove_params {
+ #define WMI_VDEV_PARAM_TXBF_SU_TX_BFER BIT(2)
+ #define WMI_VDEV_PARAM_TXBF_MU_TX_BFER BIT(3)
+-#define HECAP_PHYDWORD_0      0
+-#define HECAP_PHYDWORD_1      1
+-#define HECAP_PHYDWORD_2      2
++#define HE_PHYCAP_BYTE_0      0
++#define HE_PHYCAP_BYTE_1      1
++#define HE_PHYCAP_BYTE_2      2
++#define HE_PHYCAP_BYTE_3      3
++#define HE_PHYCAP_BYTE_4      4
+-#define HECAP_PHY_SU_BFER             BIT(31)
++#define HECAP_PHY_SU_BFER             BIT(7)
+ #define HECAP_PHY_SU_BFEE             BIT(0)
+ #define HECAP_PHY_MU_BFER             BIT(1)
+-#define HECAP_PHY_UL_MUMIMO           BIT(22)
+-#define HECAP_PHY_UL_MUOFDMA          BIT(23)
++#define HECAP_PHY_UL_MUMIMO           BIT(6)
++#define HECAP_PHY_UL_MUOFDMA          BIT(7)
+ #define HECAP_PHY_SUBFMR_GET(hecap_phy) \
+-      FIELD_GET(HECAP_PHY_SU_BFER, hecap_phy[HECAP_PHYDWORD_0])
++      FIELD_GET(HECAP_PHY_SU_BFER, hecap_phy[HE_PHYCAP_BYTE_3])
+ #define HECAP_PHY_SUBFME_GET(hecap_phy) \
+-      FIELD_GET(HECAP_PHY_SU_BFEE, hecap_phy[HECAP_PHYDWORD_1])
++      FIELD_GET(HECAP_PHY_SU_BFEE, hecap_phy[HE_PHYCAP_BYTE_4])
+ #define HECAP_PHY_MUBFMR_GET(hecap_phy) \
+-      FIELD_GET(HECAP_PHY_MU_BFER, hecap_phy[HECAP_PHYDWORD_1])
++      FIELD_GET(HECAP_PHY_MU_BFER, hecap_phy[HE_PHYCAP_BYTE_4])
+ #define HECAP_PHY_ULMUMIMO_GET(hecap_phy) \
+-      FIELD_GET(HECAP_PHY_UL_MUMIMO, hecap_phy[HECAP_PHYDWORD_0])
++      FIELD_GET(HECAP_PHY_UL_MUMIMO, hecap_phy[HE_PHYCAP_BYTE_2])
+ #define HECAP_PHY_ULOFDMA_GET(hecap_phy) \
+-      FIELD_GET(HECAP_PHY_UL_MUOFDMA, hecap_phy[HECAP_PHYDWORD_0])
++      FIELD_GET(HECAP_PHY_UL_MUOFDMA, hecap_phy[HE_PHYCAP_BYTE_2])
+ #define HE_MODE_SU_TX_BFEE    BIT(0)
+ #define HE_MODE_SU_TX_BFER    BIT(1)