diff options
Diffstat (limited to 'arch/mips/jazz/irq.c')
| -rw-r--r-- | arch/mips/jazz/irq.c | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/arch/mips/jazz/irq.c b/arch/mips/jazz/irq.c index d5bd6b3a0933..5c4f50cdf157 100644 --- a/arch/mips/jazz/irq.c +++ b/arch/mips/jazz/irq.c | |||
| @@ -28,14 +28,6 @@ static void enable_r4030_irq(unsigned int irq) | |||
| 28 | spin_unlock_irqrestore(&r4030_lock, flags); | 28 | spin_unlock_irqrestore(&r4030_lock, flags); |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | static unsigned int startup_r4030_irq(unsigned int irq) | ||
| 32 | { | ||
| 33 | enable_r4030_irq(irq); | ||
| 34 | return 0; /* never anything pending */ | ||
| 35 | } | ||
| 36 | |||
| 37 | #define shutdown_r4030_irq disable_r4030_irq | ||
| 38 | |||
| 39 | void disable_r4030_irq(unsigned int irq) | 31 | void disable_r4030_irq(unsigned int irq) |
| 40 | { | 32 | { |
| 41 | unsigned int mask = ~(1 << (irq - JAZZ_PARALLEL_IRQ)); | 33 | unsigned int mask = ~(1 << (irq - JAZZ_PARALLEL_IRQ)); |
| @@ -47,8 +39,6 @@ void disable_r4030_irq(unsigned int irq) | |||
| 47 | spin_unlock_irqrestore(&r4030_lock, flags); | 39 | spin_unlock_irqrestore(&r4030_lock, flags); |
| 48 | } | 40 | } |
| 49 | 41 | ||
| 50 | #define mask_and_ack_r4030_irq disable_r4030_irq | ||
| 51 | |||
| 52 | static void end_r4030_irq(unsigned int irq) | 42 | static void end_r4030_irq(unsigned int irq) |
| 53 | { | 43 | { |
| 54 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | 44 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) |
| @@ -57,11 +47,10 @@ static void end_r4030_irq(unsigned int irq) | |||
| 57 | 47 | ||
| 58 | static struct irq_chip r4030_irq_type = { | 48 | static struct irq_chip r4030_irq_type = { |
| 59 | .typename = "R4030", | 49 | .typename = "R4030", |
| 60 | .startup = startup_r4030_irq, | 50 | .ack = disable_r4030_irq, |
| 61 | .shutdown = shutdown_r4030_irq, | 51 | .mask = disable_r4030_irq, |
| 62 | .enable = enable_r4030_irq, | 52 | .mask_ack = disable_r4030_irq, |
| 63 | .disable = disable_r4030_irq, | 53 | .unmask = enable_r4030_irq, |
| 64 | .ack = mask_and_ack_r4030_irq, | ||
| 65 | .end = end_r4030_irq, | 54 | .end = end_r4030_irq, |
| 66 | }; | 55 | }; |
| 67 | 56 | ||
| @@ -69,12 +58,8 @@ void __init init_r4030_ints(void) | |||
| 69 | { | 58 | { |
| 70 | int i; | 59 | int i; |
| 71 | 60 | ||
| 72 | for (i = JAZZ_PARALLEL_IRQ; i <= JAZZ_TIMER_IRQ; i++) { | 61 | for (i = JAZZ_PARALLEL_IRQ; i <= JAZZ_TIMER_IRQ; i++) |
| 73 | irq_desc[i].status = IRQ_DISABLED; | 62 | set_irq_chip_and_handler(i, &r4030_irq_type, handle_level_irq); |
| 74 | irq_desc[i].action = 0; | ||
| 75 | irq_desc[i].depth = 1; | ||
| 76 | irq_desc[i].chip = &r4030_irq_type; | ||
| 77 | } | ||
| 78 | 63 | ||
| 79 | r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, 0); | 64 | r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, 0); |
| 80 | r4030_read_reg16(JAZZ_IO_IRQ_SOURCE); /* clear pending IRQs */ | 65 | r4030_read_reg16(JAZZ_IO_IRQ_SOURCE); /* clear pending IRQs */ |
