From 2b9ba2f5c60565798040cce4c3f4140a512fac0b Mon Sep 17 00:00:00 2001 From: "Karfich, Oleg" Date: Tue, 31 Aug 2021 12:57:01 +0000 Subject: 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 Link: https://lore.barebox.org/1630414594-10601-1-git-send-email-oleg.karfich@wago.com Signed-off-by: Sascha Hauer --- drivers/net/cpsw.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'drivers/net') 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; } -- cgit v1.2.3