diff options
author | Karfich, Oleg <Oleg.Karfich@wago.com> | 2021-08-31 12:57:01 +0000 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-10-05 13:51:12 +0200 |
commit | 2b9ba2f5c60565798040cce4c3f4140a512fac0b (patch) | |
tree | 73a15120c9c25e85f76b6a6ee6b83e4317a212d2 /drivers | |
parent | 229d1635c675162c7b81a30e9f04c6b1bd83112f (diff) | |
download | barebox-2b9ba2f5c60565798040cce4c3f4140a512fac0b.tar.gz barebox-2b9ba2f5c60565798040cce4c3f4140a512fac0b.tar.xz |
net: cpsw: fix ethernet bringup in case of a fixed-link phy
In case of a fixed-link phy the cpsw_adjust_link() function is
called directly in phy_device_attach() and configures the MACCONTROL
register. Right after this configuration cpsw_init() is called and
resets the MACCONTROL register.
Fix this by initializing the slave before connecting the phy device in
cpsw_open().
Signed-off-by: Oleg Karfich <oleg.karfich@wago.com>
Link: https://lore.barebox.org/1630414594-10601-1-git-send-email-oleg.karfich@wago.com
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/cpsw.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c index b01e7ac7a8..4a8f9e67d6 100644 --- a/drivers/net/cpsw.c +++ b/drivers/net/cpsw.c @@ -901,13 +901,13 @@ static int cpsw_open(struct eth_device *edev) dev_dbg(&slave->dev, "* %s\n", __func__); + cpsw_slave_init(slave, priv); + ret = phy_device_connect(edev, NULL, slave->phy_id, cpsw_adjust_link, 0, slave->phy_if); if (ret) return ret; - cpsw_slave_init(slave, priv); - return 0; } |