diff options
Diffstat (limited to 'arch/sparc/kernel')
-rw-r--r-- | arch/sparc/kernel/entry.h | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/irq_32.c | 7 | ||||
-rw-r--r-- | arch/sparc/kernel/kernel.h | 11 | ||||
-rw-r--r-- | arch/sparc/kernel/sun4d_irq.c | 2 |
4 files changed, 19 insertions, 5 deletions
diff --git a/arch/sparc/kernel/entry.h b/arch/sparc/kernel/entry.h index 06db4f18e453..4f53a2395ac6 100644 --- a/arch/sparc/kernel/entry.h +++ b/arch/sparc/kernel/entry.h | |||
@@ -5,6 +5,9 @@ | |||
5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
6 | #include <linux/init.h> | 6 | #include <linux/init.h> |
7 | 7 | ||
8 | /* irq */ | ||
9 | extern void handler_irq(int irq, struct pt_regs *regs); | ||
10 | |||
8 | #ifdef CONFIG_SPARC32 | 11 | #ifdef CONFIG_SPARC32 |
9 | /* traps */ | 12 | /* traps */ |
10 | extern void do_hw_interrupt(struct pt_regs *regs, unsigned long type); | 13 | extern void do_hw_interrupt(struct pt_regs *regs, unsigned long type); |
@@ -219,7 +222,6 @@ struct ino_bucket { | |||
219 | extern struct ino_bucket *ivector_table; | 222 | extern struct ino_bucket *ivector_table; |
220 | extern unsigned long ivector_table_pa; | 223 | extern unsigned long ivector_table_pa; |
221 | 224 | ||
222 | extern void handler_irq(int irq, struct pt_regs *regs); | ||
223 | extern void init_irqwork_curcpu(void); | 225 | extern void init_irqwork_curcpu(void); |
224 | extern void __cpuinit sun4v_register_mondo_queues(int this_cpu); | 226 | extern void __cpuinit sun4v_register_mondo_queues(int this_cpu); |
225 | 227 | ||
diff --git a/arch/sparc/kernel/irq_32.c b/arch/sparc/kernel/irq_32.c index 93e1d1c65290..f3488c45d57a 100644 --- a/arch/sparc/kernel/irq_32.c +++ b/arch/sparc/kernel/irq_32.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #include <asm/cacheflush.h> | 46 | #include <asm/cacheflush.h> |
47 | #include <asm/irq_regs.h> | 47 | #include <asm/irq_regs.h> |
48 | 48 | ||
49 | #include "kernel.h" | ||
49 | #include "irq.h" | 50 | #include "irq.h" |
50 | 51 | ||
51 | #ifdef CONFIG_SMP | 52 | #ifdef CONFIG_SMP |
@@ -592,19 +593,19 @@ EXPORT_SYMBOL(request_irq); | |||
592 | 593 | ||
593 | void disable_irq_nosync(unsigned int irq) | 594 | void disable_irq_nosync(unsigned int irq) |
594 | { | 595 | { |
595 | return __disable_irq(irq); | 596 | __disable_irq(irq); |
596 | } | 597 | } |
597 | EXPORT_SYMBOL(disable_irq_nosync); | 598 | EXPORT_SYMBOL(disable_irq_nosync); |
598 | 599 | ||
599 | void disable_irq(unsigned int irq) | 600 | void disable_irq(unsigned int irq) |
600 | { | 601 | { |
601 | return __disable_irq(irq); | 602 | __disable_irq(irq); |
602 | } | 603 | } |
603 | EXPORT_SYMBOL(disable_irq); | 604 | EXPORT_SYMBOL(disable_irq); |
604 | 605 | ||
605 | void enable_irq(unsigned int irq) | 606 | void enable_irq(unsigned int irq) |
606 | { | 607 | { |
607 | return __enable_irq(irq); | 608 | __enable_irq(irq); |
608 | } | 609 | } |
609 | 610 | ||
610 | EXPORT_SYMBOL(enable_irq); | 611 | EXPORT_SYMBOL(enable_irq); |
diff --git a/arch/sparc/kernel/kernel.h b/arch/sparc/kernel/kernel.h index 48e703714baa..81a972e8d8ea 100644 --- a/arch/sparc/kernel/kernel.h +++ b/arch/sparc/kernel/kernel.h | |||
@@ -1,5 +1,8 @@ | |||
1 | #ifndef __SPARC_KERNEL_H | 1 | #ifndef __SPARC_KERNEL_H |
2 | #define __SPARC_KERNEL_H | 2 | #define __SPARC_KERNEL_H |
3 | |||
4 | #include <linux/interrupt.h> | ||
5 | |||
3 | /* cpu.c */ | 6 | /* cpu.c */ |
4 | extern const char *sparc_cpu_type; | 7 | extern const char *sparc_cpu_type; |
5 | extern const char *sparc_fpu_type; | 8 | extern const char *sparc_fpu_type; |
@@ -15,6 +18,14 @@ extern void handle_hw_divzero(struct pt_regs *regs, unsigned long pc, | |||
15 | unsigned long npc, unsigned long psr); | 18 | unsigned long npc, unsigned long psr); |
16 | /* muldiv.c */ | 19 | /* muldiv.c */ |
17 | extern int do_user_muldiv (struct pt_regs *, unsigned long); | 20 | extern int do_user_muldiv (struct pt_regs *, unsigned long); |
21 | |||
22 | /* irq_32.c */ | ||
23 | extern struct irqaction static_irqaction[]; | ||
24 | extern int static_irq_count; | ||
25 | extern spinlock_t irq_action_lock; | ||
26 | |||
27 | extern void unexpected_irq(int irq, void *dev_id, struct pt_regs * regs); | ||
28 | |||
18 | #else /* CONFIG_SPARC32 */ | 29 | #else /* CONFIG_SPARC32 */ |
19 | #endif /* CONFIG_SPARC32 */ | 30 | #endif /* CONFIG_SPARC32 */ |
20 | #endif /* !(__SPARC_KERNEL_H) */ | 31 | #endif /* !(__SPARC_KERNEL_H) */ |
diff --git a/arch/sparc/kernel/sun4d_irq.c b/arch/sparc/kernel/sun4d_irq.c index 1c98821e1a64..3369fef5b4b3 100644 --- a/arch/sparc/kernel/sun4d_irq.c +++ b/arch/sparc/kernel/sun4d_irq.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <asm/cacheflush.h> | 40 | #include <asm/cacheflush.h> |
41 | #include <asm/irq_regs.h> | 41 | #include <asm/irq_regs.h> |
42 | 42 | ||
43 | #include "kernel.h" | ||
43 | #include "irq.h" | 44 | #include "irq.h" |
44 | 45 | ||
45 | /* If you trust current SCSI layer to handle different SCSI IRQs, enable this. I don't trust it... -jj */ | 46 | /* If you trust current SCSI layer to handle different SCSI IRQs, enable this. I don't trust it... -jj */ |
@@ -58,7 +59,6 @@ static struct sun4d_timer_regs __iomem *sun4d_timers; | |||
58 | #define TIMER_IRQ 10 | 59 | #define TIMER_IRQ 10 |
59 | 60 | ||
60 | #define MAX_STATIC_ALLOC 4 | 61 | #define MAX_STATIC_ALLOC 4 |
61 | extern struct irqaction static_irqaction[MAX_STATIC_ALLOC]; | ||
62 | extern int static_irq_count; | 62 | extern int static_irq_count; |
63 | static unsigned char sbus_tid[32]; | 63 | static unsigned char sbus_tid[32]; |
64 | 64 | ||