1 From: Marko Ratkaj <marko.ratkaj@sartura.hr>
2 Date: Fri, 7 Apr 2017 13:30:30 +0200
3 Subject: [PATCH] fix marvell phy initialization issues
5 Fix Marvell PHYs initialization issues and optimize
6 logic for page changing during init
8 Board affected with initialization bug:
11 Signed-off-by: Marko Ratkaj <marko.ratkaj@sartura.hr>
13 drivers/net/phy/marvell.c | 9 ++++-----
14 1 file changed, 4 insertions(+), 5 deletions(-)
16 --- a/drivers/net/phy/marvell.c
17 +++ b/drivers/net/phy/marvell.c
18 @@ -361,7 +361,7 @@ static int m88e1111_config_aneg(struct p
19 static int marvell_of_reg_init(struct phy_device *phydev)
22 - int len, i, saved_page, current_page, page_changed, ret;
23 + int len, i, saved_page, current_page, ret;
25 if (!phydev->mdio.dev.of_node)
27 @@ -374,7 +374,6 @@ static int marvell_of_reg_init(struct ph
28 saved_page = phy_read(phydev, MII_MARVELL_PHY_PAGE);
32 current_page = saved_page;
35 @@ -388,7 +387,6 @@ static int marvell_of_reg_init(struct ph
37 if (reg_page != current_page) {
38 current_page = reg_page;
40 ret = phy_write(phydev, MII_MARVELL_PHY_PAGE, reg_page);
43 @@ -411,7 +409,7 @@ static int marvell_of_reg_init(struct ph
48 + if (current_page != saved_page) {
49 i = phy_write(phydev, MII_MARVELL_PHY_PAGE, saved_page);
52 @@ -1192,7 +1190,8 @@ static int marvell_read_status(struct ph
55 /* Check the fiber mode first */
56 - if (phydev->supported & SUPPORTED_FIBRE) {
57 + if (phydev->supported & SUPPORTED_FIBRE &&
58 + phydev->interface != PHY_INTERFACE_MODE_SGMII) {
59 err = phy_write(phydev, MII_MARVELL_PHY_PAGE, MII_M1111_FIBER);