Merge git://git.infradead.org/iommu-2.6
[pandora-kernel.git] / arch / arm / mach-omap2 / include / mach / debug-macro.S
index 35b2440..09331bb 100644 (file)
@@ -36,7 +36,7 @@ omap_uart_lsr:        .word   0
                /* Use omap_uart_phys/virt if already configured */
 10:            mrc     p15, 0, \rx, c1, c0
                tst     \rx, #1                 @ MMU enabled?
-               ldreq   \rx, =omap_uart_phys    @ physical base address
+               ldreq   \rx, =__virt_to_phys(omap_uart_phys)    @ physical base address
                ldrne   \rx, =omap_uart_virt    @ virtual base address
                ldr     \rx, [\rx, #0]
                cmp     \rx, #0                 @ is port configured?
@@ -89,26 +89,36 @@ omap_uart_lsr:      .word   0
 44:            mov     \rx, #UART_OFFSET(OMAP4_UART4_BASE)
                b       98f
 95:            ldr     \rx, =ZOOM_UART_BASE
-               ldr     \tmp, =omap_uart_phys
+               mrc     p15, 0, \tmp, c1, c0
+               tst     \tmp, #1                @ MMU enabled?
+               ldreq   \tmp, =__virt_to_phys(omap_uart_phys)
+               ldrne   \tmp, =omap_uart_phys
                str     \rx, [\tmp, #0]
                ldr     \rx, =ZOOM_UART_VIRT
-               ldr     \tmp, =omap_uart_virt
+               ldreq   \tmp, =__virt_to_phys(omap_uart_virt)
+               ldrne   \tmp, =omap_uart_virt
                str     \rx, [\tmp, #0]
                mov     \rx, #(UART_LSR << ZOOM_PORT_SHIFT)
-               ldr     \tmp, =omap_uart_lsr
+               ldreq   \tmp, =__virt_to_phys(omap_uart_lsr)
+               ldrne   \tmp, =omap_uart_lsr
                str     \rx, [\tmp, #0]
                b       10b
 
                /* Store both phys and virt address for the uart */
 98:            add     \rx, \rx, #0x48000000   @ phys base
-               ldr     \tmp, =omap_uart_phys
+               mrc     p15, 0, \tmp, c1, c0
+               tst     \tmp, #1                @ MMU enabled?
+               ldreq   \tmp, =__virt_to_phys(omap_uart_phys)
+               ldrne   \tmp, =omap_uart_phys
                str     \rx, [\tmp, #0]
                sub     \rx, \rx, #0x48000000   @ phys base
                add     \rx, \rx, #0xfa000000   @ virt base
-               ldr     \tmp, =omap_uart_virt
+               ldreq   \tmp, =__virt_to_phys(omap_uart_virt)
+               ldrne   \tmp, =omap_uart_virt
                str     \rx, [\tmp, #0]
                mov     \rx, #(UART_LSR << OMAP_PORT_SHIFT)
-               ldr     \tmp, =omap_uart_lsr
+               ldreq   \tmp, =__virt_to_phys(omap_uart_lsr)
+               ldrne   \tmp, =omap_uart_lsr
                str     \rx, [\tmp, #0]
 
                b       10b
@@ -120,7 +130,10 @@ omap_uart_lsr:     .word   0
                .endm
 
                .macro  busyuart,rd,rx
-1001:          ldr     \rd, =omap_uart_lsr
+1001:          mrc     p15, 0, \rd, c1, c0
+               tst     \rd, #1         @ MMU enabled?
+               ldreq   \rd, =__virt_to_phys(omap_uart_lsr)
+               ldrne   \rd, =omap_uart_lsr
                ldr     \rd, [\rd, #0]
                ldrb    \rd, [\rx, \rd]
                and     \rd, \rd, #(UART_LSR_TEMT | UART_LSR_THRE)