mlxsw: Enforce firmware version for Spectrum-2
authorIdo Schimmel <idosch@mellanox.com>
Wed, 30 Oct 2019 09:34:51 +0000 (11:34 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Oct 2019 19:07:05 +0000 (12:07 -0700)
In a similar fashion to Spectrum-1, enforce a specific firmware version
for Spectrum-2 so that the driver and firmware are always in sync with
regards to new features.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reviewed-by: Petr Machata <petrm@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum.c

index 8a797fad2d56ad1625781fcdf62701d3f7063c86..97be4bc9a02feab734e9c74a7eb368033fb828ef 100644 (file)
@@ -63,6 +63,21 @@ static const struct mlxsw_fw_rev mlxsw_sp1_fw_rev = {
        "." __stringify(MLXSW_SP1_FWREV_MINOR) \
        "." __stringify(MLXSW_SP1_FWREV_SUBMINOR) ".mfa2"
 
+#define MLXSW_SP2_FWREV_MAJOR 29
+#define MLXSW_SP2_FWREV_MINOR 2000
+#define MLXSW_SP2_FWREV_SUBMINOR 2308
+
+static const struct mlxsw_fw_rev mlxsw_sp2_fw_rev = {
+       .major = MLXSW_SP2_FWREV_MAJOR,
+       .minor = MLXSW_SP2_FWREV_MINOR,
+       .subminor = MLXSW_SP2_FWREV_SUBMINOR,
+};
+
+#define MLXSW_SP2_FW_FILENAME \
+       "mellanox/mlxsw_spectrum2-" __stringify(MLXSW_SP2_FWREV_MAJOR) \
+       "." __stringify(MLXSW_SP2_FWREV_MINOR) \
+       "." __stringify(MLXSW_SP2_FWREV_SUBMINOR) ".mfa2"
+
 static const char mlxsw_sp1_driver_name[] = "mlxsw_spectrum";
 static const char mlxsw_sp2_driver_name[] = "mlxsw_spectrum2";
 static const char mlxsw_sp3_driver_name[] = "mlxsw_spectrum3";
@@ -4988,6 +5003,8 @@ static int mlxsw_sp2_init(struct mlxsw_core *mlxsw_core,
 {
        struct mlxsw_sp *mlxsw_sp = mlxsw_core_driver_priv(mlxsw_core);
 
+       mlxsw_sp->req_rev = &mlxsw_sp2_fw_rev;
+       mlxsw_sp->fw_filename = MLXSW_SP2_FW_FILENAME;
        mlxsw_sp->kvdl_ops = &mlxsw_sp2_kvdl_ops;
        mlxsw_sp->afa_ops = &mlxsw_sp2_act_afa_ops;
        mlxsw_sp->afk_ops = &mlxsw_sp2_afk_ops;
@@ -6649,3 +6666,4 @@ MODULE_DEVICE_TABLE(pci, mlxsw_sp1_pci_id_table);
 MODULE_DEVICE_TABLE(pci, mlxsw_sp2_pci_id_table);
 MODULE_DEVICE_TABLE(pci, mlxsw_sp3_pci_id_table);
 MODULE_FIRMWARE(MLXSW_SP1_FW_FILENAME);
+MODULE_FIRMWARE(MLXSW_SP2_FW_FILENAME);