All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] net: phy: fix phy_init_hw fixup handling
@ 2018-12-23 14:00 Heiner Kallweit
  2018-12-23 17:07 ` Andrew Lunn
  2018-12-24 22:23 ` David Miller
  0 siblings, 2 replies; 8+ messages in thread
From: Heiner Kallweit @ 2018-12-23 14:00 UTC (permalink / raw)
  To: Andrew Lunn, Florian Fainelli, David Miller; +Cc: netdev@vger.kernel.org

Currently we return immediately if callback config_init isn't defined.
This prevents the fixups from being executed. I see no dependency
between fixups and config_init, therefore change the function to
run the fixups also if config_init isn't defined.

Fixes: 2f5cb43406d0 ("phylib: Properly reinitialize PHYs after hibernation")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/net/phy/phy_device.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index e10ac6075..07b1e6751 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1035,20 +1035,22 @@ int phy_init_hw(struct phy_device *phydev)
 	/* Deassert the reset signal */
 	phy_device_reset(phydev, 0);
 
-	if (!phydev->drv || !phydev->drv->config_init)
+	if (!phydev->drv)
 		return 0;
 
 	if (phydev->drv->soft_reset)
 		ret = phydev->drv->soft_reset(phydev);
-
-	if (ret < 0)
+	if (ret)
 		return ret;
 
 	ret = phy_scan_fixups(phydev);
-	if (ret < 0)
+	if (ret)
 		return ret;
 
-	return phydev->drv->config_init(phydev);
+	if (phydev->drv->config_init)
+		ret = phydev->drv->config_init(phydev);
+
+	return ret;
 }
 EXPORT_SYMBOL(phy_init_hw);
 
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-12-25 15:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-12-23 14:00 [PATCH net] net: phy: fix phy_init_hw fixup handling Heiner Kallweit
2018-12-23 17:07 ` Andrew Lunn
2018-12-23 17:23   ` Heiner Kallweit
2018-12-23 17:28     ` Andrew Lunn
2018-12-23 17:30       ` Heiner Kallweit
2018-12-24 22:23 ` David Miller
2018-12-25  8:30   ` Heiner Kallweit
2018-12-25 15:59     ` David Miller

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.