[LEDE-DEV] [PATCH] kernel: adm6996: set carrier status

Mathias Kresin dev at kresin.me
Sun Aug 7 13:24:57 PDT 2016


Due to the missing carrier status set, the interface wasn't usable on a
BTHOMEHUB2B after ip link down and up as it is done in preinit.

Signed-off-by: Mathias Kresin <dev at kresin.me>
---
 target/linux/generic/files/drivers/net/phy/adm6996.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/target/linux/generic/files/drivers/net/phy/adm6996.c b/target/linux/generic/files/drivers/net/phy/adm6996.c
index a2ff2b0..7823b8b 100644
--- a/target/linux/generic/files/drivers/net/phy/adm6996.c
+++ b/target/linux/generic/files/drivers/net/phy/adm6996.c
@@ -1052,6 +1052,17 @@ static int adm6996_read_status(struct phy_device *phydev)
 	phydev->speed = SPEED_100;
 	phydev->duplex = DUPLEX_FULL;
 	phydev->link = 1;
+
+	if (phydev->link) {
+		phydev->state = PHY_RUNNING;
+		netif_carrier_on(phydev->attached_dev);
+		phydev->adjust_link(phydev->attached_dev);
+	} else {
+		phydev->state = PHY_NOLINK;
+		netif_carrier_off(phydev->attached_dev);
+		phydev->adjust_link(phydev->attached_dev);
+	}
+
 	return 0;
 }
 
-- 
2.7.4




More information about the Lede-dev mailing list