Re: (EXT) Re: [PATCH 1/3] gpio: tqmx86: really make IRQ optional

2021-03-31 Thread Andy Shevchenko
On Wed, Mar 31, 2021 at 3:37 PM Matthias Schiffer
 wrote:
> On Wed, 2021-03-31 at 15:29 +0300, Andy Shevchenko wrote:
> > On Wed, Mar 31, 2021 at 2:37 PM Matthias Schiffer
> >  wrote:

...

> > > -   irq = platform_get_irq(pdev, 0);
> > > -   if (irq < 0)
> > > +   irq = platform_get_irq_optional(pdev, 0);
> > > +   if (irq < 0 && irq != -ENXIO)
> > > return irq;
> >
> > This is a dead code now. I suggest you to do the opposite, i.e.
> > if (irq < 0)
> >   irq = 0;
>
> I don't understand which part of the code is dead now. I assume the
> `return irq` case is still useful for unexpected errors, or things like
> EPROBE_DEFER? I'm not sure if EPROBE_DEFER is relevant for this driver,
> but just ignoring the error code completely doesn't seem right to me.

platform_get_irq() AFAIK won't ever return such a code.
So, basically your conditional is always false.

I would like to see the code path which makes my comment wrong.


-- 
With Best Regards,
Andy Shevchenko


Re: (EXT) Re: [PATCH 1/3] gpio: tqmx86: really make IRQ optional

2021-03-31 Thread Matthias Schiffer
On Wed, 2021-03-31 at 15:29 +0300, Andy Shevchenko wrote:
> On Wed, Mar 31, 2021 at 2:37 PM Matthias Schiffer
>  wrote:
> > 
> > The tqmx86 MFD driver was passing IRQ 0 for "no IRQ" in the past. This
> > causes warnings with newer kernels.
> > 
> > Prepare the gpio-tqmx86 driver for the fixed MFD driver by handling a
> > missing IRQ properly.
> 
> ...
> 
> > -   irq = platform_get_irq(pdev, 0);
> > -   if (irq < 0)
> > +   irq = platform_get_irq_optional(pdev, 0);
> > +   if (irq < 0 && irq != -ENXIO)
> > return irq;
> 
> This is a dead code now. I suggest you to do the opposite, i.e.
> if (irq < 0)
>   irq = 0;

I don't understand which part of the code is dead now. I assume the
`return irq` case is still useful for unexpected errors, or things like
EPROBE_DEFER? I'm not sure if EPROBE_DEFER is relevant for this driver,
but just ignoring the error code completely doesn't seem right to me.



> 
> In such a case below change is not required.
> 
> ...
> 
> > -   if (irq) {
> > +   if (irq > 0) {
> > struct irq_chip *irq_chip = &gpio->irq_chip;
> > u8 irq_status;
> 
>