Commit a0c8ab93 authored by Johannes Berg's avatar Johannes Berg
Browse files

wifi: iwlwifi: mvm: refactor TX csum mode check



There are two modes now, and we have two places checking
that must be in sync. Refactor the logic into a new small
helper function.

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarGregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230413102635.ef6246f4b73b.I44820ec095634dd0bba3007465cf25e4ce1c77c6@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent d34d11ae
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -6129,10 +6129,7 @@ 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 ||
	    (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)))
	if (iwl_mvm_has_new_tx_csum(mvm))
		return iwl_mvm_tx_csum_bz(mvm, head, true) ==
		       iwl_mvm_tx_csum_bz(mvm, skb, true);

+13 −0
Original line number Diff line number Diff line
@@ -1522,6 +1522,19 @@ static inline bool iwl_mvm_is_ctdp_supported(struct iwl_mvm *mvm)
			   IWL_UCODE_TLV_CAPA_CTDP_SUPPORT);
}

static inline bool iwl_mvm_has_new_tx_csum(struct iwl_mvm *mvm)
{
	if (mvm->trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_BZ)
		return false;

	if (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_B_STEP)
		return false;

	return true;
}

extern const u8 iwl_mvm_ac_to_tx_fifo[];
extern const u8 iwl_mvm_ac_to_gen2_tx_fifo[];

+1 −4
Original line number Diff line number Diff line
@@ -184,10 +184,7 @@ static u32 iwl_mvm_tx_csum(struct iwl_mvm *mvm, struct sk_buff *skb,
			   struct ieee80211_tx_info *info,
			   bool amsdu)
{
	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_B_STEP))
	if (!iwl_mvm_has_new_tx_csum(mvm))
		return iwl_mvm_tx_csum_pre_bz(mvm, skb, info, amsdu);
	return iwl_mvm_tx_csum_bz(mvm, skb, amsdu);
}