aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/dec/kn01-berr.c
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2005-07-01 12:10:40 -0400
committerRalf Baechle <ralf@linux-mips.org>2005-10-29 14:31:35 -0400
commita5fc9c0bbee8b91025993a49a9176a88380aef3c (patch)
treee68ee45e852028ddde712abb18531777dba6e468 /arch/mips/dec/kn01-berr.c
parent7d7ee221213609319401d1b9d6dc4bf22ab928ea (diff)
Use physical addresses at the interface level, letting drivers remap
them as appropriate. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/dec/kn01-berr.c')
-rw-r--r--arch/mips/dec/kn01-berr.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/mips/dec/kn01-berr.c b/arch/mips/dec/kn01-berr.c
index 8ec7b30a90c1..b9271db9bc76 100644
--- a/arch/mips/dec/kn01-berr.c
+++ b/arch/mips/dec/kn01-berr.c
@@ -51,7 +51,7 @@ DEFINE_SPINLOCK(kn01_lock);
51 51
52static inline void dec_kn01_be_ack(void) 52static inline void dec_kn01_be_ack(void)
53{ 53{
54 volatile u16 *csr = (void *)(KN01_SLOT_BASE + KN01_CSR); 54 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR);
55 unsigned long flags; 55 unsigned long flags;
56 56
57 spin_lock_irqsave(&kn01_lock, flags); 57 spin_lock_irqsave(&kn01_lock, flags);
@@ -64,7 +64,8 @@ static inline void dec_kn01_be_ack(void)
64 64
65static int dec_kn01_be_backend(struct pt_regs *regs, int is_fixup, int invoker) 65static int dec_kn01_be_backend(struct pt_regs *regs, int is_fixup, int invoker)
66{ 66{
67 volatile u32 *kn01_erraddr = (void *)(KN01_SLOT_BASE + KN01_ERRADDR); 67 volatile u32 *kn01_erraddr = (void *)CKSEG1ADDR(KN01_SLOT_BASE +
68 KN01_ERRADDR);
68 69
69 static const char excstr[] = "exception"; 70 static const char excstr[] = "exception";
70 static const char intstr[] = "interrupt"; 71 static const char intstr[] = "interrupt";
@@ -152,7 +153,7 @@ int dec_kn01_be_handler(struct pt_regs *regs, int is_fixup)
152irqreturn_t dec_kn01_be_interrupt(int irq, void *dev_id, 153irqreturn_t dec_kn01_be_interrupt(int irq, void *dev_id,
153 struct pt_regs *regs) 154 struct pt_regs *regs)
154{ 155{
155 volatile u16 *csr = (void *)(KN01_SLOT_BASE + KN01_CSR); 156 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR);
156 int action; 157 int action;
157 158
158 if (!(*csr & KN01_CSR_MEMERR)) 159 if (!(*csr & KN01_CSR_MEMERR))
@@ -178,7 +179,7 @@ irqreturn_t dec_kn01_be_interrupt(int irq, void *dev_id,
178 179
179void __init dec_kn01_be_init(void) 180void __init dec_kn01_be_init(void)
180{ 181{
181 volatile u16 *csr = (void *)(KN01_SLOT_BASE + KN01_CSR); 182 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR);
182 unsigned long flags; 183 unsigned long flags;
183 184
184 spin_lock_irqsave(&kn01_lock, flags); 185 spin_lock_irqsave(&kn01_lock, flags);