aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2019-01-16 22:49:24 -0500
committerLuca Coelho <luciano.coelho@intel.com>2019-02-14 04:29:51 -0500
commita197e6d10ce26bdf4e7b8941321fb924b38ece02 (patch)
tree31ffa61dc04a116813fc8cba5a4e585d3d2889d3 /drivers/net/wireless/intel
parent46c7c9828dd7105ecfb608fd2b8715f5fcba098d (diff)
iwlwifi: mvm: fix the spatial reuse parsing for HE_TRIG PPDUs
The spatial reuse 4 words fields are fetched from the HE-SIGA by the firmware and propagated to the driver through the Rx info. This is useful to populate the radiotap header. We were looking at the wrong place in the firmware data and got bogus values. Fix that. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Fixes: bdf180c8d375 ("iwlwifi: mvm: change PHY data RX for HE radiotap") Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
index b0a8d910c5c4..1e03acf30762 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
@@ -1074,16 +1074,16 @@ static void iwl_mvm_decode_he_phy_data(struct iwl_mvm *mvm,
1074 IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE2_KNOWN | 1074 IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE2_KNOWN |
1075 IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE3_KNOWN | 1075 IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE3_KNOWN |
1076 IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE4_KNOWN); 1076 IEEE80211_RADIOTAP_HE_DATA1_SPTL_REUSE4_KNOWN);
1077 he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d0, 1077 he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d2,
1078 IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE1), 1078 IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE1),
1079 IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1); 1079 IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE1);
1080 he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d0, 1080 he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d2,
1081 IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE2), 1081 IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE2),
1082 IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2); 1082 IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE2);
1083 he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d0, 1083 he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d2,
1084 IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE3), 1084 IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE3),
1085 IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3); 1085 IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE3);
1086 he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d0, 1086 he->data4 |= le16_encode_bits(le32_get_bits(phy_data->d2,
1087 IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE4), 1087 IWL_RX_PHY_DATA2_HE_TB_EXT_SPTL_REUSE4),
1088 IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE4); 1088 IEEE80211_RADIOTAP_HE_DATA4_TB_SPTL_REUSE4);
1089 /* fall through */ 1089 /* fall through */