Commit 42d8a9d5 authored by Johannes Berg's avatar Johannes Berg Committed by Luca Coelho
Browse files

iwlwifi: mvm: move HE-MU LTF_NUM parsing to he_phy_data parsing



This code gets shorter if it doesn't have to check all the
conditions, so move it to an appropriate place that has all
of them validated already.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent ffe9d734
Loading
Loading
Loading
Loading
+10 −25
Original line number Diff line number Diff line
@@ -1039,6 +1039,13 @@ static void iwl_mvm_decode_he_phy_data(struct iwl_mvm *mvm,
				IWL_RX_HE_PHY_INFO_TYPE_MU_EXT_INFO;
		if (sigb_data)
			iwl_mvm_decode_he_sigb(mvm, desc, rate_n_flags, he_mu);

		he->data2 |=
			cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN);
		he->data5 |=
			le16_encode_bits(FIELD_GET(IWL_RX_HE_PHY_HE_LTF_NUM_MASK,
						   he_phy_data),
					 IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS);
	}

	if (he_type != RATE_MCS_HE_TYPE_TRIG) {
@@ -1222,9 +1229,8 @@ static void iwl_mvm_rx_he(struct iwl_mvm *mvm, struct sk_buff *skb,

	he->data5 |= le16_encode_bits(ltf, IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE);

	switch (he_type) {
	case RATE_MCS_HE_TYPE_SU:
	case RATE_MCS_HE_TYPE_EXT_SU: {
	if (he_type == RATE_MCS_HE_TYPE_SU ||
	    he_type == RATE_MCS_HE_TYPE_EXT_SU) {
		u16 val;

		/* LTF syms correspond to streams */
@@ -1254,32 +1260,11 @@ static void iwl_mvm_rx_he(struct iwl_mvm *mvm, struct sk_buff *skb,
				  rx_status->nss);
			val = 0;
		}

		he->data5 |=
			le16_encode_bits(val,
					 IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS);
	}
		break;
	case RATE_MCS_HE_TYPE_MU: {
		u16 val;

		if (he_phy_data == HE_PHY_DATA_INVAL)
			break;

		val = FIELD_GET(IWL_RX_HE_PHY_HE_LTF_NUM_MASK,
				he_phy_data);

		he->data2 |=
			cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN);
		he->data5 |=
			cpu_to_le16(FIELD_PREP(
				IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS,
				val));
		}
		break;
	case RATE_MCS_HE_TYPE_TRIG:
		/* not supported */
		break;
	}
}

void iwl_mvm_rx_mpdu_mq(struct iwl_mvm *mvm, struct napi_struct *napi,