Commit 4ca110bf authored by Rahul Lakkireddy's avatar Rahul Lakkireddy Committed by David S. Miller
Browse files

cxgb4: fix eeprom len when diagnostics not implemented



Ensure diagnostics monitoring support is implemented for the SFF 8472
compliant port module and set the correct length for ethtool port
module eeprom read.

Fixes: f56ec676 ("cxgb4: Add support for ethtool i2c dump")
Signed-off-by: default avatarManoj Malviya <manojmalviya@chelsio.com>
Signed-off-by: default avatarRahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0315a075
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -2015,12 +2015,15 @@ static int cxgb4_get_module_info(struct net_device *dev,
		if (ret)
			return ret;

		if (!sff8472_comp || (sff_diag_type & 4)) {
		if (!sff8472_comp || (sff_diag_type & SFP_DIAG_ADDRMODE)) {
			modinfo->type = ETH_MODULE_SFF_8079;
			modinfo->eeprom_len = ETH_MODULE_SFF_8079_LEN;
		} else {
			modinfo->type = ETH_MODULE_SFF_8472;
			if (sff_diag_type & SFP_DIAG_IMPLEMENTED)
				modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN;
			else
				modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN / 2;
		}
		break;

+2 −0
Original line number Diff line number Diff line
@@ -293,6 +293,8 @@ enum {
#define I2C_PAGE_SIZE		0x100
#define SFP_DIAG_TYPE_ADDR	0x5c
#define SFP_DIAG_TYPE_LEN	0x1
#define SFP_DIAG_ADDRMODE	BIT(2)
#define SFP_DIAG_IMPLEMENTED	BIT(6)
#define SFF_8472_COMP_ADDR	0x5e
#define SFF_8472_COMP_LEN	0x1
#define SFF_REV_ADDR		0x1