aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc/kernel')
-rw-r--r--arch/sparc/kernel/entry.h4
-rw-r--r--arch/sparc/kernel/irq_32.c7
-rw-r--r--arch/sparc/kernel/kernel.h11
-rw-r--r--arch/sparc/kernel/sun4d_irq.c2
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 */
9extern void handler_irq(int irq, struct pt_regs *regs);
10
8#ifdef CONFIG_SPARC32 11#ifdef CONFIG_SPARC32
9/* traps */ 12/* traps */
10extern void do_hw_interrupt(struct pt_regs *regs, unsigned long type); 13extern void do_hw_interrupt(struct pt_regs *regs, unsigned long type);
@@ -219,7 +222,6 @@ struct ino_bucket {
219extern struct ino_bucket *ivector_table; 222extern struct ino_bucket *ivector_table;
220extern unsigned long ivector_table_pa; 223extern unsigned long ivector_table_pa;
221 224
222extern void handler_irq(int irq, struct pt_regs *regs);
223extern void init_irqwork_curcpu(void); 225extern void init_irqwork_curcpu(void);
224extern void __cpuinit sun4v_register_mondo_queues(int this_cpu); 226extern 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
593void disable_irq_nosync(unsigned int irq) 594void disable_irq_nosync(unsigned int irq)
594{ 595{
595 return __disable_irq(irq); 596 __disable_irq(irq);
596} 597}
597EXPORT_SYMBOL(disable_irq_nosync); 598EXPORT_SYMBOL(disable_irq_nosync);
598 599
599void disable_irq(unsigned int irq) 600void disable_irq(unsigned int irq)
600{ 601{
601 return __disable_irq(irq); 602 __disable_irq(irq);
602} 603}
603EXPORT_SYMBOL(disable_irq); 604EXPORT_SYMBOL(disable_irq);
604 605
605void enable_irq(unsigned int irq) 606void enable_irq(unsigned int irq)
606{ 607{
607 return __enable_irq(irq); 608 __enable_irq(irq);
608} 609}
609 610
610EXPORT_SYMBOL(enable_irq); 611EXPORT_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 */
4extern const char *sparc_cpu_type; 7extern const char *sparc_cpu_type;
5extern const char *sparc_fpu_type; 8extern 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 */
17extern int do_user_muldiv (struct pt_regs *, unsigned long); 20extern int do_user_muldiv (struct pt_regs *, unsigned long);
21
22/* irq_32.c */
23extern struct irqaction static_irqaction[];
24extern int static_irq_count;
25extern spinlock_t irq_action_lock;
26
27extern 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
61extern struct irqaction static_irqaction[MAX_STATIC_ALLOC];
62extern int static_irq_count; 62extern int static_irq_count;
63static unsigned char sbus_tid[32]; 63static unsigned char sbus_tid[32];
64 64