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>
47 lines
1.6 KiB
Diff
47 lines
1.6 KiB
Diff
From 7c7da04799f5fe6f7f5751d413dcdf04abe5ea53 Mon Sep 17 00:00:00 2001
|
|
From: David Thompson <davthompson@nvidia.com>
|
|
Date: Tue, 13 Sep 2022 13:15:14 -0400
|
|
Subject: [PATCH backport 5.10 37/63] UBUNTU: SAUCE: mlxbf_gige: clear MDIO
|
|
gateway lock after read
|
|
|
|
BugLink: https://bugs.launchpad.net/bugs/1989495
|
|
|
|
The MDIO gateway (GW) lock in BlueField-2 GIGE logic is
|
|
set after read. This patch adds logic to make sure the
|
|
lock is always cleared at the end of each MDIO transaction.
|
|
|
|
Reviewed-by: Asmaa Mnebhi <asmaa@nvidia.com>
|
|
Signed-off-by: David Thompson <davthompson@nvidia.com>
|
|
Signed-off-by: Ike Panhc <ike.pan@canonical.com>
|
|
---
|
|
drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
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 6c8a4a529..b7363c6c3 100644
|
|
--- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c
|
|
+++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c
|
|
@@ -117,6 +117,9 @@ static int mlxbf_gige_mdio_read(struct mii_bus *bus, int phy_add, int phy_reg)
|
|
/* Only return ad bits of the gw register */
|
|
ret &= MLXBF_GIGE_MDIO_GW_AD_MASK;
|
|
|
|
+ /* The MDIO lock is set on read. To release it, clear gw register */
|
|
+ writel(0, priv->mdio_io + MLXBF_GIGE_MDIO_GW_OFFSET);
|
|
+
|
|
return ret;
|
|
}
|
|
|
|
@@ -141,6 +144,9 @@ static int mlxbf_gige_mdio_write(struct mii_bus *bus, int phy_add,
|
|
temp, !(temp & MLXBF_GIGE_MDIO_GW_BUSY_MASK),
|
|
5, 1000000);
|
|
|
|
+ /* The MDIO lock is set on read. To release it, clear gw register */
|
|
+ writel(0, priv->mdio_io + MLXBF_GIGE_MDIO_GW_OFFSET);
|
|
+
|
|
return ret;
|
|
}
|
|
|
|
--
|
|
2.20.1
|
|
|