diff --git a/arch/arm/mach-at91/include/mach/uncompress.h b/arch/arm/mach-at91/include/mach/uncompress.h index 4218647c1fcd3279a39bb83b8b38eb7cdb5aa743..d985af7c94bd571b42813df87d50490c09ef7f83 100644 --- a/arch/arm/mach-at91/include/mach/uncompress.h +++ b/arch/arm/mach-at91/include/mach/uncompress.h @@ -43,6 +43,14 @@ #define UART_OFFSET AT91_USART5 #endif +void __iomem *at91_uart; + +static inline void arch_decomp_setup(void) +{ +#ifdef UART_OFFSET + at91_uart = (void __iomem *) UART_OFFSET; /* physical address */ +#endif +} /* * The following code assumes the serial port has already been * initialized by the bootloader. If you didn't setup a port in @@ -53,27 +61,21 @@ static void putc(int c) { #ifdef UART_OFFSET - void __iomem *sys = (void __iomem *) UART_OFFSET; /* physical address */ - - while (!(__raw_readl(sys + ATMEL_US_CSR) & ATMEL_US_TXRDY)) + while (!(__raw_readl(at91_uart + ATMEL_US_CSR) & ATMEL_US_TXRDY)) barrier(); - __raw_writel(c, sys + ATMEL_US_THR); + __raw_writel(c, at91_uart + ATMEL_US_THR); #endif } static inline void flush(void) { #ifdef UART_OFFSET - void __iomem *sys = (void __iomem *) UART_OFFSET; /* physical address */ - /* wait for transmission to complete */ - while (!(__raw_readl(sys + ATMEL_US_CSR) & ATMEL_US_TXEMPTY)) + while (!(__raw_readl(at91_uart + ATMEL_US_CSR) & ATMEL_US_TXEMPTY)) barrier(); #endif } -#define arch_decomp_setup() - #define arch_decomp_wdog() #endif