Re: [PATCH 2/2] watchdog: stm32_iwdg: Propagate -EPROBE_DEFER from IRQ lookup
Guenter Roeck <[email protected]>
| Newsgroups | org.kernel.vger.linux-watchdog,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 8/5/26 23:28, [email protected] wrote: > From: bui duc phuc <[email protected]> > > platform_get_irq_optional() does not returns 0. It returns a positive > IRQ number on success or a negative error code on failure. > > Return -EPROBE_DEFER from platform_get_irq_optional() so the driver is > re-probed when the interrupt resource becomes available instead of > continuing probe without an IRQ. > > Signed-off-by: bui duc phuc <[email protected]> > --- > drivers/watchdog/stm32_iwdg.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/watchdog/stm32_iwdg.c b/drivers/watchdog/stm32_iwdg.c > index b356a272ff9a..102f51084957 100644 > --- a/drivers/watchdog/stm32_iwdg.c > +++ b/drivers/watchdog/stm32_iwdg.c > @@ -287,7 +287,9 @@ static int stm32_iwdg_irq_init(struct platform_device *pdev, > return 0; > > irq = platform_get_irq_optional(pdev, 0); > - if (irq <= 0) > + if (irq == -EPROBE_DEFER) > + return irq; > + if (irq < 0) > return 0; if (irq < 0) { if (irq != -ENXIO) return irq; return 0; } platform_get_irq_optional() does not return 0. and -ENXIO is returned if there is no interrupt. Guenter