OSDN Git Service

mlxsw: core: Add support for OSFP transceiver modules
authorDanielle Ratson <danieller@nvidia.com>
Tue, 22 Feb 2022 17:17:03 +0000 (19:17 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 23 Feb 2022 12:38:17 +0000 (12:38 +0000)
The driver can already dump the EEPROM contents of QSFP-DD transceiver
modules via its ethtool_ops::get_module_info() and
ethtool_ops::get_module_eeprom() callbacks.

Add support for OSFP transceiver modules by adding their SFF-8024
Identifier Value (0x19).

This is required for future NVIDIA Spectrum-4 based systems that will be
equipped with OSFP transceivers.

Signed-off-by: Danielle Ratson <danieller@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/core_env.c
drivers/net/ethernet/mellanox/mlxsw/reg.h

index 70e283d..29a74b8 100644 (file)
@@ -87,6 +87,7 @@ mlxsw_env_validate_cable_ident(struct mlxsw_core *core, int id, bool *qsfp,
                *qsfp = true;
                break;
        case MLXSW_REG_MCIA_EEPROM_MODULE_INFO_ID_QSFP_DD:
+       case MLXSW_REG_MCIA_EEPROM_MODULE_INFO_ID_OSFP:
                *qsfp = true;
                *cmis = true;
                break;
@@ -303,6 +304,7 @@ int mlxsw_env_get_module_info(struct net_device *netdev,
                        modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN / 2;
                break;
        case MLXSW_REG_MCIA_EEPROM_MODULE_INFO_ID_QSFP_DD:
+       case MLXSW_REG_MCIA_EEPROM_MODULE_INFO_ID_OSFP:
                /* Use SFF_8636 as base type. ethtool should recognize specific
                 * type through the identifier value.
                 */
index 1f0ddb8..dce21da 100644 (file)
@@ -10037,6 +10037,7 @@ enum mlxsw_reg_mcia_eeprom_module_info_id {
        MLXSW_REG_MCIA_EEPROM_MODULE_INFO_ID_QSFP_PLUS  = 0x0D,
        MLXSW_REG_MCIA_EEPROM_MODULE_INFO_ID_QSFP28     = 0x11,
        MLXSW_REG_MCIA_EEPROM_MODULE_INFO_ID_QSFP_DD    = 0x18,
+       MLXSW_REG_MCIA_EEPROM_MODULE_INFO_ID_OSFP       = 0x19,
 };
 
 enum mlxsw_reg_mcia_eeprom_module_info {