summaryrefslogtreecommitdiffstats
path: root/drivers/of
diff options
context:
space:
mode:
authorLad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>2022-03-16 20:06:33 +0000
committerRob Herring <robh@kernel.org>2022-04-04 19:55:03 -0500
commita1a2b7125e1079cfcc13a116aa3af3df2f9e002b (patch)
treec86217661deca295f5d9a5093f75318f33e07f68 /drivers/of
parent7a150b0d850e37e7bdfc87459edd0ff302f67478 (diff)
downloadlinux-stable-a1a2b7125e1079cfcc13a116aa3af3df2f9e002b.tar.gz
linux-stable-a1a2b7125e1079cfcc13a116aa3af3df2f9e002b.tar.bz2
linux-stable-a1a2b7125e1079cfcc13a116aa3af3df2f9e002b.zip
of/platform: Drop static setup of IRQ resource from DT core
Now that all the DT drivers have switched to platform_get_irq() we can now safely drop the static setup of IRQ resource from DT core code. With the above change hierarchical setup of irq domains is no longer bypassed and thus allowing hierarchical interrupt domains to describe interrupts using "interrupts" DT property. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com> Acked-by: Marc Zyngier <maz@kernel.org> Tested-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20220316200633.28974-1-prabhakar.mahadev-lad.rj@bp.renesas.com
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/platform.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index a16b74f32aa9..fdc8491eed86 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -114,35 +114,31 @@ struct platform_device *of_device_alloc(struct device_node *np,
struct device *parent)
{
struct platform_device *dev;
- int rc, i, num_reg = 0, num_irq;
+ int rc, i, num_reg = 0;
struct resource *res, temp_res;
dev = platform_device_alloc("", PLATFORM_DEVID_NONE);
if (!dev)
return NULL;
- /* count the io and irq resources */
+ /* count the io resources */
while (of_address_to_resource(np, num_reg, &temp_res) == 0)
num_reg++;
- num_irq = of_irq_count(np);
/* Populate the resource table */
- if (num_irq || num_reg) {
- res = kcalloc(num_irq + num_reg, sizeof(*res), GFP_KERNEL);
+ if (num_reg) {
+ res = kcalloc(num_reg, sizeof(*res), GFP_KERNEL);
if (!res) {
platform_device_put(dev);
return NULL;
}
- dev->num_resources = num_reg + num_irq;
+ dev->num_resources = num_reg;
dev->resource = res;
for (i = 0; i < num_reg; i++, res++) {
rc = of_address_to_resource(np, i, res);
WARN_ON(rc);
}
- if (of_irq_to_resource_table(np, res, num_irq) != num_irq)
- pr_debug("not all legacy IRQ resources mapped for %pOFn\n",
- np);
}
dev->dev.of_node = of_node_get(np);