| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- From: Marko Ratkaj <[email protected]>
- Date: Fri, 7 Apr 2017 13:30:30 +0200
- Subject: [PATCH] fix marvell phy initialization issues
- Fix Marvell PHYs initialization issues and optimize
- logic for page changing during init
- Board affected with initialization bug:
- SolidRun ClearFog Base
- Signed-off-by: Marko Ratkaj <[email protected]>
- ---
- drivers/net/phy/marvell.c | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
- --- a/drivers/net/phy/marvell.c
- +++ b/drivers/net/phy/marvell.c
- @@ -369,7 +369,7 @@ static int m88e1111_config_aneg(struct p
- static int marvell_of_reg_init(struct phy_device *phydev)
- {
- const __be32 *paddr;
- - int len, i, saved_page, current_page, page_changed, ret;
- + int len, i, saved_page, current_page, ret;
-
- if (!phydev->mdio.dev.of_node)
- return 0;
- @@ -382,7 +382,6 @@ static int marvell_of_reg_init(struct ph
- saved_page = phy_read(phydev, MII_MARVELL_PHY_PAGE);
- if (saved_page < 0)
- return saved_page;
- - page_changed = 0;
- current_page = saved_page;
-
- ret = 0;
- @@ -396,7 +395,6 @@ static int marvell_of_reg_init(struct ph
-
- if (reg_page != current_page) {
- current_page = reg_page;
- - page_changed = 1;
- ret = phy_write(phydev, MII_MARVELL_PHY_PAGE, reg_page);
- if (ret < 0)
- goto err;
- @@ -419,7 +417,7 @@ static int marvell_of_reg_init(struct ph
-
- }
- err:
- - if (page_changed) {
- + if (current_page != saved_page) {
- i = phy_write(phydev, MII_MARVELL_PHY_PAGE, saved_page);
- if (ret == 0)
- ret = i;
|