On Thu, Mar 10, 2022 at 10:16 AM Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx> wrote: > > > > On 24/12/2021 16:13, Lad Prabhakar wrote: > > platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static > > allocation of IRQ resources in DT core code, this causes an issue > > Are you saying that we should not be using platform_get_resource(pdev, > IORESOURCE_IRQ, ...) on drivers that support DT? > > > when using hierarchical interrupt domains using "interrupts" property > > in the node as this bypasses the hierarchical setup and messes up the > > irq chaining. > > Should this not be fixed in the DT core itself? > Yes the plan is to fix in the DT core itself (refer [0]). [0] https://patchwork.kernel.org/project/linux-renesas-soc/patch/20211209001056.29774-1-prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx/ > > > > In preparation for removal of static setup of IRQ resource from DT core > > code use platform_get_irq(). > > I would prefer this patch to be part of the series that removes IRQ > resource handling from DT core. > Since there are too many users (which are in different subsystems) getting this all in single series would be a pain. As a result it is split up into individual subsystems. Cheers, Prabhakar > > --srini > > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > > --- > > Hi, > > > > Dropping usage of platform_get_resource() was agreed based on > > the discussion [0]. > > > > [0] https://patchwork.kernel.org/project/linux-renesas-soc/ > > patch/20211209001056.29774-1-prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx/ > > > > Cheers, > > Prabhakar > > --- > > drivers/slimbus/qcom-ngd-ctrl.c | 10 ++++------ > > 1 file changed, 4 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c > > index 7040293c2ee8..0f29a08b4c09 100644 > > --- a/drivers/slimbus/qcom-ngd-ctrl.c > > +++ b/drivers/slimbus/qcom-ngd-ctrl.c > > @@ -1526,13 +1526,11 @@ static int qcom_slim_ngd_ctrl_probe(struct platform_device *pdev) > > if (IS_ERR(ctrl->base)) > > return PTR_ERR(ctrl->base); > > > > - res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); > > - if (!res) { > > - dev_err(&pdev->dev, "no slimbus IRQ resource\n"); > > - return -ENODEV; > > - } > > + ret = platform_get_irq(pdev, 0); > > + if (ret < 0) > > + return ret; > > > > - ret = devm_request_irq(dev, res->start, qcom_slim_ngd_interrupt, > > + ret = devm_request_irq(dev, ret, qcom_slim_ngd_interrupt, > > IRQF_TRIGGER_HIGH, "slim-ngd", ctrl); > > if (ret) { > > dev_err(&pdev->dev, "request IRQ failed\n");