Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb...
[pandora-kernel.git] / arch / arm / kernel / debug.S
index a38b487..a0f0752 100644 (file)
 #if defined(CONFIG_DEBUG_ICEDCC)
                @@ debug using ARM EmbeddedICE DCC channel
 
-#if defined(CONFIG_CPU_V6)
-
-               .macro  addruart, rx, tmp
+               .macro  addruart, rp, rv
                .endm
 
+#if defined(CONFIG_CPU_V6)
+
                .macro  senduart, rd, rx
                mcr     p14, 0, \rd, c0, c5, 0
                .endm
@@ -51,9 +51,6 @@
 
 #elif defined(CONFIG_CPU_V7)
 
-               .macro  addruart, rx, tmp
-               .endm
-
                .macro  senduart, rd, rx
                mcr     p14, 0, \rd, c0, c5, 0
                .endm
@@ -71,9 +68,6 @@ wait:         mrc     p14, 0, pc, c0, c1, 0
 
 #elif defined(CONFIG_CPU_XSCALE)
 
-               .macro  addruart, rx, tmp
-               .endm
-
                .macro  senduart, rd, rx
                mcr     p14, 0, \rd, c8, c0, 0
                .endm
@@ -98,9 +92,6 @@ wait:         mrc     p14, 0, pc, c0, c1, 0
 
 #else
 
-               .macro  addruart, rx, tmp
-               .endm
-
                .macro  senduart, rd, rx
                mcr     p14, 0, \rd, c1, c0, 0
                .endm
@@ -130,6 +121,22 @@ wait:              mrc     p14, 0, pc, c0, c1, 0
 #include <mach/debug-macro.S>
 #endif /* CONFIG_DEBUG_ICEDCC */
 
+#ifdef CONFIG_MMU
+               .macro  addruart_current, rx, tmp1, tmp2
+               addruart        \tmp1, \tmp2
+               mrc             p15, 0, \rx, c1, c0
+               tst             \rx, #1
+               moveq           \rx, \tmp1
+               movne           \rx, \tmp2
+               .endm
+
+#else /* !CONFIG_MMU */
+               .macro  addruart_current, rx, tmp1, tmp2
+               addruart        \rx, \tmp1
+               .endm
+
+#endif /* CONFIG_MMU */
+
 /*
  * Useful debugging routines
  */
@@ -164,7 +171,7 @@ ENDPROC(printhex2)
                .ltorg
 
 ENTRY(printascii)
-               addruart r3, r1
+               addruart_current r3, r1, r2
                b       2f
 1:             waituart r2, r3
                senduart r1, r3
@@ -180,7 +187,7 @@ ENTRY(printascii)
 ENDPROC(printascii)
 
 ENTRY(printch)
-               addruart r3, r1
+               addruart_current r3, r1, r2
                mov     r1, r0
                mov     r0, #0
                b       1b