aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/iseries/irq.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2006-07-03 05:32:51 -0400
committerPaul Mackerras <paulus@samba.org>2006-07-03 05:55:12 -0400
commitb9e5b4e6a991a5a6d521f2e20a65835404b4169f (patch)
treea0ac972faae4bf9133f576d842667bb134190341 /arch/powerpc/platforms/iseries/irq.c
parent5a43a066b11ac2fe84cf67307f20b83bea390f83 (diff)
[POWERPC] Use the genirq framework
This adapts the generic powerpc interrupt handling code, and all of the platforms except for the embedded 6xx machines, to use the new genirq framework. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/iseries/irq.c')
-rw-r--r--arch/powerpc/platforms/iseries/irq.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/powerpc/platforms/iseries/irq.c b/arch/powerpc/platforms/iseries/irq.c
index f70e820e7304..7fb6a08786c0 100644
--- a/arch/powerpc/platforms/iseries/irq.c
+++ b/arch/powerpc/platforms/iseries/irq.c
@@ -297,13 +297,13 @@ static void iseries_end_IRQ(unsigned int irq)
297 (REAL_IRQ_TO_IDSEL(rirq) << 4) + REAL_IRQ_TO_FUNC(rirq)); 297 (REAL_IRQ_TO_IDSEL(rirq) << 4) + REAL_IRQ_TO_FUNC(rirq));
298} 298}
299 299
300static hw_irq_controller iSeries_IRQ_handler = { 300static struct irq_chip iseries_pic = {
301 .typename = "iSeries irq controller", 301 .typename = "iSeries irq controller",
302 .startup = iseries_startup_IRQ, 302 .startup = iseries_startup_IRQ,
303 .shutdown = iseries_shutdown_IRQ, 303 .shutdown = iseries_shutdown_IRQ,
304 .enable = iseries_enable_IRQ, 304 .unmask = iseries_enable_IRQ,
305 .disable = iseries_disable_IRQ, 305 .mask = iseries_disable_IRQ,
306 .end = iseries_end_IRQ 306 .eoi = iseries_end_IRQ
307}; 307};
308 308
309/* 309/*
@@ -322,8 +322,7 @@ int __init iSeries_allocate_IRQ(HvBusNumber bus,
322 realirq = (((((sub_bus << 8) + (bus - 1)) << 3) + (idsel - 1)) << 3) 322 realirq = (((((sub_bus << 8) + (bus - 1)) << 3) + (idsel - 1)) << 3)
323 + function; 323 + function;
324 virtirq = virt_irq_create_mapping(realirq); 324 virtirq = virt_irq_create_mapping(realirq);
325 325 set_irq_chip_and_handler(virtirq, &iseries_pic, handle_fasteoi_irq);
326 irq_desc[virtirq].chip = &iSeries_IRQ_handler;
327 return virtirq; 326 return virtirq;
328} 327}
329 328