Message ID | 20220902164247.19862-1-davthompson@nvidia.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 182447b12144b7be9b63a273d27c5a11bd54960a |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net,v1] mlxbf_gige: clear MDIO gateway lock after read | expand |
Hello: This patch was applied to netdev/net.git (master) by Jakub Kicinski <kuba@kernel.org>: On Fri, 2 Sep 2022 12:42:47 -0400 you wrote: > 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. > > Fixes: f92e1869d74e ("Add Mellanox BlueField Gigabit Ethernet driver") > Reviewed-by: Asmaa Mnebhi <asmaa@nvidia.com> > Signed-off-by: David Thompson <davthompson@nvidia.com> > > [...] Here is the summary with links: - [net,v1] mlxbf_gige: clear MDIO gateway lock after read https://git.kernel.org/netdev/net/c/182447b12144 You are awesome, thank you!
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 85155cd9405c..4aeb927c3715 100644 --- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c +++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c @@ -179,6 +179,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; } @@ -203,6 +206,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; }