[PATCH] powerpc-genirq: port iseries pseudo-PIC to genirq
Benjamin Herrenschmidt
benh at kernel.crashing.org
Tue Jun 13 13:58:39 EST 2006
This patch ports the iSeries pseudo-PIC to genirq
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---
Patch depends on Ingo/Thomas genirq patchset. It's not to be merged
right away, It's being posted here for comments as I may have further
rework.
Index: linux-work/arch/powerpc/platforms/iseries/irq.c
===================================================================
--- linux-work.orig/arch/powerpc/platforms/iseries/irq.c 2006-06-05 17:55:22.000000000 +1000
+++ linux-work/arch/powerpc/platforms/iseries/irq.c 2006-06-07 14:41:55.000000000 +1000
@@ -297,13 +297,13 @@ static void iseries_end_IRQ(unsigned int
(REAL_IRQ_TO_IDSEL(rirq) << 4) + REAL_IRQ_TO_FUNC(rirq));
}
-static hw_irq_controller iSeries_IRQ_handler = {
- .typename = "iSeries irq controller",
- .startup = iseries_startup_IRQ,
- .shutdown = iseries_shutdown_IRQ,
- .enable = iseries_enable_IRQ,
- .disable = iseries_disable_IRQ,
- .end = iseries_end_IRQ
+static struct irq_chip iseries_pic = {
+ .typename = "iSeries irq controller",
+ .startup = iseries_startup_IRQ,
+ .shutdown = iseries_shutdown_IRQ,
+ .unmask = iseries_enable_IRQ,
+ .mask = iseries_disable_IRQ,
+ .eoi = iseries_end_IRQ
};
/*
@@ -322,8 +322,7 @@ int __init iSeries_allocate_IRQ(HvBusNum
realirq = (((((sub_bus << 8) + (bus - 1)) << 3) + (idsel - 1)) << 3)
+ function;
virtirq = virt_irq_create_mapping(realirq);
-
- irq_desc[virtirq].chip = &iSeries_IRQ_handler;
+ set_irq_chip_and_handler(virtirq, &iseries_pic, handle_fasteoi_irq);
return virtirq;
}
More information about the Linuxppc-dev
mailing list