From 732eee694af50c9854755e4bcecf3a37f762a932 Mon Sep 17 00:00:00 2001
From: Bo Jiao <Bo.Jiao@mediatek.com>
Date: Sun, 25 Dec 2022 22:43:46 +0800
Subject: [PATCH 1001/1006] mac80211: mtk: add rate duration for EHT rate.

---
 net/mac80211/airtime.c | 349 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 346 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/airtime.c b/net/mac80211/airtime.c
index e8ebd34..b1de6d0 100644
--- a/net/mac80211/airtime.c
+++ b/net/mac80211/airtime.c
@@ -55,10 +55,21 @@
 #define HE_DURATION_S(shift, streams, gi, bps)		\
 	(HE_DURATION(streams, gi, bps) >> shift)
 
+/* Transmit duration for the raw data part of an average sized packet */
+#define EHT_GI_08 HE_GI_08
+#define EHT_GI_16 HE_GI_16
+#define EHT_GI_32 HE_GI_32
+
+#define EHT_DURATION(streams, gi, bps)			\
+	HE_DURATION(streams, gi, bps)
+#define EHT_DURATION_S(shift, streams, gi, bps)		\
+	HE_DURATION_S(shift, streams, gi, bps)
+
 #define BW_20			0
 #define BW_40			1
 #define BW_80			2
 #define BW_160			3
+#define BW_320			4
 
 /*
  * Define group sort order: HT40 -> SGI -> #streams
@@ -68,17 +79,26 @@
 #define IEEE80211_VHT_STREAM_GROUPS	8 /* BW(=4) * SGI(=2) */
 
 #define IEEE80211_HE_MAX_STREAMS	8
+#define IEEE80211_HE_STREAM_GROUPS	12 /* BW(=4) * GI(=3) */
+
+#define IEEE80211_EHT_MAX_STREAMS	16
+#define IEEE80211_EHT_STREAM_GROUPS	15 /* BW(=5) * GI(=3) */
 
 #define IEEE80211_HT_GROUPS_NB	(IEEE80211_MAX_STREAMS *	\
 				 IEEE80211_HT_STREAM_GROUPS)
 #define IEEE80211_VHT_GROUPS_NB	(IEEE80211_MAX_STREAMS *	\
 					 IEEE80211_VHT_STREAM_GROUPS)
+#define IEEE80211_HE_GROUPS_NB	(IEEE80211_HE_MAX_STREAMS *	\
+				 IEEE80211_HE_STREAM_GROUPS)
+#define IEEE80211_EHT_GROUPS_NB	(IEEE80211_EHT_MAX_STREAMS *	\
+				 IEEE80211_EHT_STREAM_GROUPS)
 
 #define IEEE80211_HT_GROUP_0	0
 #define IEEE80211_VHT_GROUP_0	(IEEE80211_HT_GROUP_0 + IEEE80211_HT_GROUPS_NB)
 #define IEEE80211_HE_GROUP_0	(IEEE80211_VHT_GROUP_0 + IEEE80211_VHT_GROUPS_NB)
+#define IEEE80211_EHT_GROUP_0	(IEEE80211_HE_GROUP_0 + IEEE80211_HE_GROUPS_NB)
 
-#define MCS_GROUP_RATES		12
+#define MCS_GROUP_RATES		14
 
 #define HT_GROUP_IDX(_streams, _sgi, _ht40)	\
 	IEEE80211_HT_GROUP_0 +			\
@@ -203,6 +223,59 @@
 #define HE_GROUP(_streams, _gi, _bw)					\
 	__HE_GROUP(_streams, _gi, _bw,				\
 		   HE_GROUP_SHIFT(_streams, _gi, _bw))
+
+#define EHT_BW2VBPS(_bw, r5, r4, r3, r2, r1)					\
+	(_bw == BW_320 ? r5 : _bw == BW_160 ? r4 : _bw == BW_80 ? r3 : _bw == BW_40 ? r2 : r1)
+
+#define EHT_GROUP_IDX(_streams, _gi, _bw)				\
+	(IEEE80211_EHT_GROUP_0 +					\
+	 IEEE80211_EHT_MAX_STREAMS * 3 * (_bw) +			\
+	 IEEE80211_EHT_MAX_STREAMS * (_gi) +				\
+	 (_streams) - 1)
+
+#define __EHT_GROUP(_streams, _gi, _bw, _s)				\
+	[EHT_GROUP_IDX(_streams, _gi, _bw)] = {			\
+	.shift = _s,							\
+	.duration = {							\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,   1960,   979,  489,  230,  115)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,   3920,  1958,  979,  475,  230)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,   5880,  2937, 1468,  705,  345)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,   7840,  3916, 1958,  936,  475)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  11760,  5875, 2937, 1411,  705)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  15680,  7833, 3916, 1872,  936)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  17640,  8827, 4406, 2102, 1051)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  19600,  9806, 4896, 2347, 1166)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  23520, 11764, 5875, 2808, 1411)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  26133, 13060, 6523, 3124, 1555)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  29400, 14702, 7344, 3513, 1756)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  32666, 16329, 8164, 3902, 1944)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  35280, 17640, 8820, 4212, 2106)),	\
+		EHT_DURATION_S(_s, _streams, _gi,			\
+			      EHT_BW2VBPS(_bw,  39200, 19600, 9800, 4680, 2340))	\
+        }								\
+}
+
+#define EHT_GROUP_SHIFT(_streams, _gi, _bw)				\
+	GROUP_SHIFT(EHT_DURATION(_streams, _gi,			\
+				EHT_BW2VBPS(_bw,   1960,   979,  489,  230,  115)))
+
+#define EHT_GROUP(_streams, _gi, _bw)					\
+	__EHT_GROUP(_streams, _gi, _bw,				\
+		   EHT_GROUP_SHIFT(_streams, _gi, _bw))
+
 struct mcs_group {
 	u8 shift;
 	u16 duration[MCS_GROUP_RATES];
@@ -376,6 +449,262 @@ static const struct mcs_group airtime_mcs_groups[] = {
 	HE_GROUP(6, HE_GI_32, BW_160),
 	HE_GROUP(7, HE_GI_32, BW_160),
 	HE_GROUP(8, HE_GI_32, BW_160),
+
+	/* EHT */
+	EHT_GROUP( 1, EHT_GI_08, BW_20),
+	EHT_GROUP( 2, EHT_GI_08, BW_20),
+	EHT_GROUP( 3, EHT_GI_08, BW_20),
+	EHT_GROUP( 4, EHT_GI_08, BW_20),
+	EHT_GROUP( 5, EHT_GI_08, BW_20),
+	EHT_GROUP( 6, EHT_GI_08, BW_20),
+	EHT_GROUP( 7, EHT_GI_08, BW_20),
+	EHT_GROUP( 8, EHT_GI_08, BW_20),
+	EHT_GROUP( 9, EHT_GI_08, BW_20),
+	EHT_GROUP(10, EHT_GI_08, BW_20),
+	EHT_GROUP(11, EHT_GI_08, BW_20),
+	EHT_GROUP(12, EHT_GI_08, BW_20),
+	EHT_GROUP(13, EHT_GI_08, BW_20),
+	EHT_GROUP(14, EHT_GI_08, BW_20),
+	EHT_GROUP(15, EHT_GI_08, BW_20),
+	EHT_GROUP(16, EHT_GI_08, BW_20),
+
+	EHT_GROUP( 1, EHT_GI_16, BW_20),
+	EHT_GROUP( 2, EHT_GI_16, BW_20),
+	EHT_GROUP( 3, EHT_GI_16, BW_20),
+	EHT_GROUP( 4, EHT_GI_16, BW_20),
+	EHT_GROUP( 5, EHT_GI_16, BW_20),
+	EHT_GROUP( 6, EHT_GI_16, BW_20),
+	EHT_GROUP( 7, EHT_GI_16, BW_20),
+	EHT_GROUP( 8, EHT_GI_16, BW_20),
+	EHT_GROUP( 9, EHT_GI_16, BW_20),
+	EHT_GROUP(10, EHT_GI_16, BW_20),
+	EHT_GROUP(11, EHT_GI_16, BW_20),
+	EHT_GROUP(12, EHT_GI_16, BW_20),
+	EHT_GROUP(13, EHT_GI_16, BW_20),
+	EHT_GROUP(14, EHT_GI_16, BW_20),
+	EHT_GROUP(15, EHT_GI_16, BW_20),
+	EHT_GROUP(16, EHT_GI_16, BW_20),
+
+	EHT_GROUP( 1, EHT_GI_32, BW_20),
+	EHT_GROUP( 2, EHT_GI_32, BW_20),
+	EHT_GROUP( 3, EHT_GI_32, BW_20),
+	EHT_GROUP( 4, EHT_GI_32, BW_20),
+	EHT_GROUP( 5, EHT_GI_32, BW_20),
+	EHT_GROUP( 6, EHT_GI_32, BW_20),
+	EHT_GROUP( 7, EHT_GI_32, BW_20),
+	EHT_GROUP( 8, EHT_GI_32, BW_20),
+	EHT_GROUP( 9, EHT_GI_32, BW_20),
+	EHT_GROUP(10, EHT_GI_32, BW_20),
+	EHT_GROUP(11, EHT_GI_32, BW_20),
+	EHT_GROUP(12, EHT_GI_32, BW_20),
+	EHT_GROUP(13, EHT_GI_32, BW_20),
+	EHT_GROUP(14, EHT_GI_32, BW_20),
+	EHT_GROUP(15, EHT_GI_32, BW_20),
+	EHT_GROUP(16, EHT_GI_32, BW_20),
+
+	EHT_GROUP( 1, EHT_GI_08, BW_40),
+	EHT_GROUP( 2, EHT_GI_08, BW_40),
+	EHT_GROUP( 3, EHT_GI_08, BW_40),
+	EHT_GROUP( 4, EHT_GI_08, BW_40),
+	EHT_GROUP( 5, EHT_GI_08, BW_40),
+	EHT_GROUP( 6, EHT_GI_08, BW_40),
+	EHT_GROUP( 7, EHT_GI_08, BW_40),
+	EHT_GROUP( 8, EHT_GI_08, BW_40),
+	EHT_GROUP( 9, EHT_GI_08, BW_40),
+	EHT_GROUP(10, EHT_GI_08, BW_40),
+	EHT_GROUP(11, EHT_GI_08, BW_40),
+	EHT_GROUP(12, EHT_GI_08, BW_40),
+	EHT_GROUP(13, EHT_GI_08, BW_40),
+	EHT_GROUP(14, EHT_GI_08, BW_40),
+	EHT_GROUP(15, EHT_GI_08, BW_40),
+	EHT_GROUP(16, EHT_GI_08, BW_40),
+
+	EHT_GROUP( 1, EHT_GI_16, BW_40),
+	EHT_GROUP( 2, EHT_GI_16, BW_40),
+	EHT_GROUP( 3, EHT_GI_16, BW_40),
+	EHT_GROUP( 4, EHT_GI_16, BW_40),
+	EHT_GROUP( 5, EHT_GI_16, BW_40),
+	EHT_GROUP( 6, EHT_GI_16, BW_40),
+	EHT_GROUP( 7, EHT_GI_16, BW_40),
+	EHT_GROUP( 8, EHT_GI_16, BW_40),
+	EHT_GROUP( 9, EHT_GI_16, BW_40),
+	EHT_GROUP(10, EHT_GI_16, BW_40),
+	EHT_GROUP(11, EHT_GI_16, BW_40),
+	EHT_GROUP(12, EHT_GI_16, BW_40),
+	EHT_GROUP(13, EHT_GI_16, BW_40),
+	EHT_GROUP(14, EHT_GI_16, BW_40),
+	EHT_GROUP(15, EHT_GI_16, BW_40),
+	EHT_GROUP(16, EHT_GI_16, BW_40),
+
+	EHT_GROUP( 1, EHT_GI_32, BW_40),
+	EHT_GROUP( 2, EHT_GI_32, BW_40),
+	EHT_GROUP( 3, EHT_GI_32, BW_40),
+	EHT_GROUP( 4, EHT_GI_32, BW_40),
+	EHT_GROUP( 5, EHT_GI_32, BW_40),
+	EHT_GROUP( 6, EHT_GI_32, BW_40),
+	EHT_GROUP( 7, EHT_GI_32, BW_40),
+	EHT_GROUP( 8, EHT_GI_32, BW_40),
+	EHT_GROUP( 9, EHT_GI_32, BW_40),
+	EHT_GROUP(10, EHT_GI_32, BW_40),
+	EHT_GROUP(11, EHT_GI_32, BW_40),
+	EHT_GROUP(12, EHT_GI_32, BW_40),
+	EHT_GROUP(13, EHT_GI_32, BW_40),
+	EHT_GROUP(14, EHT_GI_32, BW_40),
+	EHT_GROUP(15, EHT_GI_32, BW_40),
+	EHT_GROUP(16, EHT_GI_32, BW_40),
+
+	EHT_GROUP( 1, EHT_GI_08, BW_80),
+	EHT_GROUP( 2, EHT_GI_08, BW_80),
+	EHT_GROUP( 3, EHT_GI_08, BW_80),
+	EHT_GROUP( 4, EHT_GI_08, BW_80),
+	EHT_GROUP( 5, EHT_GI_08, BW_80),
+	EHT_GROUP( 6, EHT_GI_08, BW_80),
+	EHT_GROUP( 7, EHT_GI_08, BW_80),
+	EHT_GROUP( 8, EHT_GI_08, BW_80),
+	EHT_GROUP( 9, EHT_GI_08, BW_80),
+	EHT_GROUP(10, EHT_GI_08, BW_80),
+	EHT_GROUP(11, EHT_GI_08, BW_80),
+	EHT_GROUP(12, EHT_GI_08, BW_80),
+	EHT_GROUP(13, EHT_GI_08, BW_80),
+	EHT_GROUP(14, EHT_GI_08, BW_80),
+	EHT_GROUP(15, EHT_GI_08, BW_80),
+	EHT_GROUP(16, EHT_GI_08, BW_80),
+
+	EHT_GROUP( 1, EHT_GI_16, BW_80),
+	EHT_GROUP( 2, EHT_GI_16, BW_80),
+	EHT_GROUP( 3, EHT_GI_16, BW_80),
+	EHT_GROUP( 4, EHT_GI_16, BW_80),
+	EHT_GROUP( 5, EHT_GI_16, BW_80),
+	EHT_GROUP( 6, EHT_GI_16, BW_80),
+	EHT_GROUP( 7, EHT_GI_16, BW_80),
+	EHT_GROUP( 8, EHT_GI_16, BW_80),
+	EHT_GROUP( 9, EHT_GI_16, BW_80),
+	EHT_GROUP(10, EHT_GI_16, BW_80),
+	EHT_GROUP(11, EHT_GI_16, BW_80),
+	EHT_GROUP(12, EHT_GI_16, BW_80),
+	EHT_GROUP(13, EHT_GI_16, BW_80),
+	EHT_GROUP(14, EHT_GI_16, BW_80),
+	EHT_GROUP(15, EHT_GI_16, BW_80),
+	EHT_GROUP(16, EHT_GI_16, BW_80),
+
+	EHT_GROUP( 1, EHT_GI_32, BW_80),
+	EHT_GROUP( 2, EHT_GI_32, BW_80),
+	EHT_GROUP( 3, EHT_GI_32, BW_80),
+	EHT_GROUP( 4, EHT_GI_32, BW_80),
+	EHT_GROUP( 5, EHT_GI_32, BW_80),
+	EHT_GROUP( 6, EHT_GI_32, BW_80),
+	EHT_GROUP( 7, EHT_GI_32, BW_80),
+	EHT_GROUP( 8, EHT_GI_32, BW_80),
+	EHT_GROUP( 9, EHT_GI_32, BW_80),
+	EHT_GROUP(10, EHT_GI_32, BW_80),
+	EHT_GROUP(11, EHT_GI_32, BW_80),
+	EHT_GROUP(12, EHT_GI_32, BW_80),
+	EHT_GROUP(13, EHT_GI_32, BW_80),
+	EHT_GROUP(14, EHT_GI_32, BW_80),
+	EHT_GROUP(15, EHT_GI_32, BW_80),
+	EHT_GROUP(16, EHT_GI_32, BW_80),
+
+	EHT_GROUP( 1, EHT_GI_08, BW_160),
+	EHT_GROUP( 2, EHT_GI_08, BW_160),
+	EHT_GROUP( 3, EHT_GI_08, BW_160),
+	EHT_GROUP( 4, EHT_GI_08, BW_160),
+	EHT_GROUP( 5, EHT_GI_08, BW_160),
+	EHT_GROUP( 6, EHT_GI_08, BW_160),
+	EHT_GROUP( 7, EHT_GI_08, BW_160),
+	EHT_GROUP( 8, EHT_GI_08, BW_160),
+	EHT_GROUP( 9, EHT_GI_08, BW_160),
+	EHT_GROUP(10, EHT_GI_08, BW_160),
+	EHT_GROUP(11, EHT_GI_08, BW_160),
+	EHT_GROUP(12, EHT_GI_08, BW_160),
+	EHT_GROUP(13, EHT_GI_08, BW_160),
+	EHT_GROUP(14, EHT_GI_08, BW_160),
+	EHT_GROUP(15, EHT_GI_08, BW_160),
+	EHT_GROUP(16, EHT_GI_08, BW_160),
+
+	EHT_GROUP( 1, EHT_GI_16, BW_160),
+	EHT_GROUP( 2, EHT_GI_16, BW_160),
+	EHT_GROUP( 3, EHT_GI_16, BW_160),
+	EHT_GROUP( 4, EHT_GI_16, BW_160),
+	EHT_GROUP( 5, EHT_GI_16, BW_160),
+	EHT_GROUP( 6, EHT_GI_16, BW_160),
+	EHT_GROUP( 7, EHT_GI_16, BW_160),
+	EHT_GROUP( 8, EHT_GI_16, BW_160),
+	EHT_GROUP( 9, EHT_GI_16, BW_160),
+	EHT_GROUP(10, EHT_GI_16, BW_160),
+	EHT_GROUP(11, EHT_GI_16, BW_160),
+	EHT_GROUP(12, EHT_GI_16, BW_160),
+	EHT_GROUP(13, EHT_GI_16, BW_160),
+	EHT_GROUP(14, EHT_GI_16, BW_160),
+	EHT_GROUP(15, EHT_GI_16, BW_160),
+	EHT_GROUP(16, EHT_GI_16, BW_160),
+
+	EHT_GROUP( 1, EHT_GI_32, BW_160),
+	EHT_GROUP( 2, EHT_GI_32, BW_160),
+	EHT_GROUP( 3, EHT_GI_32, BW_160),
+	EHT_GROUP( 4, EHT_GI_32, BW_160),
+	EHT_GROUP( 5, EHT_GI_32, BW_160),
+	EHT_GROUP( 6, EHT_GI_32, BW_160),
+	EHT_GROUP( 7, EHT_GI_32, BW_160),
+	EHT_GROUP( 8, EHT_GI_32, BW_160),
+	EHT_GROUP( 9, EHT_GI_32, BW_160),
+	EHT_GROUP(10, EHT_GI_32, BW_160),
+	EHT_GROUP(11, EHT_GI_32, BW_160),
+	EHT_GROUP(12, EHT_GI_32, BW_160),
+	EHT_GROUP(13, EHT_GI_32, BW_160),
+	EHT_GROUP(14, EHT_GI_32, BW_160),
+	EHT_GROUP(15, EHT_GI_32, BW_160),
+	EHT_GROUP(16, EHT_GI_32, BW_160),
+
+	EHT_GROUP( 1, EHT_GI_08, BW_320),
+	EHT_GROUP( 2, EHT_GI_08, BW_320),
+	EHT_GROUP( 3, EHT_GI_08, BW_320),
+	EHT_GROUP( 4, EHT_GI_08, BW_320),
+	EHT_GROUP( 5, EHT_GI_08, BW_320),
+	EHT_GROUP( 6, EHT_GI_08, BW_320),
+	EHT_GROUP( 7, EHT_GI_08, BW_320),
+	EHT_GROUP( 8, EHT_GI_08, BW_320),
+	EHT_GROUP( 9, EHT_GI_08, BW_320),
+	EHT_GROUP(10, EHT_GI_08, BW_320),
+	EHT_GROUP(11, EHT_GI_08, BW_320),
+	EHT_GROUP(12, EHT_GI_08, BW_320),
+	EHT_GROUP(13, EHT_GI_08, BW_320),
+	EHT_GROUP(14, EHT_GI_08, BW_320),
+	EHT_GROUP(15, EHT_GI_08, BW_320),
+	EHT_GROUP(16, EHT_GI_08, BW_320),
+
+	EHT_GROUP( 1, EHT_GI_16, BW_320),
+	EHT_GROUP( 2, EHT_GI_16, BW_320),
+	EHT_GROUP( 3, EHT_GI_16, BW_320),
+	EHT_GROUP( 4, EHT_GI_16, BW_320),
+	EHT_GROUP( 5, EHT_GI_16, BW_320),
+	EHT_GROUP( 6, EHT_GI_16, BW_320),
+	EHT_GROUP( 7, EHT_GI_16, BW_320),
+	EHT_GROUP( 8, EHT_GI_16, BW_320),
+	EHT_GROUP( 9, EHT_GI_16, BW_320),
+	EHT_GROUP(10, EHT_GI_16, BW_320),
+	EHT_GROUP(11, EHT_GI_16, BW_320),
+	EHT_GROUP(12, EHT_GI_16, BW_320),
+	EHT_GROUP(13, EHT_GI_16, BW_320),
+	EHT_GROUP(14, EHT_GI_16, BW_320),
+	EHT_GROUP(15, EHT_GI_16, BW_320),
+	EHT_GROUP(16, EHT_GI_16, BW_320),
+
+	EHT_GROUP( 1, EHT_GI_32, BW_320),
+	EHT_GROUP( 2, EHT_GI_32, BW_320),
+	EHT_GROUP( 3, EHT_GI_32, BW_320),
+	EHT_GROUP( 4, EHT_GI_32, BW_320),
+	EHT_GROUP( 5, EHT_GI_32, BW_320),
+	EHT_GROUP( 6, EHT_GI_32, BW_320),
+	EHT_GROUP( 7, EHT_GI_32, BW_320),
+	EHT_GROUP( 8, EHT_GI_32, BW_320),
+	EHT_GROUP( 9, EHT_GI_32, BW_320),
+	EHT_GROUP(10, EHT_GI_32, BW_320),
+	EHT_GROUP(11, EHT_GI_32, BW_320),
+	EHT_GROUP(12, EHT_GI_32, BW_320),
+	EHT_GROUP(13, EHT_GI_32, BW_320),
+	EHT_GROUP(14, EHT_GI_32, BW_320),
+	EHT_GROUP(15, EHT_GI_32, BW_320),
+	EHT_GROUP(16, EHT_GI_32, BW_320),
 };
 
 static u32
@@ -422,6 +751,9 @@ static u32 ieee80211_get_rate_duration(struct ieee80211_hw *hw,
 	case RATE_INFO_BW_160:
 		bw = BW_160;
 		break;
+	case RATE_INFO_BW_320:
+		bw = BW_320;
+		break;
 	default:
 		WARN_ON_ONCE(1);
 		return 0;
@@ -443,11 +775,20 @@ static u32 ieee80211_get_rate_duration(struct ieee80211_hw *hw,
 		idx = status->rate_idx;
 		group = HE_GROUP_IDX(streams, status->he_gi, bw);
 		break;
+	case RX_ENC_EHT:
+		streams = status->nss;
+		idx = status->rate_idx;
+		group = EHT_GROUP_IDX(streams, status->he_gi, bw);
+		break;
 	default:
 		WARN_ON_ONCE(1);
 		return 0;
 	}
 
+	if (WARN_ON_ONCE((status->encoding != RX_ENC_EHT && streams > 8) ||
+			 (status->encoding == RX_ENC_EHT && streams > 16)))
+		return 0;
+
 	if (WARN_ON_ONCE((status->encoding != RX_ENC_HE && streams > 4) ||
 			 (status->encoding == RX_ENC_HE && streams > 8)))
 		return 0;
@@ -517,7 +858,9 @@ static bool ieee80211_fill_rate_info(struct ieee80211_hw *hw,
 	stat->nss = ri->nss;
 	stat->rate_idx = ri->mcs;
 
-	if (ri->flags & RATE_INFO_FLAGS_HE_MCS)
+	if (ri->flags & RATE_INFO_FLAGS_EHT_MCS)
+		stat->encoding = RX_ENC_EHT;
+	else if (ri->flags & RATE_INFO_FLAGS_HE_MCS)
 		stat->encoding = RX_ENC_HE;
 	else if (ri->flags & RATE_INFO_FLAGS_VHT_MCS)
 		stat->encoding = RX_ENC_VHT;
@@ -529,7 +872,7 @@ static bool ieee80211_fill_rate_info(struct ieee80211_hw *hw,
 	if (ri->flags & RATE_INFO_FLAGS_SHORT_GI)
 		stat->enc_flags |= RX_ENC_FLAG_SHORT_GI;
 
-	stat->he_gi = ri->he_gi;
+	stat->he_gi = (ri->flags & RATE_INFO_FLAGS_EHT_MCS) ? ri->eht_gi : ri->he_gi;
 
 	if (stat->encoding != RX_ENC_LEGACY)
 		return true;
-- 
2.39.2

