summaryrefslogtreecommitdiffstats
path: root/drivers/net/phy
diff options
context:
space:
mode:
authorClément Leger <cleger@kalray.eu>2018-10-15 17:00:04 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2018-10-16 08:55:47 +0200
commit9e3ea51f546fe4ed193ed97c47c7af09b1e5b477 (patch)
tree3ec13b7c29017c655f89b579b4f491c42cdc7d7e /drivers/net/phy
parent63b9aad03e2c0d64154426e24eb4e3b2b6dfe780 (diff)
downloadbarebox-9e3ea51f546fe4ed193ed97c47c7af09b1e5b477.tar.gz
barebox-9e3ea51f546fe4ed193ed97c47c7af09b1e5b477.tar.xz
phy: call adjust_link in attach if using fixed-link
Normally, phy_update_status is in charge of reporting a change in link status when phy is updated. When using fixed-link, speed and duplex are initialized directly after registering the phy and there is no driver. Hence when phy_update_status is called, the check for new values fails and returns directly. Since update_link call is mandatory for some network devices to work, call it directly when using fixed link in phy_device_attach to force update of link. Signed-off-by: Clement Leger <clement.leger@kalray.eu> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/net/phy')
-rw-r--r--drivers/net/phy/phy.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 42dcad9069..63f249fcff 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -398,6 +398,10 @@ static int phy_device_attach(struct phy_device *phy, struct eth_device *edev,
phy->adjust_link = adjust_link;
+ /* If the phy is a fixed-link, then call adjust_link directly */
+ if (!phy->bus && adjust_link)
+ adjust_link(edev);
+
return 0;
}