diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2012-02-24 10:07:06 -0500 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2012-02-24 11:47:23 -0500 |
commit | abd2363f6a5f1030b935e0bdc15cf917313b3b10 (patch) | |
tree | 1f4546497af8162a60573203c5b017e2f7fed1f5 /kernel | |
parent | b4e518547da042fdc65bd4bdafd046fed13337d5 (diff) |
irq_domain/mips: Allow irq_domain on MIPS
This patch makes IRQ_DOMAIN usable on MIPS. It uses an ugly workaround
to preserve current behaviour so that MIPS has time to add irq_domain
registration to the irq controller drivers. The workaround will be
removed in Linux v3.6
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mips@linux-mips.org
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/irq/irqdomain.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c index 25a498eb98a3..af48e59bc2ff 100644 --- a/kernel/irq/irqdomain.c +++ b/kernel/irq/irqdomain.c | |||
@@ -411,6 +411,18 @@ unsigned int irq_create_of_mapping(struct device_node *controller, | |||
411 | 411 | ||
412 | domain = controller ? irq_find_host(controller) : irq_default_domain; | 412 | domain = controller ? irq_find_host(controller) : irq_default_domain; |
413 | if (!domain) { | 413 | if (!domain) { |
414 | #ifdef CONFIG_MIPS | ||
415 | /* | ||
416 | * Workaround to avoid breaking interrupt controller drivers | ||
417 | * that don't yet register an irq_domain. This is temporary | ||
418 | * code. ~~~gcl, Feb 24, 2012 | ||
419 | * | ||
420 | * Scheduled for removal in Linux v3.6. That should be enough | ||
421 | * time. | ||
422 | */ | ||
423 | if (intsize > 0) | ||
424 | return intspec[0]; | ||
425 | #endif | ||
414 | printk(KERN_WARNING "irq: no irq domain found for %s !\n", | 426 | printk(KERN_WARNING "irq: no irq domain found for %s !\n", |
415 | controller->full_name); | 427 | controller->full_name); |
416 | return 0; | 428 | return 0; |