diff options
author | Johannes Berg <johannes.berg@intel.com> | 2018-06-14 08:52:19 -0400 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2018-10-06 03:25:47 -0400 |
commit | 42d8a9d5783e4efdbdf746b139dc98e2b64f3ce3 (patch) | |
tree | 50cc0495e5fd64fd00942c9c5dc8cfc3984a80e1 /drivers/net/wireless | |
parent | ffe9d734b8b556737c87acaa08666d0a6c1686ab (diff) |
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: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c index 757ff6b9efe0..647fa905ebba 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | |||
@@ -1039,6 +1039,13 @@ static void iwl_mvm_decode_he_phy_data(struct iwl_mvm *mvm, | |||
1039 | IWL_RX_HE_PHY_INFO_TYPE_MU_EXT_INFO; | 1039 | IWL_RX_HE_PHY_INFO_TYPE_MU_EXT_INFO; |
1040 | if (sigb_data) | 1040 | if (sigb_data) |
1041 | iwl_mvm_decode_he_sigb(mvm, desc, rate_n_flags, he_mu); | 1041 | iwl_mvm_decode_he_sigb(mvm, desc, rate_n_flags, he_mu); |
1042 | |||
1043 | he->data2 |= | ||
1044 | cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN); | ||
1045 | he->data5 |= | ||
1046 | le16_encode_bits(FIELD_GET(IWL_RX_HE_PHY_HE_LTF_NUM_MASK, | ||
1047 | he_phy_data), | ||
1048 | IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS); | ||
1042 | } | 1049 | } |
1043 | 1050 | ||
1044 | if (he_type != RATE_MCS_HE_TYPE_TRIG) { | 1051 | 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, | |||
1222 | 1229 | ||
1223 | he->data5 |= le16_encode_bits(ltf, IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE); | 1230 | he->data5 |= le16_encode_bits(ltf, IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE); |
1224 | 1231 | ||
1225 | switch (he_type) { | 1232 | if (he_type == RATE_MCS_HE_TYPE_SU || |
1226 | case RATE_MCS_HE_TYPE_SU: | 1233 | he_type == RATE_MCS_HE_TYPE_EXT_SU) { |
1227 | case RATE_MCS_HE_TYPE_EXT_SU: { | ||
1228 | u16 val; | 1234 | u16 val; |
1229 | 1235 | ||
1230 | /* LTF syms correspond to streams */ | 1236 | /* LTF syms correspond to streams */ |
@@ -1254,31 +1260,10 @@ static void iwl_mvm_rx_he(struct iwl_mvm *mvm, struct sk_buff *skb, | |||
1254 | rx_status->nss); | 1260 | rx_status->nss); |
1255 | val = 0; | 1261 | val = 0; |
1256 | } | 1262 | } |
1263 | |||
1257 | he->data5 |= | 1264 | he->data5 |= |
1258 | le16_encode_bits(val, | 1265 | le16_encode_bits(val, |
1259 | IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS); | 1266 | IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS); |
1260 | } | ||
1261 | break; | ||
1262 | case RATE_MCS_HE_TYPE_MU: { | ||
1263 | u16 val; | ||
1264 | |||
1265 | if (he_phy_data == HE_PHY_DATA_INVAL) | ||
1266 | break; | ||
1267 | |||
1268 | val = FIELD_GET(IWL_RX_HE_PHY_HE_LTF_NUM_MASK, | ||
1269 | he_phy_data); | ||
1270 | |||
1271 | he->data2 |= | ||
1272 | cpu_to_le16(IEEE80211_RADIOTAP_HE_DATA2_NUM_LTF_SYMS_KNOWN); | ||
1273 | he->data5 |= | ||
1274 | cpu_to_le16(FIELD_PREP( | ||
1275 | IEEE80211_RADIOTAP_HE_DATA5_NUM_LTF_SYMS, | ||
1276 | val)); | ||
1277 | } | ||
1278 | break; | ||
1279 | case RATE_MCS_HE_TYPE_TRIG: | ||
1280 | /* not supported */ | ||
1281 | break; | ||
1282 | } | 1267 | } |
1283 | } | 1268 | } |
1284 | 1269 | ||