e286869b24
- 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>
53 lines
2.1 KiB
Diff
53 lines
2.1 KiB
Diff
From a8ab0bbc8f17a0099c4982f3e0cb78f6c323fa46 Mon Sep 17 00:00:00 2001
|
|
From: David Thompson <davthompson@nvidia.com>
|
|
Date: Thu, 5 May 2022 12:23:09 -0400
|
|
Subject: [PATCH backport 5.10 30/63] mlxbf_gige: increase MDIO polling rate to
|
|
5us
|
|
|
|
BugLink: https://bugs.launchpad.net/bugs/1979827
|
|
|
|
This patch increases the polling rate used by the
|
|
mlxbf_gige driver on the MDIO bus. The previous
|
|
polling rate was every 100us, and the new rate is
|
|
every 5us. With this change the amount of time
|
|
spent waiting for the MDIO BUSY signal to de-assert
|
|
drops from ~100us to ~27us for each operation.
|
|
|
|
Signed-off-by: David Thompson <davthompson@nvidia.com>
|
|
Signed-off-by: Asmaa Mnebhi <asmaa@nvidia.com>
|
|
Link: https://lore.kernel.org/r/20220505162309.20050-1-davthompson@nvidia.com
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
(cherry picked from commit 0a02e282bad4dad455553fc2b9268cf1d003f132)
|
|
Signed-off-by: Ike Panhc <ike.pan@canonical.com>
|
|
---
|
|
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c
|
|
index e32dd34fd..6c8a4a529 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c
|
|
@@ -105,7 +105,8 @@ static int mlxbf_gige_mdio_read(struct mii_bus *bus, int phy_add, int phy_reg)
|
|
writel(cmd, priv->mdio_io + MLXBF_GIGE_MDIO_GW_OFFSET);
|
|
|
|
ret = readl_poll_timeout_atomic(priv->mdio_io + MLXBF_GIGE_MDIO_GW_OFFSET,
|
|
- val, !(val & MLXBF_GIGE_MDIO_GW_BUSY_MASK), 100, 1000000);
|
|
+ val, !(val & MLXBF_GIGE_MDIO_GW_BUSY_MASK),
|
|
+ 5, 1000000);
|
|
|
|
if (ret) {
|
|
writel(0, priv->mdio_io + MLXBF_GIGE_MDIO_GW_OFFSET);
|
|
@@ -137,7 +138,8 @@ static int mlxbf_gige_mdio_write(struct mii_bus *bus, int phy_add,
|
|
|
|
/* If the poll timed out, drop the request */
|
|
ret = readl_poll_timeout_atomic(priv->mdio_io + MLXBF_GIGE_MDIO_GW_OFFSET,
|
|
- temp, !(temp & MLXBF_GIGE_MDIO_GW_BUSY_MASK), 100, 1000000);
|
|
+ temp, !(temp & MLXBF_GIGE_MDIO_GW_BUSY_MASK),
|
|
+ 5, 1000000);
|
|
|
|
return ret;
|
|
}
|
|
--
|
|
2.20.1
|
|
|