wifi: iwlwifi: mvm: fix A-MSDU checks
authorJohannes Berg <johannes.berg@intel.com>
Thu, 13 Apr 2023 07:44:08 +0000 (10:44 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 13 Apr 2023 14:29:59 +0000 (16:29 +0200)
Since Gl A-step devices use the old checksum hardware,
we shouldn't use the Bz code to check for A-MSDU
combining ability; fix that.

Fixes: ec18e7d4d20d ("wifi: iwlwifi: mvm: use old checksum for Bz A-step")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230413102635.8c445b943fee.Ibf772102ca712f59e2ee0cdd4c344011fcf445aa@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c

index aaa7e3c..0ee5169 100644 (file)
@@ -6129,7 +6129,10 @@ static bool iwl_mvm_mac_can_aggregate(struct ieee80211_hw *hw,
 {
        struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
 
-       if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_BZ)
+       if (mvm->trans->trans_cfg->device_family > IWL_DEVICE_FAMILY_BZ ||
+           (mvm->trans->trans_cfg->device_family == IWL_DEVICE_FAMILY_BZ &&
+            !(CSR_HW_REV_TYPE(mvm->trans->hw_rev) == IWL_CFG_MAC_TYPE_GL &&
+              mvm->trans->hw_rev_step == SILICON_A_STEP)))
                return iwl_mvm_tx_csum_bz(mvm, head, true) ==
                       iwl_mvm_tx_csum_bz(mvm, skb, true);