473-fix-marvell-phy-initialization-issues.patch 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. From: Marko Ratkaj <[email protected]>
  2. Date: Fri, 7 Apr 2017 13:30:30 +0200
  3. Subject: [PATCH] fix marvell phy initialization issues
  4. Fix Marvell PHYs initialization issues and optimize
  5. logic for page changing during init
  6. Board affected with initialization bug:
  7. SolidRun ClearFog Base
  8. Signed-off-by: Marko Ratkaj <[email protected]>
  9. ---
  10. drivers/net/phy/marvell.c | 9 ++++-----
  11. 1 file changed, 4 insertions(+), 5 deletions(-)
  12. --- a/drivers/net/phy/marvell.c
  13. +++ b/drivers/net/phy/marvell.c
  14. @@ -369,7 +369,7 @@ static int m88e1111_config_aneg(struct p
  15. static int marvell_of_reg_init(struct phy_device *phydev)
  16. {
  17. const __be32 *paddr;
  18. - int len, i, saved_page, current_page, page_changed, ret;
  19. + int len, i, saved_page, current_page, ret;
  20. if (!phydev->mdio.dev.of_node)
  21. return 0;
  22. @@ -382,7 +382,6 @@ static int marvell_of_reg_init(struct ph
  23. saved_page = phy_read(phydev, MII_MARVELL_PHY_PAGE);
  24. if (saved_page < 0)
  25. return saved_page;
  26. - page_changed = 0;
  27. current_page = saved_page;
  28. ret = 0;
  29. @@ -396,7 +395,6 @@ static int marvell_of_reg_init(struct ph
  30. if (reg_page != current_page) {
  31. current_page = reg_page;
  32. - page_changed = 1;
  33. ret = phy_write(phydev, MII_MARVELL_PHY_PAGE, reg_page);
  34. if (ret < 0)
  35. goto err;
  36. @@ -419,7 +417,7 @@ static int marvell_of_reg_init(struct ph
  37. }
  38. err:
  39. - if (page_changed) {
  40. + if (current_page != saved_page) {
  41. i = phy_write(phydev, MII_MARVELL_PHY_PAGE, saved_page);
  42. if (ret == 0)
  43. ret = i;