[U-Boot] [PATCH] net: phy: marvell: Fix up reset ordering

Nathan Rossi nathan at nathanrossi.com
Wed Jun 1 18:22:44 CEST 2016


Commit a058052c "net: phy: do not read configuration register on reset",
changes the behaviour of the phy_reset function such that the state of
the BMCR register is not preserved during reset.

Reorder the phy_reset and genphy_config_aneg calls for some of the
marvell phy drivers so that auto-negotiation occurs after reset.

Signed-off-by: Nathan Rossi <nathan at nathanrossi.com>
Cc: Joe Hershberger <joe.hershberger at ni.com>
Cc: Michal Simek <michal.simek at xilinx.com>
Cc: Stefan Roese <sr at denx.de>
---
 drivers/net/phy/marvell.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index d2e68d4..40284a5 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -414,10 +414,10 @@ static int m88e1145_config(struct phy_device *phydev)
 			MIIM_M88E1145_RGMII_TX_DELAY;
 	phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1145_PHY_EXT_CR, reg);
 
-	genphy_config_aneg(phydev);
-
 	phy_reset(phydev);
 
+	genphy_config_aneg(phydev);
+
 	return 0;
 }
 
@@ -443,10 +443,10 @@ static int m88e1149_config(struct phy_device *phydev)
 	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x0);
 	phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x100);
 
-	genphy_config_aneg(phydev);
-
 	phy_reset(phydev);
 
+	genphy_config_aneg(phydev);
+
 	return 0;
 }
 
@@ -476,9 +476,10 @@ static int m88e1310_config(struct phy_device *phydev)
 	/* Ensure to return to page 0 */
 	phy_write(phydev, MDIO_DEVAD_NONE, MIIM_88E1310_PHY_PAGE, 0x0000);
 
-	genphy_config_aneg(phydev);
 	phy_reset(phydev);
 
+	genphy_config_aneg(phydev);
+
 	return 0;
 }
 
-- 
2.8.1



More information about the U-Boot mailing list