Message ID | E1n4mpB-002PKE-UM@rmk-PC.armlinux.org.uk (mailing list archive) |
---|---|
State | Accepted |
Commit | 5b8f970309ddfffd92cb3c12cb7cf4101fe0f8bf |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Fix RGMII delays for 88E1118 | expand |
On Tue, Jan 04, 2022 at 04:38:13PM +0000, Russell King (Oracle) wrote: > Use phy_write_paged() in m88e1118_config_init() to set the MSCR value. > We leave the other paged write for the LEDs in case the DT register > parsing is relying on this page. > > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
Le Tue, Jan 04, 2022 at 04:38:13PM +0000, Russell King (Oracle) a écrit : > Use phy_write_paged() in m88e1118_config_init() to set the MSCR value. > We leave the other paged write for the LEDs in case the DT register > parsing is relying on this page. > > Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> > --- > drivers/net/phy/marvell.c | 22 ++++++++-------------- > 1 file changed, 8 insertions(+), 14 deletions(-) > Tested-by: Corentin Labbe <clabbe.montjoie@gmail.com> Thanks!
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c index 4fcfca4e1702..64e7874c95f4 100644 --- a/drivers/net/phy/marvell.c +++ b/drivers/net/phy/marvell.c @@ -1225,28 +1225,22 @@ static int m88e1118_config_aneg(struct phy_device *phydev) static int m88e1118_config_init(struct phy_device *phydev) { + u16 leds; int err; - /* Change address */ - err = marvell_set_page(phydev, MII_MARVELL_MSCR_PAGE); - if (err < 0) - return err; - /* Enable 1000 Mbit */ - err = phy_write(phydev, 0x15, 0x1070); - if (err < 0) - return err; - - /* Change address */ - err = marvell_set_page(phydev, MII_MARVELL_LED_PAGE); + err = phy_write_paged(phydev, MII_MARVELL_MSCR_PAGE, + MII_88E1121_PHY_MSCR_REG, 0x1070); if (err < 0) return err; /* Adjust LED Control */ if (phydev->dev_flags & MARVELL_PHY_M1118_DNS323_LEDS) - err = phy_write(phydev, 0x10, 0x1100); + leds = 0x1100; else - err = phy_write(phydev, 0x10, 0x021e); + leds = 0x021e; + + err = phy_write_paged(phydev, MII_MARVELL_LED_PAGE, 0x10, leds); if (err < 0) return err; @@ -1254,7 +1248,7 @@ static int m88e1118_config_init(struct phy_device *phydev) if (err < 0) return err; - /* Reset address */ + /* Reset page register */ err = marvell_set_page(phydev, MII_MARVELL_COPPER_PAGE); if (err < 0) return err;
Use phy_write_paged() in m88e1118_config_init() to set the MSCR value. We leave the other paged write for the LEDs in case the DT register parsing is relying on this page. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> --- drivers/net/phy/marvell.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-)