aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/dec/kn02xa-berr.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/dec/kn02xa-berr.c')
-rw-r--r--arch/mips/dec/kn02xa-berr.c11
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
30static inline void dec_kn02xa_be_ack(void) 31static 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)
40static int dec_kn02xa_be_backend(struct pt_regs *regs, int is_fixup, 41static 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
127void __init dec_kn02xa_be_init(void) 128void __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)