]> err.no Git - linux-2.6/commitdiff
[POWERPC] Add IRQ remapping hook
authorIshizaki Kou <kou.ishizaki@toshiba.co.jp>
Fri, 12 Jan 2007 00:58:39 +0000 (09:58 +0900)
committerPaul Mackerras <paulus@samba.org>
Wed, 24 Jan 2007 10:13:59 +0000 (21:13 +1100)
This patch adds irq remapping hook. On interrupt mechanism on Beat,
when an irq outlet which has an id which is formerly used is created,
remapping the irq is required.

Signed-off-by: Kou Ishizaki <kou.ishizaki@toshiba.co.jp>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/irq.c
include/asm-powerpc/irq.h

index 0bd8c7665834bf39b5a5b32485e6cc279856f9f5..34dc37e0e369e7ad70aabd898ea080c09a14907e 100644 (file)
@@ -604,6 +604,8 @@ unsigned int irq_create_mapping(struct irq_host *host,
         */
        virq = irq_find_mapping(host, hwirq);
        if (virq != IRQ_NONE) {
+               if (host->ops->remap)
+                       host->ops->remap(host, virq, hwirq);
                pr_debug("irq: -> existing mapping on virq %d\n", virq);
                return virq;
        }
index 46476e9a494ad6d2ec615f562b6a6449b69d4c91..4734cc178db55d17cf2c840893236d49202919df 100644 (file)
@@ -89,6 +89,9 @@ struct irq_host_ops {
        /* Dispose of such a mapping */
        void (*unmap)(struct irq_host *h, unsigned int virq);
 
+       /* Update of such a mapping  */
+       void (*remap)(struct irq_host *h, unsigned int virq, irq_hw_number_t hw);
+
        /* Translate device-tree interrupt specifier from raw format coming
         * from the firmware to a irq_hw_number_t (interrupt line number) and
         * type (sense) that can be passed to set_irq_type(). In the absence