diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2009-03-30 08:49:44 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2009-03-30 08:49:44 -0400 |
commit | c87e09096dcd1ea3da8dfe434ee694fac51031c8 (patch) | |
tree | d988b5b545173c79ac013977720d62c7d26ec337 /arch/mips/sgi-ip32 | |
parent | 3e168ae286f5203d4b4aae0ae15c0d6282bcdd21 (diff) |
MIPS: Enable GENERIC_HARDIRQS_NO__DO_IRQ for all platforms
__do_IRQ() is deprecated and will go away.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/sgi-ip32')
-rw-r--r-- | arch/mips/sgi-ip32/ip32-irq.c | 63 |
1 files changed, 45 insertions, 18 deletions
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c index 0d6b6663d5f6..0aefc5319a03 100644 --- a/arch/mips/sgi-ip32/ip32-irq.c +++ b/arch/mips/sgi-ip32/ip32-irq.c | |||
@@ -325,16 +325,11 @@ static void mask_and_ack_maceisa_irq(unsigned int irq) | |||
325 | { | 325 | { |
326 | unsigned long mace_int; | 326 | unsigned long mace_int; |
327 | 327 | ||
328 | switch (irq) { | 328 | /* edge triggered */ |
329 | case MACEISA_PARALLEL_IRQ: | 329 | mace_int = mace->perif.ctrl.istat; |
330 | case MACEISA_SERIAL1_TDMAPR_IRQ: | 330 | mace_int &= ~(1 << (irq - MACEISA_AUDIO_SW_IRQ)); |
331 | case MACEISA_SERIAL2_TDMAPR_IRQ: | 331 | mace->perif.ctrl.istat = mace_int; |
332 | /* edge triggered */ | 332 | |
333 | mace_int = mace->perif.ctrl.istat; | ||
334 | mace_int &= ~(1 << (irq - MACEISA_AUDIO_SW_IRQ)); | ||
335 | mace->perif.ctrl.istat = mace_int; | ||
336 | break; | ||
337 | } | ||
338 | disable_maceisa_irq(irq); | 333 | disable_maceisa_irq(irq); |
339 | } | 334 | } |
340 | 335 | ||
@@ -344,7 +339,16 @@ static void end_maceisa_irq(unsigned irq) | |||
344 | enable_maceisa_irq(irq); | 339 | enable_maceisa_irq(irq); |
345 | } | 340 | } |
346 | 341 | ||
347 | static struct irq_chip ip32_maceisa_interrupt = { | 342 | static struct irq_chip ip32_maceisa_level_interrupt = { |
343 | .name = "IP32 MACE ISA", | ||
344 | .ack = disable_maceisa_irq, | ||
345 | .mask = disable_maceisa_irq, | ||
346 | .mask_ack = disable_maceisa_irq, | ||
347 | .unmask = enable_maceisa_irq, | ||
348 | .end = end_maceisa_irq, | ||
349 | }; | ||
350 | |||
351 | static struct irq_chip ip32_maceisa_edge_interrupt = { | ||
348 | .name = "IP32 MACE ISA", | 352 | .name = "IP32 MACE ISA", |
349 | .ack = mask_and_ack_maceisa_irq, | 353 | .ack = mask_and_ack_maceisa_irq, |
350 | .mask = disable_maceisa_irq, | 354 | .mask = disable_maceisa_irq, |
@@ -500,27 +504,50 @@ void __init arch_init_irq(void) | |||
500 | for (irq = CRIME_IRQ_BASE; irq <= IP32_IRQ_MAX; irq++) { | 504 | for (irq = CRIME_IRQ_BASE; irq <= IP32_IRQ_MAX; irq++) { |
501 | switch (irq) { | 505 | switch (irq) { |
502 | case MACE_VID_IN1_IRQ ... MACE_PCI_BRIDGE_IRQ: | 506 | case MACE_VID_IN1_IRQ ... MACE_PCI_BRIDGE_IRQ: |
503 | set_irq_chip(irq, &ip32_mace_interrupt); | 507 | set_irq_chip_and_handler_name(irq,&ip32_mace_interrupt, |
508 | handle_level_irq, "level"); | ||
504 | break; | 509 | break; |
510 | |||
505 | case MACEPCI_SCSI0_IRQ ... MACEPCI_SHARED2_IRQ: | 511 | case MACEPCI_SCSI0_IRQ ... MACEPCI_SHARED2_IRQ: |
506 | set_irq_chip(irq, &ip32_macepci_interrupt); | 512 | set_irq_chip_and_handler_name(irq, |
513 | &ip32_macepci_interrupt, handle_level_irq, | ||
514 | "level"); | ||
507 | break; | 515 | break; |
516 | |||
508 | case CRIME_GBE0_IRQ ... CRIME_GBE3_IRQ: | 517 | case CRIME_GBE0_IRQ ... CRIME_GBE3_IRQ: |
509 | set_irq_chip(irq, &crime_edge_interrupt); | 518 | set_irq_chip_and_handler_name(irq, |
519 | &crime_edge_interrupt, handle_edge_irq, "edge"); | ||
510 | break; | 520 | break; |
511 | case CRIME_CPUERR_IRQ: | 521 | case CRIME_CPUERR_IRQ: |
512 | case CRIME_MEMERR_IRQ: | 522 | case CRIME_MEMERR_IRQ: |
513 | set_irq_chip(irq, &crime_level_interrupt); | 523 | set_irq_chip_and_handler_name(irq, |
524 | &crime_level_interrupt, handle_level_irq, | ||
525 | "level"); | ||
514 | break; | 526 | break; |
527 | |||
515 | case CRIME_RE_EMPTY_E_IRQ ... CRIME_RE_IDLE_E_IRQ: | 528 | case CRIME_RE_EMPTY_E_IRQ ... CRIME_RE_IDLE_E_IRQ: |
516 | case CRIME_SOFT0_IRQ ... CRIME_SOFT2_IRQ: | 529 | case CRIME_SOFT0_IRQ ... CRIME_SOFT2_IRQ: |
517 | set_irq_chip(irq, &crime_edge_interrupt); | 530 | set_irq_chip_and_handler_name(irq, |
531 | &crime_edge_interrupt, handle_edge_irq, "edge"); | ||
518 | break; | 532 | break; |
533 | |||
519 | case CRIME_VICE_IRQ: | 534 | case CRIME_VICE_IRQ: |
520 | set_irq_chip(irq, &crime_edge_interrupt); | 535 | set_irq_chip_and_handler_name(irq, |
536 | &crime_edge_interrupt, handle_edge_irq, "edge"); | ||
537 | break; | ||
538 | |||
539 | case MACEISA_PARALLEL_IRQ: | ||
540 | case MACEISA_SERIAL1_TDMAPR_IRQ: | ||
541 | case MACEISA_SERIAL2_TDMAPR_IRQ: | ||
542 | set_irq_chip_and_handler_name(irq, | ||
543 | &ip32_maceisa_edge_interrupt, handle_edge_irq, | ||
544 | "edge"); | ||
521 | break; | 545 | break; |
546 | |||
522 | default: | 547 | default: |
523 | set_irq_chip(irq, &ip32_maceisa_interrupt); | 548 | set_irq_chip_and_handler_name(irq, |
549 | &ip32_maceisa_level_interrupt, handle_level_irq, | ||
550 | "level"); | ||
524 | break; | 551 | break; |
525 | } | 552 | } |
526 | } | 553 | } |