net: stmmac: platform: Fix misleading interrupt error msg
authorMarkus Fuchs <mklntf@gmail.com>
Fri, 6 Mar 2020 16:38:48 +0000 (17:38 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 15 Mar 2020 04:00:28 +0000 (21:00 -0700)
Not every stmmac based platform makes use of the eth_wake_irq or eth_lpi
interrupts. Use the platform_get_irq_byname_optional variant for these
interrupts, so no error message is displayed, if they can't be found.
Rather print an information to hint something might be wrong to assist
debugging on platforms which use these interrupts.

Signed-off-by: Markus Fuchs <mklntf@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c

index d10ac54bf385adb1e968a28cc9593397d56c1156..13fafd905db87c6f6718ed137b755fb0b3c376b2 100644 (file)
@@ -663,16 +663,22 @@ int stmmac_get_platform_resources(struct platform_device *pdev,
         * In case the wake up interrupt is not passed from the platform
         * so the driver will continue to use the mac irq (ndev->irq)
         */
-       stmmac_res->wol_irq = platform_get_irq_byname(pdev, "eth_wake_irq");
+       stmmac_res->wol_irq =
+               platform_get_irq_byname_optional(pdev, "eth_wake_irq");
        if (stmmac_res->wol_irq < 0) {
                if (stmmac_res->wol_irq == -EPROBE_DEFER)
                        return -EPROBE_DEFER;
+               dev_info(&pdev->dev, "IRQ eth_wake_irq not found\n");
                stmmac_res->wol_irq = stmmac_res->irq;
        }
 
-       stmmac_res->lpi_irq = platform_get_irq_byname(pdev, "eth_lpi");
-       if (stmmac_res->lpi_irq == -EPROBE_DEFER)
-               return -EPROBE_DEFER;
+       stmmac_res->lpi_irq =
+               platform_get_irq_byname_optional(pdev, "eth_lpi");
+       if (stmmac_res->lpi_irq < 0) {
+               if (stmmac_res->lpi_irq == -EPROBE_DEFER)
+                       return -EPROBE_DEFER;
+               dev_info(&pdev->dev, "IRQ eth_lpi not found\n");
+       }
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        stmmac_res->addr = devm_ioremap_resource(&pdev->dev, res);