wt., 3 mar 2020 o 10:29 Alexander A Sverdlin <alexander.sverdlin@xxxxxxxxx> napisał(a): > > From: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> > > Existing (irq < 0) condition is always false because adev->irq has unsigned > type and contains 0 in case of failed irq_of_parse_and_map(). Up to now all > the mapping errors were silently ignored. > > Seems that repairing this check would be backwards-incompatible and might > break the probe() for the implementations without IRQ support. Therefore > warn the user instead. > > Signed-off-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> > --- > drivers/gpio/gpio-pl061.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpio/gpio-pl061.c b/drivers/gpio/gpio-pl061.c > index 5df7782..3439120 100644 > --- a/drivers/gpio/gpio-pl061.c > +++ b/drivers/gpio/gpio-pl061.c > @@ -326,10 +326,8 @@ static int pl061_probe(struct amba_device *adev, const struct amba_id *id) > > writeb(0, pl061->base + GPIOIE); /* disable irqs */ > irq = adev->irq[0]; > - if (irq < 0) { > - dev_err(&adev->dev, "invalid IRQ\n"); > - return -ENODEV; > - } > + if (!irq) > + dev_warn(&adev->dev, "IRQ support disabled\n"); > pl061->parent_irq = irq; > > girq = &pl061->gc.irq; > -- > 2.4.6 > What happens later on if irq == 0? Does irq_set_irq_wake() fail? Bart