Thread (39 messages) 39 messages, 6 authors, 2012-02-21

Re: [PATCH v5 00/27] irq_domain generalization and rework

From: Russell King - ARM Linux <hidden>
Date: 2012-02-17 17:56:22
Also in: linux-arm-kernel, linuxppc-dev, lkml

On Fri, Feb 17, 2012 at 06:42:31PM +0100, Cousson, Benoit wrote:
Hi Grant,

On 2/16/2012 11:52 PM, Andrew Morton wrote:
quoted
On Thu, 16 Feb 2012 02:09:01 -0700
Grant Likely[off-list ref]  wrote:
quoted
This series generalizes the "irq_host" infrastructure from powerpc
so that it can be used by all architectures and renames it to "irq_domain".
drivers/mfd/twl-core.c is fairly horked on i386 allmodconfig:

drivers/mfd/twl-core.c: In function 'twl_probe':
drivers/mfd/twl-core.c:1218: error: implicit declaration of function 'irq_alloc_descs'
drivers/mfd/twl-core.c:1226: error: implicit declaration of function 'irq_domain_add_legacy'
drivers/mfd/twl-core.c:1227: error: 'irq_domain_simple_ops' undeclared (first use in this function)
drivers/mfd/twl-core.c:1227: error: (Each undeclared identifier is reported only once
drivers/mfd/twl-core.c:1227: error: for each function it appears in.)


This is today's linux-next so it has rmk's "ARM: omap: fix broken
twl-core dependencies and ifdefs" in there, which looks like it
attempts to repair this stuff.
If we cannot assume this driver will be used only on architecture that does support IRQ_DOMAIN, we have to keep the #ifdef and then add the missing linux/irq.h.

Since this driver is using IRQ_DOMAIN only for Device Tree support, we can still avoid using irq_domain_add_legacy for the legacy non-DT case.
That's too bad because I was expecting to use irq_domain to clean the cascading IRQ scheme used in that driver, but that can wait.

The fix is trivial, but here it is just in case.
...
quoted hunk ↗ jump to hunk
@@ -1237,8 +1238,10 @@ twl_probe(struct i2c_client *client, const struct i2c_device_id *id)
 
 	pdata->irq_base = status;
 	pdata->irq_end = pdata->irq_base + nr_irqs;
+#ifdef IRQ_DOMAIN
 	irq_domain_add_legacy(node, nr_irqs, pdata->irq_base, 0,
 			      &irq_domain_simple_ops, NULL);
+#endif
Do you really need this?  If you've tested this, then apparantly the answer
is no, because it won't ever be built like that.  (You're missing a
CONFIG_ prefix.)

Maybe the only solution to the x86 problem is to ensure that the driver
includes linux/irq.h ?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help