• Vadim Pasternak's avatar
    mlxsw: core: Prevent reading unsupported slave address from SFP EEPROM · f1436c80
    Vadim Pasternak authored
    Prevent reading unsupported slave address from SFP EEPROM by testing
    Diagnostic Monitoring Type byte in EEPROM. Read only page zero of
    EEPROM, in case this byte is zero.
    
    If some SFP transceiver does not support Digital Optical Monitoring
    (DOM), reading SFP EEPROM slave address 0x51 could return an error.
    Availability of DOM support is verified by reading from zero page
    Diagnostic Monitoring Type byte describing how diagnostic monitoring is
    implemented by transceiver. If bit 6 of this byte is set, it indicates
    that digital diagnostic monitoring has been implemented. Otherwise it is
    not and transceiver could fail to reply to transaction for slave address
    0x51 [1010001X (A2h)], which is used to access measurements page.
    
    Such issue has been observed when reading cable MCP2M00-xxxx,
    MCP7F00-xxxx, and few others.
    
    Fixes: 2ea10903 ("mlxsw: spectrum: Add support for access cable info via ethtool")
    Fixes: 4400081b ("mlxsw: spectrum: Fix EEPROM access in case of SFP/SFP+")
    Signed-off-by: default avatarVadim Pasternak <vadimp@mellanox.com>
    Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
    Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f1436c80
core_env.c 6.68 KB