[PATCH 1/2] platform: make platform_get_irq_optional() optional
    Andy Shevchenko 
    andriy.shevchenko at linux.intel.com
       
    Wed Jan 19 19:58:07 CET 2022
    
    
  
On Mon, Jan 17, 2022 at 09:47:32AM +0100, Uwe Kleine-König wrote:
> On Sun, Jan 16, 2022 at 09:15:20PM +0300, Sergey Shtylyov 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.
> Anyhow, I think if you still want to change platform_get_irq_optional
> you should add a few patches converting some drivers which demonstrates
> the improvement for the callers.
-- 
With Best Regards,
Andy Shevchenko
    
    
More information about the Alsa-devel
mailing list