diff options
Diffstat (limited to 'arch/mips/dec/kn02xa-berr.c')
-rw-r--r-- | arch/mips/dec/kn02xa-berr.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/mips/dec/kn02xa-berr.c b/arch/mips/dec/kn02xa-berr.c index c29909566628..6cd3f94f79fe 100644 --- a/arch/mips/dec/kn02xa-berr.c +++ b/arch/mips/dec/kn02xa-berr.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
21 | #include <linux/types.h> | 21 | #include <linux/types.h> |
22 | 22 | ||
23 | #include <asm/addrspace.h> | ||
23 | #include <asm/system.h> | 24 | #include <asm/system.h> |
24 | #include <asm/traps.h> | 25 | #include <asm/traps.h> |
25 | 26 | ||
@@ -29,8 +30,8 @@ | |||
29 | 30 | ||
30 | static inline void dec_kn02xa_be_ack(void) | 31 | static inline void dec_kn02xa_be_ack(void) |
31 | { | 32 | { |
32 | volatile u32 *mer = (void *)KN02XA_MER; | 33 | volatile u32 *mer = (void *)CKSEG1ADDR(KN02XA_MER); |
33 | volatile u32 *mem_intr = (void *)KN02XA_MEM_INTR; | 34 | volatile u32 *mem_intr = (void *)CKSEG1ADDR(KN02XA_MEM_INTR); |
34 | 35 | ||
35 | *mer = KN02CA_MER_INTR; /* Clear errors; keep the ARC IRQ. */ | 36 | *mer = KN02CA_MER_INTR; /* Clear errors; keep the ARC IRQ. */ |
36 | *mem_intr = 0; /* Any write clears the bus IRQ. */ | 37 | *mem_intr = 0; /* Any write clears the bus IRQ. */ |
@@ -40,8 +41,8 @@ static inline void dec_kn02xa_be_ack(void) | |||
40 | static int dec_kn02xa_be_backend(struct pt_regs *regs, int is_fixup, | 41 | static int dec_kn02xa_be_backend(struct pt_regs *regs, int is_fixup, |
41 | int invoker) | 42 | int invoker) |
42 | { | 43 | { |
43 | volatile u32 *kn02xa_mer = (void *)KN02XA_MER; | 44 | volatile u32 *kn02xa_mer = (void *)CKSEG1ADDR(KN02XA_MER); |
44 | volatile u32 *kn02xa_ear = (void *)KN02XA_EAR; | 45 | volatile u32 *kn02xa_ear = (void *)CKSEG1ADDR(KN02XA_EAR); |
45 | 46 | ||
46 | static const char excstr[] = "exception"; | 47 | static const char excstr[] = "exception"; |
47 | static const char intstr[] = "interrupt"; | 48 | static const char intstr[] = "interrupt"; |
@@ -126,7 +127,7 @@ irqreturn_t dec_kn02xa_be_interrupt(int irq, void *dev_id, | |||
126 | 127 | ||
127 | void __init dec_kn02xa_be_init(void) | 128 | void __init dec_kn02xa_be_init(void) |
128 | { | 129 | { |
129 | volatile u32 *mbcs = (void *)(KN4K_SLOT_BASE + KN4K_MB_CSR); | 130 | volatile u32 *mbcs = (void *)CKSEG1ADDR(KN4K_SLOT_BASE + KN4K_MB_CSR); |
130 | 131 | ||
131 | /* For KN04 we need to make sure EE (?) is enabled in the MB. */ | 132 | /* For KN04 we need to make sure EE (?) is enabled in the MB. */ |
132 | if (current_cpu_data.cputype == CPU_R4000SC) | 133 | if (current_cpu_data.cputype == CPU_R4000SC) |