Re: [PATCH 1/2] platform: make platform_get_irq_optional() optional

Sergey Shtylyov
2022-01-19T19:50:12Z

On 1/19/22 9:58 PM, Andy Shevchenko wrote:

[...]
>> Because with your change we have:
>>
>> - < 0 -> error
>> - == 0 -> no irq
>> - > 0 -> irq
>>
>> For my part I'd say this doesn't justify the change, but at least I
>> could better life with the reasoning. If you start at:
>>
>> irq = platform_get_irq_optional(...)
>> if (irq < 0 && irq != -ENXIO)
>> return irq
>> else if (irq > 0)
>> setup_irq(irq);
>> else
>> setup_polling()
>>
>> I'd change that to
>>
>> irq = platform_get_irq_optional(...)
>> if (irq > 0) /* or >= 0 ? */
>> setup_irq(irq)
>> else if (irq == -ENXIO)
>> setup_polling()
>> else
>> return irq
>>
>> This still has to mention -ENXIO, but this is ok and checking for 0 just
>> hardcodes a different return value.
>
> It's what we are against of. The idea is to have
>
> irq = platform_get_irq_optional(...)
> if (irq < 0) // we do not care about special cookies here
> return irq;
>
> if (irq)
> setup_irq(irq)
> else
> setup_polling()
>
> See the difference? Your code is convoluted.

... and it's longer when you look at the translated code! :-)

[...]

MBR, Sergey