Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6ed0e08f authored by Heiner Kallweit's avatar Heiner Kallweit Committed by David S. Miller
Browse files

r8169: remove jumbo_tx_csum from chip config struct



According to the chip configuration entries only RTL8169 (ver <= 06)
supports tx checksumming for jumbo packets.
By the way: constant JUMBO_1K is a little misleading because it refers
to the standard packet size and not to a jumbo packet size.

By implementing this rule we can get rid of configuring tx checksumming
support per chip type.

Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c8d48d9c
Loading
Loading
Loading
Loading
+54 −79
Original line number Original line Diff line number Diff line
@@ -171,12 +171,11 @@ enum rtl_tx_desc_version {
#define JUMBO_7K	(7*1024 - ETH_HLEN - 2)
#define JUMBO_7K	(7*1024 - ETH_HLEN - 2)
#define JUMBO_9K	(9*1024 - ETH_HLEN - 2)
#define JUMBO_9K	(9*1024 - ETH_HLEN - 2)


#define _R(NAME,TD,FW,SZ,B) {	\
#define _R(NAME,TD,FW,SZ) {	\
	.name = NAME,		\
	.name = NAME,		\
	.txd_version = TD,	\
	.txd_version = TD,	\
	.fw_name = FW,		\
	.fw_name = FW,		\
	.jumbo_max = SZ,	\
	.jumbo_max = SZ,	\
	.jumbo_tx_csum = B	\
}
}


static const struct {
static const struct {
@@ -184,135 +183,111 @@ static const struct {
	enum rtl_tx_desc_version txd_version;
	enum rtl_tx_desc_version txd_version;
	const char *fw_name;
	const char *fw_name;
	u16 jumbo_max;
	u16 jumbo_max;
	bool jumbo_tx_csum;
} rtl_chip_infos[] = {
} rtl_chip_infos[] = {
	/* PCI devices. */
	/* PCI devices. */
	[RTL_GIGA_MAC_VER_01] =
	[RTL_GIGA_MAC_VER_01] =
		_R("RTL8169",		RTL_TD_0, NULL, JUMBO_7K, true),
		_R("RTL8169",		RTL_TD_0, NULL, JUMBO_7K),
	[RTL_GIGA_MAC_VER_02] =
	[RTL_GIGA_MAC_VER_02] =
		_R("RTL8169s",		RTL_TD_0, NULL, JUMBO_7K, true),
		_R("RTL8169s",		RTL_TD_0, NULL, JUMBO_7K),
	[RTL_GIGA_MAC_VER_03] =
	[RTL_GIGA_MAC_VER_03] =
		_R("RTL8110s",		RTL_TD_0, NULL, JUMBO_7K, true),
		_R("RTL8110s",		RTL_TD_0, NULL, JUMBO_7K),
	[RTL_GIGA_MAC_VER_04] =
	[RTL_GIGA_MAC_VER_04] =
		_R("RTL8169sb/8110sb",	RTL_TD_0, NULL, JUMBO_7K, true),
		_R("RTL8169sb/8110sb",	RTL_TD_0, NULL, JUMBO_7K),
	[RTL_GIGA_MAC_VER_05] =
	[RTL_GIGA_MAC_VER_05] =
		_R("RTL8169sc/8110sc",	RTL_TD_0, NULL, JUMBO_7K, true),
		_R("RTL8169sc/8110sc",	RTL_TD_0, NULL, JUMBO_7K),
	[RTL_GIGA_MAC_VER_06] =
	[RTL_GIGA_MAC_VER_06] =
		_R("RTL8169sc/8110sc",	RTL_TD_0, NULL, JUMBO_7K, true),
		_R("RTL8169sc/8110sc",	RTL_TD_0, NULL, JUMBO_7K),
	/* PCI-E devices. */
	/* PCI-E devices. */
	[RTL_GIGA_MAC_VER_07] =
	[RTL_GIGA_MAC_VER_07] =
		_R("RTL8102e",		RTL_TD_1, NULL, JUMBO_1K, true),
		_R("RTL8102e",		RTL_TD_1, NULL, JUMBO_1K),
	[RTL_GIGA_MAC_VER_08] =
	[RTL_GIGA_MAC_VER_08] =
		_R("RTL8102e",		RTL_TD_1, NULL, JUMBO_1K, true),
		_R("RTL8102e",		RTL_TD_1, NULL, JUMBO_1K),
	[RTL_GIGA_MAC_VER_09] =
	[RTL_GIGA_MAC_VER_09] =
		_R("RTL8102e",		RTL_TD_1, NULL, JUMBO_1K, true),
		_R("RTL8102e",		RTL_TD_1, NULL, JUMBO_1K),
	[RTL_GIGA_MAC_VER_10] =
	[RTL_GIGA_MAC_VER_10] =
		_R("RTL8101e",		RTL_TD_0, NULL, JUMBO_1K, true),
		_R("RTL8101e",		RTL_TD_0, NULL, JUMBO_1K),
	[RTL_GIGA_MAC_VER_11] =
	[RTL_GIGA_MAC_VER_11] =
		_R("RTL8168b/8111b",	RTL_TD_0, NULL, JUMBO_4K, false),
		_R("RTL8168b/8111b",	RTL_TD_0, NULL, JUMBO_4K),
	[RTL_GIGA_MAC_VER_12] =
	[RTL_GIGA_MAC_VER_12] =
		_R("RTL8168b/8111b",	RTL_TD_0, NULL, JUMBO_4K, false),
		_R("RTL8168b/8111b",	RTL_TD_0, NULL, JUMBO_4K),
	[RTL_GIGA_MAC_VER_13] =
	[RTL_GIGA_MAC_VER_13] =
		_R("RTL8101e",		RTL_TD_0, NULL, JUMBO_1K, true),
		_R("RTL8101e",		RTL_TD_0, NULL, JUMBO_1K),
	[RTL_GIGA_MAC_VER_14] =
	[RTL_GIGA_MAC_VER_14] =
		_R("RTL8100e",		RTL_TD_0, NULL, JUMBO_1K, true),
		_R("RTL8100e",		RTL_TD_0, NULL, JUMBO_1K),
	[RTL_GIGA_MAC_VER_15] =
	[RTL_GIGA_MAC_VER_15] =
		_R("RTL8100e",		RTL_TD_0, NULL, JUMBO_1K, true),
		_R("RTL8100e",		RTL_TD_0, NULL, JUMBO_1K),
	[RTL_GIGA_MAC_VER_16] =
	[RTL_GIGA_MAC_VER_16] =
		_R("RTL8101e",		RTL_TD_0, NULL, JUMBO_1K, true),
		_R("RTL8101e",		RTL_TD_0, NULL, JUMBO_1K),
	[RTL_GIGA_MAC_VER_17] =
	[RTL_GIGA_MAC_VER_17] =
		_R("RTL8168b/8111b",	RTL_TD_0, NULL, JUMBO_4K, false),
		_R("RTL8168b/8111b",	RTL_TD_0, NULL, JUMBO_4K),
	[RTL_GIGA_MAC_VER_18] =
	[RTL_GIGA_MAC_VER_18] =
		_R("RTL8168cp/8111cp",	RTL_TD_1, NULL, JUMBO_6K, false),
		_R("RTL8168cp/8111cp",	RTL_TD_1, NULL, JUMBO_6K),
	[RTL_GIGA_MAC_VER_19] =
	[RTL_GIGA_MAC_VER_19] =
		_R("RTL8168c/8111c",	RTL_TD_1, NULL, JUMBO_6K, false),
		_R("RTL8168c/8111c",	RTL_TD_1, NULL, JUMBO_6K),
	[RTL_GIGA_MAC_VER_20] =
	[RTL_GIGA_MAC_VER_20] =
		_R("RTL8168c/8111c",	RTL_TD_1, NULL, JUMBO_6K, false),
		_R("RTL8168c/8111c",	RTL_TD_1, NULL, JUMBO_6K),
	[RTL_GIGA_MAC_VER_21] =
	[RTL_GIGA_MAC_VER_21] =
		_R("RTL8168c/8111c",	RTL_TD_1, NULL, JUMBO_6K, false),
		_R("RTL8168c/8111c",	RTL_TD_1, NULL, JUMBO_6K),
	[RTL_GIGA_MAC_VER_22] =
	[RTL_GIGA_MAC_VER_22] =
		_R("RTL8168c/8111c",	RTL_TD_1, NULL, JUMBO_6K, false),
		_R("RTL8168c/8111c",	RTL_TD_1, NULL, JUMBO_6K),
	[RTL_GIGA_MAC_VER_23] =
	[RTL_GIGA_MAC_VER_23] =
		_R("RTL8168cp/8111cp",	RTL_TD_1, NULL, JUMBO_6K, false),
		_R("RTL8168cp/8111cp",	RTL_TD_1, NULL, JUMBO_6K),
	[RTL_GIGA_MAC_VER_24] =
	[RTL_GIGA_MAC_VER_24] =
		_R("RTL8168cp/8111cp",	RTL_TD_1, NULL, JUMBO_6K, false),
		_R("RTL8168cp/8111cp",	RTL_TD_1, NULL, JUMBO_6K),
	[RTL_GIGA_MAC_VER_25] =
	[RTL_GIGA_MAC_VER_25] =
		_R("RTL8168d/8111d",	RTL_TD_1, FIRMWARE_8168D_1,
		_R("RTL8168d/8111d",	RTL_TD_1, FIRMWARE_8168D_1, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_26] =
	[RTL_GIGA_MAC_VER_26] =
		_R("RTL8168d/8111d",	RTL_TD_1, FIRMWARE_8168D_2,
		_R("RTL8168d/8111d",	RTL_TD_1, FIRMWARE_8168D_2, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_27] =
	[RTL_GIGA_MAC_VER_27] =
		_R("RTL8168dp/8111dp",	RTL_TD_1, NULL, JUMBO_9K, false),
		_R("RTL8168dp/8111dp",	RTL_TD_1, NULL, JUMBO_9K),
	[RTL_GIGA_MAC_VER_28] =
	[RTL_GIGA_MAC_VER_28] =
		_R("RTL8168dp/8111dp",	RTL_TD_1, NULL, JUMBO_9K, false),
		_R("RTL8168dp/8111dp",	RTL_TD_1, NULL, JUMBO_9K),
	[RTL_GIGA_MAC_VER_29] =
	[RTL_GIGA_MAC_VER_29] =
		_R("RTL8105e",		RTL_TD_1, FIRMWARE_8105E_1,
		_R("RTL8105e",		RTL_TD_1, FIRMWARE_8105E_1, JUMBO_1K),
							JUMBO_1K, true),
	[RTL_GIGA_MAC_VER_30] =
	[RTL_GIGA_MAC_VER_30] =
		_R("RTL8105e",		RTL_TD_1, FIRMWARE_8105E_1,
		_R("RTL8105e",		RTL_TD_1, FIRMWARE_8105E_1, JUMBO_1K),
							JUMBO_1K, true),
	[RTL_GIGA_MAC_VER_31] =
	[RTL_GIGA_MAC_VER_31] =
		_R("RTL8168dp/8111dp",	RTL_TD_1, NULL, JUMBO_9K, false),
		_R("RTL8168dp/8111dp",	RTL_TD_1, NULL, JUMBO_9K),
	[RTL_GIGA_MAC_VER_32] =
	[RTL_GIGA_MAC_VER_32] =
		_R("RTL8168e/8111e",	RTL_TD_1, FIRMWARE_8168E_1,
		_R("RTL8168e/8111e",	RTL_TD_1, FIRMWARE_8168E_1, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_33] =
	[RTL_GIGA_MAC_VER_33] =
		_R("RTL8168e/8111e",	RTL_TD_1, FIRMWARE_8168E_2,
		_R("RTL8168e/8111e",	RTL_TD_1, FIRMWARE_8168E_2, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_34] =
	[RTL_GIGA_MAC_VER_34] =
		_R("RTL8168evl/8111evl",RTL_TD_1, FIRMWARE_8168E_3,
		_R("RTL8168evl/8111evl",RTL_TD_1, FIRMWARE_8168E_3, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_35] =
	[RTL_GIGA_MAC_VER_35] =
		_R("RTL8168f/8111f",	RTL_TD_1, FIRMWARE_8168F_1,
		_R("RTL8168f/8111f",	RTL_TD_1, FIRMWARE_8168F_1, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_36] =
	[RTL_GIGA_MAC_VER_36] =
		_R("RTL8168f/8111f",	RTL_TD_1, FIRMWARE_8168F_2,
		_R("RTL8168f/8111f",	RTL_TD_1, FIRMWARE_8168F_2, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_37] =
	[RTL_GIGA_MAC_VER_37] =
		_R("RTL8402",		RTL_TD_1, FIRMWARE_8402_1,
		_R("RTL8402",		RTL_TD_1, FIRMWARE_8402_1,  JUMBO_1K),
							JUMBO_1K, true),
	[RTL_GIGA_MAC_VER_38] =
	[RTL_GIGA_MAC_VER_38] =
		_R("RTL8411",		RTL_TD_1, FIRMWARE_8411_1,
		_R("RTL8411",		RTL_TD_1, FIRMWARE_8411_1,  JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_39] =
	[RTL_GIGA_MAC_VER_39] =
		_R("RTL8106e",		RTL_TD_1, FIRMWARE_8106E_1,
		_R("RTL8106e",		RTL_TD_1, FIRMWARE_8106E_1, JUMBO_1K),
							JUMBO_1K, true),
	[RTL_GIGA_MAC_VER_40] =
	[RTL_GIGA_MAC_VER_40] =
		_R("RTL8168g/8111g",	RTL_TD_1, FIRMWARE_8168G_2,
		_R("RTL8168g/8111g",	RTL_TD_1, FIRMWARE_8168G_2, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_41] =
	[RTL_GIGA_MAC_VER_41] =
		_R("RTL8168g/8111g",	RTL_TD_1, NULL, JUMBO_9K, false),
		_R("RTL8168g/8111g",	RTL_TD_1, NULL, JUMBO_9K),
	[RTL_GIGA_MAC_VER_42] =
	[RTL_GIGA_MAC_VER_42] =
		_R("RTL8168g/8111g",	RTL_TD_1, FIRMWARE_8168G_3,
		_R("RTL8168g/8111g",	RTL_TD_1, FIRMWARE_8168G_3, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_43] =
	[RTL_GIGA_MAC_VER_43] =
		_R("RTL8106e",		RTL_TD_1, FIRMWARE_8106E_2,
		_R("RTL8106e",		RTL_TD_1, FIRMWARE_8106E_2, JUMBO_1K),
							JUMBO_1K, true),
	[RTL_GIGA_MAC_VER_44] =
	[RTL_GIGA_MAC_VER_44] =
		_R("RTL8411",		RTL_TD_1, FIRMWARE_8411_2,
		_R("RTL8411",		RTL_TD_1, FIRMWARE_8411_2,  JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_45] =
	[RTL_GIGA_MAC_VER_45] =
		_R("RTL8168h/8111h",	RTL_TD_1, FIRMWARE_8168H_1,
		_R("RTL8168h/8111h",	RTL_TD_1, FIRMWARE_8168H_1, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_46] =
	[RTL_GIGA_MAC_VER_46] =
		_R("RTL8168h/8111h",	RTL_TD_1, FIRMWARE_8168H_2,
		_R("RTL8168h/8111h",	RTL_TD_1, FIRMWARE_8168H_2, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_47] =
	[RTL_GIGA_MAC_VER_47] =
		_R("RTL8107e",		RTL_TD_1, FIRMWARE_8107E_1,
		_R("RTL8107e",		RTL_TD_1, FIRMWARE_8107E_1, JUMBO_1K),
							JUMBO_1K, false),
	[RTL_GIGA_MAC_VER_48] =
	[RTL_GIGA_MAC_VER_48] =
		_R("RTL8107e",		RTL_TD_1, FIRMWARE_8107E_2,
		_R("RTL8107e",		RTL_TD_1, FIRMWARE_8107E_2, JUMBO_1K),
							JUMBO_1K, false),
	[RTL_GIGA_MAC_VER_49] =
	[RTL_GIGA_MAC_VER_49] =
		_R("RTL8168ep/8111ep",	RTL_TD_1, NULL,
		_R("RTL8168ep/8111ep",	RTL_TD_1, NULL, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_50] =
	[RTL_GIGA_MAC_VER_50] =
		_R("RTL8168ep/8111ep",	RTL_TD_1, NULL,
		_R("RTL8168ep/8111ep",	RTL_TD_1, NULL, JUMBO_9K),
							JUMBO_9K, false),
	[RTL_GIGA_MAC_VER_51] =
	[RTL_GIGA_MAC_VER_51] =
		_R("RTL8168ep/8111ep",	RTL_TD_1, NULL,
		_R("RTL8168ep/8111ep",	RTL_TD_1, NULL, JUMBO_9K),
							JUMBO_9K, false),
};
};
#undef _R
#undef _R


@@ -1954,7 +1929,7 @@ static netdev_features_t rtl8169_fix_features(struct net_device *dev,
		features &= ~NETIF_F_ALL_TSO;
		features &= ~NETIF_F_ALL_TSO;


	if (dev->mtu > JUMBO_1K &&
	if (dev->mtu > JUMBO_1K &&
	    !rtl_chip_infos[tp->mac_version].jumbo_tx_csum)
	    tp->mac_version > RTL_GIGA_MAC_VER_06)
		features &= ~NETIF_F_IP_CSUM;
		features &= ~NETIF_F_IP_CSUM;


	return features;
	return features;
@@ -8338,7 +8313,7 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
		netif_info(tp, probe, dev, "jumbo features [frames: %d bytes, "
		netif_info(tp, probe, dev, "jumbo features [frames: %d bytes, "
			   "tx checksumming: %s]\n",
			   "tx checksumming: %s]\n",
			   rtl_chip_infos[chipset].jumbo_max,
			   rtl_chip_infos[chipset].jumbo_max,
			   rtl_chip_infos[chipset].jumbo_tx_csum ? "ok" : "ko");
			  tp->mac_version <= RTL_GIGA_MAC_VER_06 ? "ok" : "ko");
	}
	}


	if (r8168_check_dash(tp))
	if (r8168_check_dash(tp))