net: dsa: microchip: enable phy interrupts only if interrupt enabled in dts
authorArun Ramadoss <arun.ramadoss@microchip.com>
Thu, 22 Sep 2022 07:10:24 +0000 (12:40 +0530)
committerJakub Kicinski <kuba@kernel.org>
Mon, 26 Sep 2022 19:41:05 +0000 (12:41 -0700)
In the lan937x_mdio_register function, phy interrupts are enabled
irrespective of irq is enabled in the switch. Now, the check is added to
enable the phy interrupt only if the irq is enabled in the switch.

Signed-off-by: Arun Ramadoss <arun.ramadoss@microchip.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/microchip/lan937x_main.c

index fd5114a09463940ca873a695f66be73a9188153f..c25ac439a9278a70b55d2a1e0cbb7d6569752570 100644 (file)
@@ -235,17 +235,20 @@ static int lan937x_mdio_register(struct ksz_device *dev)
 
        ds->slave_mii_bus = bus;
 
-       ret = lan937x_irq_phy_setup(dev);
-       if (ret) {
-               of_node_put(mdio_np);
-               return ret;
+       if (dev->irq > 0) {
+               ret = lan937x_irq_phy_setup(dev);
+               if (ret) {
+                       of_node_put(mdio_np);
+                       return ret;
+               }
        }
 
        ret = devm_of_mdiobus_register(ds->dev, bus, mdio_np);
        if (ret) {
                dev_err(ds->dev, "unable to register MDIO bus %s\n",
                        bus->id);
-               lan937x_irq_phy_free(dev);
+               if (dev->irq > 0)
+                       lan937x_irq_phy_free(dev);
        }
 
        of_node_put(mdio_np);