diff options
Diffstat (limited to 'arch/m68k')
-rw-r--r-- | arch/m68k/sun3/sun3ints.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/arch/m68k/sun3/sun3ints.c b/arch/m68k/sun3/sun3ints.c index 20ffee7dc319..1273eb879a15 100644 --- a/arch/m68k/sun3/sun3ints.c +++ b/arch/m68k/sun3/sun3ints.c | |||
@@ -51,14 +51,19 @@ void sun3_disable_irq(unsigned int irq) | |||
51 | 51 | ||
52 | static irqreturn_t sun3_int7(int irq, void *dev_id) | 52 | static irqreturn_t sun3_int7(int irq, void *dev_id) |
53 | { | 53 | { |
54 | unsigned int cnt; | ||
55 | |||
54 | *sun3_intreg |= (1 << irq); | 56 | *sun3_intreg |= (1 << irq); |
55 | if (!(kstat_cpu(0).irqs[irq] % 2000)) | 57 | cnt = kstat_irqs_cpu(irq, 0); |
56 | sun3_leds(led_pattern[(kstat_cpu(0).irqs[irq] % 16000) / 2000]); | 58 | if (!(cnt % 2000)) |
59 | sun3_leds(led_pattern[cnt % 16000 / 2000]); | ||
57 | return IRQ_HANDLED; | 60 | return IRQ_HANDLED; |
58 | } | 61 | } |
59 | 62 | ||
60 | static irqreturn_t sun3_int5(int irq, void *dev_id) | 63 | static irqreturn_t sun3_int5(int irq, void *dev_id) |
61 | { | 64 | { |
65 | unsigned int cnt; | ||
66 | |||
62 | #ifdef CONFIG_SUN3 | 67 | #ifdef CONFIG_SUN3 |
63 | intersil_clear(); | 68 | intersil_clear(); |
64 | #endif | 69 | #endif |
@@ -68,8 +73,9 @@ static irqreturn_t sun3_int5(int irq, void *dev_id) | |||
68 | #endif | 73 | #endif |
69 | xtime_update(1); | 74 | xtime_update(1); |
70 | update_process_times(user_mode(get_irq_regs())); | 75 | update_process_times(user_mode(get_irq_regs())); |
71 | if (!(kstat_cpu(0).irqs[irq] % 20)) | 76 | cnt = kstat_irqs_cpu(irq, 0); |
72 | sun3_leds(led_pattern[(kstat_cpu(0).irqs[irq] % 160) / 20]); | 77 | if (!(cnt % 20)) |
78 | sun3_leds(led_pattern[cnt % 160 / 20]); | ||
73 | return IRQ_HANDLED; | 79 | return IRQ_HANDLED; |
74 | } | 80 | } |
75 | 81 | ||