diff mbox

[LEDE-DEV,1/2] mvswitch: fix autonegotiation issue

Message ID 20170606222532.22450-2-ryazanov.s.a@gmail.com
State Accepted
Headers show

Commit Message

Sergey Ryazanov June 6, 2017, 10:25 p.m. UTC
The Marvel 88E6060 switch has an MDIO interface, but does not emulate
regular PHY behavior for the host. The network core can not detect using
the generic code, whether the connection via the attached PHY can be
used or not. The PHY's state machine is stuck in a state of
auto-negotiation and does not go any further so the Ethernet interface
of the router stay forever in the not-runing state.

Fix this issue by implementing the aneg_done callback to be able to
inform the network core that the Ethernet interface link to which the
switch is connected can be marked as RUNNING.

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
---
 target/linux/generic/files/drivers/net/phy/mvswitch.c | 7 +++++++
 1 file changed, 7 insertions(+)
diff mbox

Patch

diff --git a/target/linux/generic/files/drivers/net/phy/mvswitch.c b/target/linux/generic/files/drivers/net/phy/mvswitch.c
index a20fce3..043978f 100644
--- a/target/linux/generic/files/drivers/net/phy/mvswitch.c
+++ b/target/linux/generic/files/drivers/net/phy/mvswitch.c
@@ -346,6 +346,12 @@  mvswitch_read_status(struct phy_device *pdev)
 }
 
 static int
+mvswitch_aneg_done(struct phy_device *phydev)
+{
+	return 1;	/* Return any positive value */
+}
+
+static int
 mvswitch_config_aneg(struct phy_device *phydev)
 {
 	return 0;
@@ -417,6 +423,7 @@  static struct phy_driver mvswitch_driver = {
 	.detach		= &mvswitch_detach,
 	.config_init	= &mvswitch_config_init,
 	.config_aneg	= &mvswitch_config_aneg,
+	.aneg_done	= &mvswitch_aneg_done,
 	.read_status	= &mvswitch_read_status,
 };