Message ID | 1636626316-27997-1-git-send-email-rahul.lakkireddy@chelsio.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 4ca110bf8d9b31a60f8f8ff6706ea147d38ad97c |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] cxgb4: fix eeprom len when diagnostics not implemented | expand |
Hello: This patch was applied to netdev/net.git (master) by David S. Miller <davem@davemloft.net>: On Thu, 11 Nov 2021 15:55:16 +0530 you wrote: > 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: f56ec6766dcf ("cxgb4: Add support for ethtool i2c dump") > Signed-off-by: Manoj Malviya <manojmalviya@chelsio.com> > Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com> > > [...] Here is the summary with links: - [net] cxgb4: fix eeprom len when diagnostics not implemented https://git.kernel.org/netdev/net/c/4ca110bf8d9b You are awesome, thank you!
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c index 5903bdb78916..129352bbe114 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c @@ -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; - modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN; + 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; diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.h b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.h index 002fc62ea726..63bc956d2037 100644 --- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.h +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.h @@ -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