mlxsw: reg: Update module_type values in PMTM register and map them to width
authorJiri Pirko <jiri@mellanox.com>
Thu, 27 Feb 2020 19:59:26 +0000 (20:59 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 27 Feb 2020 20:08:46 +0000 (12:08 -0800)
There are couple new values that PMTM register can return
in module_type field. Add them and map them to module width in
mlxsw_core_module_max_width(). Fix the existing names on the way.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/core.c
drivers/net/ethernet/mellanox/mlxsw/reg.h

index 3da2a4b..1078f88 100644 (file)
@@ -2201,13 +2201,22 @@ int mlxsw_core_module_max_width(struct mlxsw_core *mlxsw_core, u8 module)
        /* Here we need to get the module width according to the module type. */
 
        switch (module_type) {
+       case MLXSW_REG_PMTM_MODULE_TYPE_C2C8X: /* fall through */
+       case MLXSW_REG_PMTM_MODULE_TYPE_QSFP_DD: /* fall through */
+       case MLXSW_REG_PMTM_MODULE_TYPE_OSFP:
+               return 8;
+       case MLXSW_REG_PMTM_MODULE_TYPE_C2C4X: /* fall through */
        case MLXSW_REG_PMTM_MODULE_TYPE_BP_4X: /* fall through */
-       case MLXSW_REG_PMTM_MODULE_TYPE_BP_QSFP:
+       case MLXSW_REG_PMTM_MODULE_TYPE_QSFP:
                return 4;
-       case MLXSW_REG_PMTM_MODULE_TYPE_BP_2X:
+       case MLXSW_REG_PMTM_MODULE_TYPE_C2C2X: /* fall through */
+       case MLXSW_REG_PMTM_MODULE_TYPE_BP_2X: /* fall through */
+       case MLXSW_REG_PMTM_MODULE_TYPE_SFP_DD: /* fall through */
+       case MLXSW_REG_PMTM_MODULE_TYPE_DSFP:
                return 2;
-       case MLXSW_REG_PMTM_MODULE_TYPE_BP_SFP: /* fall through */
-       case MLXSW_REG_PMTM_MODULE_TYPE_BP_1X:
+       case MLXSW_REG_PMTM_MODULE_TYPE_C2C1X: /* fall through */
+       case MLXSW_REG_PMTM_MODULE_TYPE_BP_1X: /* fall through */
+       case MLXSW_REG_PMTM_MODULE_TYPE_SFP:
                return 1;
        default:
                return -EINVAL;
index 26ac0a5..1bc65e5 100644 (file)
@@ -5440,15 +5440,29 @@ enum mlxsw_reg_pmtm_module_type {
        /* Backplane with 4 lanes */
        MLXSW_REG_PMTM_MODULE_TYPE_BP_4X,
        /* QSFP */
-       MLXSW_REG_PMTM_MODULE_TYPE_BP_QSFP,
+       MLXSW_REG_PMTM_MODULE_TYPE_QSFP,
        /* SFP */
-       MLXSW_REG_PMTM_MODULE_TYPE_BP_SFP,
+       MLXSW_REG_PMTM_MODULE_TYPE_SFP,
        /* Backplane with single lane */
        MLXSW_REG_PMTM_MODULE_TYPE_BP_1X = 4,
        /* Backplane with two lane */
        MLXSW_REG_PMTM_MODULE_TYPE_BP_2X = 8,
-       /* Chip2Chip */
-       MLXSW_REG_PMTM_MODULE_TYPE_C2C = 10,
+       /* Chip2Chip4x */
+       MLXSW_REG_PMTM_MODULE_TYPE_C2C4X = 10,
+       /* Chip2Chip2x */
+       MLXSW_REG_PMTM_MODULE_TYPE_C2C2X,
+       /* Chip2Chip1x */
+       MLXSW_REG_PMTM_MODULE_TYPE_C2C1X,
+       /* QSFP-DD */
+       MLXSW_REG_PMTM_MODULE_TYPE_QSFP_DD = 14,
+       /* OSFP */
+       MLXSW_REG_PMTM_MODULE_TYPE_OSFP,
+       /* SFP-DD */
+       MLXSW_REG_PMTM_MODULE_TYPE_SFP_DD,
+       /* DSFP */
+       MLXSW_REG_PMTM_MODULE_TYPE_DSFP,
+       /* Chip2Chip8x */
+       MLXSW_REG_PMTM_MODULE_TYPE_C2C8X,
 };
 
 /* reg_pmtm_module_type