Re: [PATCH] irqchip/renesas-irqc: Use platform_get_irq_optional() to get the interrupt
From: Andy Shevchenko
Date: Sat Dec 25 2021 - 11:46:14 EST
On Thu, Dec 16, 2021 at 9:52 AM Lad Prabhakar
<prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> wrote:
>
> platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
> allocation of IRQ resources in DT core code, this causes an issue
> when using hierarchical interrupt domains using "interrupts" property
> in the node as this bypassed the hierarchical setup and messed up the
> irq chaining.
>
> In preparation for removal of static setup of IRQ resource from DT core
> code use platform_get_irq_optional().
> + ret = platform_get_irq_optional(pdev, k);
> + if (ret == -EPROBE_DEFER)
> + goto err_runtime_pm_disable;
> + if (ret < 0)
> break;
The best approach is
ret = platform_get_irq_optional(...);
if (ret < 0 && ret != -ENXIO)
return ret;
if (ret > 0)
...we got it...
It will allow the future API fix of platform_get_irq_optional() to be
really optional.
--
With Best Regards,
Andy Shevchenko