pinctrl: wpcm450: Correct the fwnode_irq_get() return value check
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 27 Sep 2022 17:55:09 +0000 (20:55 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 4 Oct 2022 07:40:57 +0000 (09:40 +0200)
fwnode_irq_get() can return zero to indicate IRQ mapping errors.
Handle this case by skipping the interrupt resource.

Fixes: a1d1e0e3d80a ("pinctrl: nuvoton: Add driver for WPCM450")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Link: https://lore.kernel.org/r/20220927175509.15695-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/nuvoton/pinctrl-wpcm450.c

index 0dbeb91f0bf27db2098c548c71d3aaea6266ca78..8193b92da4031142c6962760105fb8526235cd26 100644 (file)
@@ -1081,10 +1081,13 @@ static int wpcm450_gpio_register(struct platform_device *pdev,
 
                girq->num_parents = 0;
                for (i = 0; i < WPCM450_NUM_GPIO_IRQS; i++) {
-                       int irq = fwnode_irq_get(child, i);
+                       int irq;
 
+                       irq = fwnode_irq_get(child, i);
                        if (irq < 0)
                                break;
+                       if (!irq)
+                               continue;
 
                        girq->parents[i] = irq;
                        girq->num_parents++;