lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 783/849] cxgb4: fix eeprom len when diagnostics not implemented
    Date
    From: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>

    [ Upstream commit 4ca110bf8d9b31a60f8f8ff6706ea147d38ad97c ]

    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>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c | 7 +++++--
    drivers/net/ethernet/chelsio/cxgb4/t4_hw.h | 2 ++
    2 files changed, 7 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
    index 83ed10ac86606..7080cb6c83e4a 100644
    --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
    +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.c
    @@ -2011,12 +2011,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 002fc62ea7262..63bc956d20376 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
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-16 02:41    [W:3.166 / U:0.284 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site