Blame SOURCES/0050-Revert-iwlwifi-mvm-move-HE-MU-LTF_NUM-parsing-to-he_.patch

deb259
From f29430ff87e1ed63de31f76d4d6e5e07567649f3 Mon Sep 17 00:00:00 2001
deb259
From: Eugene Syromiatnikov <esyr@redhat.com>
deb259
Date: Thu, 5 Sep 2019 18:46:30 +0200
deb259
Subject: [PATCH 21/43] Revert "iwlwifi: mvm: move HE-MU LTF_NUM parsing to
deb259
 he_phy_data parsing"
deb259
deb259
This reverts commit 42d8a9d5783e4efdbdf746b139dc98e2b64f3ce3.
deb259
---
deb259
 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 35 +++++++++++++++++++--------
deb259
 1 file changed, 25 insertions(+), 10 deletions(-)
deb259
deb259
Index: src/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
deb259
===================================================================
deb259
--- src.orig/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c	2019-09-06 01:25:43.872312776 +0200
deb259
+++ src/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c	2019-09-06 01:25:44.039310646 +0200
deb259
@@ -1079,13 +1079,6 @@
deb259
 				IWL_RX_HE_PHY_INFO_TYPE_MU_EXT_INFO;
deb259
 		if (sigb_data)
deb259
 			iwl_mvm_decode_he_sigb(mvm, desc, rate_n_flags, he_mu);
deb259
-
deb259
-		he->data2 |=
deb259
-			cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN);
deb259
-		he->data5 |=
deb259
-			le16_encode_bits(FIELD_GET(IWL_RX_HE_PHY_HE_LTF_NUM_MASK,
deb259
-						   he_phy_data),
deb259
-					 IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS);
deb259
 	}
deb259
 
deb259
 	if (he_type != RATE_MCS_HE_TYPE_TRIG) {
deb259
@@ -1269,8 +1262,9 @@
deb259
 
deb259
 	he->data5 |= le16_encode_bits(ltf, IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE);
deb259
 
deb259
-	if (he_type == RATE_MCS_HE_TYPE_SU ||
deb259
-	    he_type == RATE_MCS_HE_TYPE_EXT_SU) {
deb259
+	switch (he_type) {
deb259
+	case RATE_MCS_HE_TYPE_SU:
deb259
+	case RATE_MCS_HE_TYPE_EXT_SU: {
deb259
 		u16 val;
deb259
 
deb259
 		/* LTF syms correspond to streams */
deb259
@@ -1300,10 +1294,31 @@
deb259
 				  rx_status->nss);
deb259
 			val = 0;
deb259
 		}
deb259
-
deb259
 		he->data5 |=
deb259
 			le16_encode_bits(val,
deb259
 					 IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS);
deb259
+		}
deb259
+		break;
deb259
+	case RATE_MCS_HE_TYPE_MU: {
deb259
+		u16 val;
deb259
+
deb259
+		if (he_phy_data == HE_PHY_DATA_INVAL)
deb259
+			break;
deb259
+
deb259
+		val = FIELD_GET(IWL_RX_HE_PHY_HE_LTF_NUM_MASK,
deb259
+				he_phy_data);
deb259
+
deb259
+		he->data2 |=
deb259
+			cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN);
deb259
+		he->data5 |=
deb259
+			cpu_to_le16(FIELD_PREP(
deb259
+				IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS,
deb259
+				val));
deb259
+		}
deb259
+		break;
deb259
+	case RATE_MCS_HE_TYPE_TRIG:
deb259
+		/* not supported */
deb259
+		break;
deb259
 	}
deb259
 }
deb259