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

Commit f85e54b4 authored by Raju Rangoju's avatar Raju Rangoju Committed by Greg Kroah-Hartman
Browse files

amd-xgbe: add the bit rate quirk for Molex cables



[ Upstream commit 170a9e341a3b02c0b2ea0df16ef14a33a4f41de8 ]

The offset 12 (bit-rate) of EEPROM SFP DAC (passive) cables is expected
to be in the range 0x64 to 0x68. However, the 5 meter and 7 meter Molex
passive cables have the rate ceiling 0x78 at offset 12.

Add a quirk for Molex passive cables to extend the rate ceiling to 0x78.

Fixes: abf0a1c2 ("amd-xgbe: Add support for SFP+ modules")
Signed-off-by: default avatarRaju Rangoju <Raju.Rangoju@amd.com>
Acked-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 71ba2a95
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -238,6 +238,7 @@ enum xgbe_sfp_speed {
#define XGBE_SFP_BASE_BR_1GBE_MAX		0x0d
#define XGBE_SFP_BASE_BR_10GBE_MIN		0x64
#define XGBE_SFP_BASE_BR_10GBE_MAX		0x68
#define XGBE_MOLEX_SFP_BASE_BR_10GBE_MAX	0x78

#define XGBE_SFP_BASE_CU_CABLE_LEN		18

@@ -283,6 +284,8 @@ struct xgbe_sfp_eeprom {
#define XGBE_BEL_FUSE_VENDOR	"BEL-FUSE        "
#define XGBE_BEL_FUSE_PARTNO	"1GBT-SFP06      "

#define XGBE_MOLEX_VENDOR	"Molex Inc.      "

struct xgbe_sfp_ascii {
	union {
		char vendor[XGBE_SFP_BASE_VENDOR_NAME_LEN + 1];
@@ -833,6 +836,10 @@ static bool xgbe_phy_sfp_bit_rate(struct xgbe_sfp_eeprom *sfp_eeprom,
		break;
	case XGBE_SFP_SPEED_10000:
		min = XGBE_SFP_BASE_BR_10GBE_MIN;
		if (memcmp(&sfp_eeprom->base[XGBE_SFP_BASE_VENDOR_NAME],
			   XGBE_MOLEX_VENDOR, XGBE_SFP_BASE_VENDOR_NAME_LEN) == 0)
			max = XGBE_MOLEX_SFP_BASE_BR_10GBE_MAX;
		else
			max = XGBE_SFP_BASE_BR_10GBE_MAX;
		break;
	default: