net: lan743x: Fix PHY reset handling during initialization and WOL
authorThangaraj Samynathan <thangaraj.s@microchip.com>
Mon, 26 May 2025 05:30:48 +0000 (11:00 +0530)
committerJakub Kicinski <kuba@kernel.org>
Wed, 28 May 2025 00:52:01 +0000 (17:52 -0700)
Remove lan743x_phy_init from lan743x_hardware_init as it resets the PHY
registers, causing WOL to fail on subsequent attempts. Add a call to
lan743x_hw_reset_phy in the probe function to ensure the PHY is reset
during device initialization.

Fixes: 23f0703c125be ("lan743x: Add main source files for new lan743x driver")
Signed-off-by: Thangaraj Samynathan <thangaraj.s@microchip.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20250526053048.287095-3-thangaraj.s@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/microchip/lan743x_main.c

index da5bd54208dd544e6daa9e94b1cbe0855c431b46..7f36443832ada3847cb53420da640b021ddef1fd 100644 (file)
@@ -1346,11 +1346,6 @@ static int lan743x_hw_reset_phy(struct lan743x_adapter *adapter)
                                  50000, 1000000);
 }
 
-static int lan743x_phy_init(struct lan743x_adapter *adapter)
-{
-       return lan743x_hw_reset_phy(adapter);
-}
-
 static void lan743x_phy_interface_select(struct lan743x_adapter *adapter)
 {
        u32 id_rev;
@@ -3534,10 +3529,6 @@ static int lan743x_hardware_init(struct lan743x_adapter *adapter,
        if (ret)
                return ret;
 
-       ret = lan743x_phy_init(adapter);
-       if (ret)
-               return ret;
-
        ret = lan743x_ptp_init(adapter);
        if (ret)
                return ret;
@@ -3674,6 +3665,10 @@ static int lan743x_pcidev_probe(struct pci_dev *pdev,
        if (ret)
                goto cleanup_pci;
 
+       ret = lan743x_hw_reset_phy(adapter);
+       if (ret)
+               goto cleanup_pci;
+
        ret = lan743x_hardware_init(adapter, pdev);
        if (ret)
                goto cleanup_pci;