diff options
-rw-r--r-- | arch/powerpc/kernel/irq.c | 2 | ||||
-rw-r--r-- | include/asm-powerpc/irq.h | 3 |
2 files changed, 5 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 0bd8c7665834..34dc37e0e369 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
@@ -604,6 +604,8 @@ unsigned int irq_create_mapping(struct irq_host *host, | |||
604 | */ | 604 | */ |
605 | virq = irq_find_mapping(host, hwirq); | 605 | virq = irq_find_mapping(host, hwirq); |
606 | if (virq != IRQ_NONE) { | 606 | if (virq != IRQ_NONE) { |
607 | if (host->ops->remap) | ||
608 | host->ops->remap(host, virq, hwirq); | ||
607 | pr_debug("irq: -> existing mapping on virq %d\n", virq); | 609 | pr_debug("irq: -> existing mapping on virq %d\n", virq); |
608 | return virq; | 610 | return virq; |
609 | } | 611 | } |
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h index 46476e9a494a..4734cc178db5 100644 --- a/include/asm-powerpc/irq.h +++ b/include/asm-powerpc/irq.h | |||
@@ -89,6 +89,9 @@ struct irq_host_ops { | |||
89 | /* Dispose of such a mapping */ | 89 | /* Dispose of such a mapping */ |
90 | void (*unmap)(struct irq_host *h, unsigned int virq); | 90 | void (*unmap)(struct irq_host *h, unsigned int virq); |
91 | 91 | ||
92 | /* Update of such a mapping */ | ||
93 | void (*remap)(struct irq_host *h, unsigned int virq, irq_hw_number_t hw); | ||
94 | |||
92 | /* Translate device-tree interrupt specifier from raw format coming | 95 | /* Translate device-tree interrupt specifier from raw format coming |
93 | * from the firmware to a irq_hw_number_t (interrupt line number) and | 96 | * from the firmware to a irq_hw_number_t (interrupt line number) and |
94 | * type (sense) that can be passed to set_irq_type(). In the absence | 97 | * type (sense) that can be passed to set_irq_type(). In the absence |