27f15d40e1
- Why I did it 1. Update Mellanox HW-MGMT package to newer version V.7.0030.1011 2. Replace the SONiC PMON Thermal control algorithm with the one inside the HW-MGMT package on all Nvidia platforms 3. Support Spectrum-4 systems - How I did it 1. Update the HW-MGMT package version number and submodule pointer 2. Remove the thermal control algorithm implementation from Mellanox platform API 3. Revise the patch to HW-MGMT package which will disable HW-MGMT from running on SIMX 4. Update the downstream kernel patch list Signed-off-by: Kebo Liu <kebol@nvidia.com>
91 lines
3.7 KiB
Diff
91 lines
3.7 KiB
Diff
From da7c615b231402e3084dae855468be117538535c Mon Sep 17 00:00:00 2001
|
|
From: Vadim Pasternak <vadimp@nvidia.com>
|
|
Date: Wed, 15 Dec 2021 08:59:14 +0000
|
|
Subject: [PATCH backport 5.10 152/182] mlxsw: core: Extend bus init function
|
|
with event handler argument
|
|
|
|
The purpose of new argument - is to introduce system event handler for
|
|
treating line card activation / deactivation signals on modular system.
|
|
|
|
Signed-off-by: Vadim Pasternak <vadimp@nvidia.com>
|
|
---
|
|
drivers/net/ethernet/mellanox/mlxsw/core.c | 3 ++-
|
|
drivers/net/ethernet/mellanox/mlxsw/core.h | 4 +++-
|
|
drivers/net/ethernet/mellanox/mlxsw/i2c.c | 3 ++-
|
|
drivers/net/ethernet/mellanox/mlxsw/pci.c | 9 ++++++---
|
|
4 files changed, 13 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core.c b/drivers/net/ethernet/mellanox/mlxsw/core.c
|
|
index 8c128078105a..a9bb43837b33 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxsw/core.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlxsw/core.c
|
|
@@ -2005,7 +2005,8 @@ __mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info,
|
|
}
|
|
|
|
res = mlxsw_driver->res_query_enabled ? &mlxsw_core->res : NULL;
|
|
- err = mlxsw_bus->init(bus_priv, mlxsw_core, mlxsw_driver->profile, res);
|
|
+ err = mlxsw_bus->init(bus_priv, mlxsw_core, mlxsw_driver->profile, res,
|
|
+ mlxsw_driver->sys_event_handler);
|
|
if (err)
|
|
goto err_bus_init;
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core.h b/drivers/net/ethernet/mellanox/mlxsw/core.h
|
|
index 10ea541bb19d..b09f9013db77 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxsw/core.h
|
|
+++ b/drivers/net/ethernet/mellanox/mlxsw/core.h
|
|
@@ -390,6 +390,7 @@ struct mlxsw_driver {
|
|
*/
|
|
void (*ptp_transmitted)(struct mlxsw_core *mlxsw_core,
|
|
struct sk_buff *skb, u8 local_port);
|
|
+ void (*sys_event_handler)(struct mlxsw_core *mlxsw_core);
|
|
|
|
u8 txhdr_len;
|
|
const struct mlxsw_config_profile *profile;
|
|
@@ -432,7 +433,8 @@ struct mlxsw_bus {
|
|
const char *kind;
|
|
int (*init)(void *bus_priv, struct mlxsw_core *mlxsw_core,
|
|
const struct mlxsw_config_profile *profile,
|
|
- struct mlxsw_res *res);
|
|
+ struct mlxsw_res *res,
|
|
+ void (*sys_event_handler)(struct mlxsw_core *mlxsw_core));
|
|
void (*fini)(void *bus_priv);
|
|
bool (*skb_transmit_busy)(void *bus_priv,
|
|
const struct mlxsw_tx_info *tx_info);
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxsw/i2c.c b/drivers/net/ethernet/mellanox/mlxsw/i2c.c
|
|
index ce843ea91464..0cdb9b9d8353 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxsw/i2c.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlxsw/i2c.c
|
|
@@ -509,7 +509,8 @@ static int mlxsw_i2c_skb_transmit(void *bus_priv, struct sk_buff *skb,
|
|
static int
|
|
mlxsw_i2c_init(void *bus_priv, struct mlxsw_core *mlxsw_core,
|
|
const struct mlxsw_config_profile *profile,
|
|
- struct mlxsw_res *res)
|
|
+ struct mlxsw_res *res,
|
|
+ void (*sys_event_handler)(struct mlxsw_core *mlxsw_core))
|
|
{
|
|
struct mlxsw_i2c *mlxsw_i2c = bus_priv;
|
|
char *mbox;
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c
|
|
index dbb16ce25bdf..e8e91130cdf5 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxsw/pci.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c
|
|
@@ -1411,9 +1411,12 @@ static void mlxsw_pci_free_irq_vectors(struct mlxsw_pci *mlxsw_pci)
|
|
pci_free_irq_vectors(mlxsw_pci->pdev);
|
|
}
|
|
|
|
-static int mlxsw_pci_init(void *bus_priv, struct mlxsw_core *mlxsw_core,
|
|
- const struct mlxsw_config_profile *profile,
|
|
- struct mlxsw_res *res)
|
|
+static int
|
|
+mlxsw_pci_init(void *bus_priv, struct mlxsw_core *mlxsw_core,
|
|
+ const struct mlxsw_config_profile *profile,
|
|
+ struct mlxsw_res *res,
|
|
+ void (*sys_event_handler)(struct mlxsw_core *mlxsw_core))
|
|
+
|
|
{
|
|
struct mlxsw_pci *mlxsw_pci = bus_priv;
|
|
struct pci_dev *pdev = mlxsw_pci->pdev;
|
|
--
|
|
2.20.1
|
|
|