Skip to contentSkip to conversation

net: fix m88e1111s PHY auto negotiation timeout

PATCH New Thomas Chou 3 participants 4 messages Feb 16, 2016 – Feb 25, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 net: fix m88e1111s PHY auto negotiation timeout

After commit a058052c358c
("net: phy: do not read configuration register on reset")

both 3c120 and 10m50 devboard which use Marvel m88e1111s PHY got this error message,

Net: eth0: ethernet at 400
=> ping 192.168.1.5
ethernet at 400 Waiting for PHY auto negotiation to complete.... TIMEOUT ! Using ethernet at 400 device
host 192.168.1.5 is alive

This is because the auto negotiation control bit was cleared by the new phy_reset(). But the m88e1111s_config() does the soft-reset already, there is no need to reset twice. The extra phy_reset() should be removed.

---
 drivers/net/phy/marvell.c | 2 --
 1 file changed, 2 deletions(-)
drivers/net/phy/marvell.c +0 -2
index eab1558..5badfac 100644
@@ -271,8 +271,6 @@ static int m88e1111s_config(struct phy_device *phydev)
 
 	genphy_config_aneg(phydev);
 
-	phy_reset(phydev);
-
 	return 0;
 }
 
Signature · 1 line
2.5.0
#1 lore raw

PATCH 1/1 net: fix m88e1111s PHY auto negotiation timeout

Hi Thomas,

Quoted 28 lines · Thomas Chou

After commit a058052c358c
("net: phy: do not read configuration register on reset")

both 3c120 and 10m50 devboard which use Marvel m88e1111s PHY got this error message,

Net: eth0: ethernet at 400
=> ping 192.168.1.5
ethernet at 400 Waiting for PHY auto negotiation to complete.... TIMEOUT ! Using ethernet at 400 device
host 192.168.1.5 is alive

This is because the auto negotiation control bit was cleared by the new phy_reset(). But the m88e1111s_config() does the soft-reset already, there is no need to reset twice. The extra phy_reset() should be removed.

---
  drivers/net/phy/marvell.c | 2 --
  1 file changed, 2 deletions(-)
drivers/net/phy/marvell.c +0 -0
index eab1558..5badfac 100644

drivers/net/phy/marvell.c static int m88e1111s_config(struct phy_device *phydev) · line 276

Quoted 8 lines
drivers/net/phy/marvell.c +0 -2
@@ -271,8 +271,6 @@ static int m88e1111s_config(struct phy_device *phydev)
 
  	genphy_config_aneg(phydev);
 
-	phy_reset(phydev);
-
  	return 0;
  }
 

I've also stumbled over this problem on some boards equipped with the Marvell PHY. Could you please take a look at these patches instead:

http://patchwork.ozlabs.org/patch/581316/
http://patchwork.ozlabs.org/patch/581317/

Do they work for you?

Joe, could you please make sure to push these for this release? As its a real bugfix.

Thanks,
Stefan

#2 lore raw

PATCH 1/1 net: fix m88e1111s PHY auto negotiation timeout

Quoted 42 lines · Thomas Chou
Quoted 29 lines

After commit a058052c358c
("net: phy: do not read configuration register on reset")

both 3c120 and 10m50 devboard which use Marvel m88e1111s PHY got this error message,

Net: eth0: ethernet at 400
=> ping 192.168.1.5
ethernet at 400 Waiting for PHY auto negotiation to complete.... TIMEOUT ! Using ethernet at 400 device
host 192.168.1.5 is alive

This is because the auto negotiation control bit was cleared by the new phy_reset(). But the m88e1111s_config() does the soft-reset already, there is no need to reset twice. The extra phy_reset() should be removed.

---
  drivers/net/phy/marvell.c | 2 --
  1 file changed, 2 deletions(-)
drivers/net/phy/marvell.c +0 -0
index eab1558..5badfac 100644

drivers/net/phy/marvell.c static int m88e1111s_config(struct phy_device · line 276

Quoted 8 lines
drivers/net/phy/marvell.c +0 -2
@@ -271,8 +271,6 @@ static int m88e1111s_config(struct phy_device
 *phydev)
 
  	genphy_config_aneg(phydev);
 
-	phy_reset(phydev);
-
  	return 0;
  }

I've also stumbled over this problem on some boards equipped with the Marvell PHY. Could you please take a look at these patches instead:

Quoted 9 lines

http://patchwork.ozlabs.org/patch/581316/
http://patchwork.ozlabs.org/patch/581317/

Do they work for you?

Joe, could you please make sure to push these for this release? As its a real bugfix.

[Alison Wang]
After commit a058052c358c
("net: phy: do not read configuration register on reset")

I find auto negotiation timeout error also occurs on Atheros's PHY AR8033 too. :(

Best Regards,
Alison Wang

#3 lore raw

PATCH 1/1 net: fix m88e1111s PHY auto negotiation timeout

In reply to Stefan Roese

Hi Stefan,

Quoted 7 lines · Stefan Roese

I've also stumbled over this problem on some boards equipped with the Marvell PHY. Could you please take a look at these patches instead:

http://patchwork.ozlabs.org/patch/581316/
http://patchwork.ozlabs.org/patch/581317/

Do they work for you?

Yes, they work great. Thanks a lot. I should have found your patches earlier. :)

Best regards,
Thomas