[PATCHv4 02/13] ARM: vic: device tree binding
From: Jamie Iles <hidden>
Date: 2011-11-10 16:28:08
Also in:
linux-devicetree
On Thu, Nov 10, 2011 at 03:20:51PM +0000, Marc Zyngier wrote:
On 10/11/11 14:46, Jamie Iles wrote:quoted
On Fri, Nov 04, 2011 at 01:09:59AM +0000, Jamie Iles wrote:quoted
This adds a device tree binding for the VIC based on the of_irq_init() support. This adds an irqdomain to the vic and always registers all vics in the static vic array rather than for pm only to keep track of the irq domain. struct irq_data::hwirq is used where appropriate rather than runtime masking. v2: - use irq_domain_simple_ops - remove stub implementation of vic_of_init for !CONFIG_OF - Make VIC select IRQ_DOMAIN Reviewed-by: Rob Herring <redacted> Reviewed-by: Grant Likely <redacted> Signed-off-by: Jamie Iles <redacted> --- Documentation/devicetree/bindings/arm/vic.txt | 29 +++++++ arch/arm/common/Kconfig | 1 + arch/arm/common/vic.c | 106 ++++++++++++++++++------- arch/arm/include/asm/hardware/vic.h | 7 ++- 4 files changed, 114 insertions(+), 29 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/vic.txtdiff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c index 01f18a4..e689975 100644 --- a/arch/arm/common/vic.c +++ b/arch/arm/common/vic.c@@ -22,6 +22,10 @@[...]quoted
+#ifdef CONFIG_OF +int __init vic_of_init(struct device_node *node, struct device_node *parent) +{ + void __iomem *regs; + int irq_base; + + if (WARN(parent, "non-root VICs are not supported")) + return -EINVAL; + + regs = of_iomap(node, 0); + if (WARN_ON(!regs)) + return -EIO; + + irq_base = irq_alloc_descs(-1, 0, 32, numa_node_id()); + if (WARN_ON(irq_base < 0)) + goto out_unmap;Hmm, this appears to need linux/export.h for THIS_MODULE now. linux/irq.h has a comment saying it uses a macro to avoid needing an include of export.h there so I guess it needs to go in here instead.Yes, I had to hack it when I tested this series on PB1176 (and of course forgot to send the patch around...). It seems a bit backward to impose including linux/export.h while this file doesn't use any of it directly.
Yeah, but seeing as include/linux/irq.h had a comment saying that they'd explicitly decided to avoid including export.h there I decided it would be simplest to punt it into vic.c and that someone knew better than me! I'll include it in vic.c when I ask you to pull (probably tomorrow). Thanks, Jamie