diff options
author | Clément Leger <cleger@kalray.eu> | 2018-10-15 17:00:04 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-10-16 08:55:47 +0200 |
commit | 9e3ea51f546fe4ed193ed97c47c7af09b1e5b477 (patch) | |
tree | 3ec13b7c29017c655f89b579b4f491c42cdc7d7e /drivers/net/phy | |
parent | 63b9aad03e2c0d64154426e24eb4e3b2b6dfe780 (diff) | |
download | barebox-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.c | 4 |
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; } |