This patch converts Microblaze to use the irq_domain remapper and getaway from hard coding the offset between hwirq number and the linux irqnumber space. This also paves the way for multiple interrupt controllers.

-/* This type is the placeholder for a hardware interrupt number. It has to- * be big enough to enclose whatever representation is used by a given- * platform.- */-typedef unsigned long irq_hw_number_t;--extern unsigned int nr_irq;- struct pt_regs; extern void do_IRQ(struct pt_regs *regs);

-/** FIXME - not implement- * irq_dispose_mapping - Unmap an interrupt- * @virq: linux virq number of the interrupt to unmap- */-static inline void irq_dispose_mapping(unsigned int virq)-{- return;-}--struct irq_domain;--/**- * irq_create_mapping - Map a hardware interrupt into linux virq space- * @host: host owning this hardware interrupt or NULL for default host- * @hwirq: hardware irq number in that host space- *- * Only one mapping per hardware interrupt is permitted. Returns a linux- * virq number.- * If the sense/trigger is to be specified, set_irq_type() should be called- * on the number returned from that call.- */-extern unsigned int irq_create_mapping(struct irq_domain *host,- irq_hw_number_t hwirq);+/* should be defined in each interrupt controller driver */+extern unsigned int get_irq(void);