linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / asm-arm / arch-at91rm9200 / uncompress.h
index ec7811a..b30dd55 100644 (file)
@@ -21,7 +21,7 @@
 #ifndef __ASM_ARCH_UNCOMPRESS_H
 #define __ASM_ARCH_UNCOMPRESS_H
 
-#include <asm/hardware.h>
+#include <asm/arch/hardware.h>
 
 /*
  * The following code assumes the serial port has already been
  *
  * This does not append a newline
  */
-static void putc(int c)
-{
-       void __iomem *sys = (void __iomem *) AT91_BASE_SYS;     /* physical address */
-
-       while (!(__raw_readl(sys + AT91_DBGU_SR) & AT91_DBGU_TXRDY))
-               barrier();
-       __raw_writel(c, sys + AT91_DBGU_THR);
-}
-
-static inline void flush(void)
+static void putstr(const char *s)
 {
        void __iomem *sys = (void __iomem *) AT91_BASE_SYS;     /* physical address */
 
+       while (*s) {
+               while (!(__raw_readl(sys + AT91_DBGU_SR) & AT91_DBGU_TXRDY)) { barrier(); }
+               __raw_writel(*s, sys + AT91_DBGU_THR);
+               if (*s == '\n') {
+                       while (!(__raw_readl(sys + AT91_DBGU_SR) & AT91_DBGU_TXRDY)) { barrier(); }
+                       __raw_writel('\r', sys + AT91_DBGU_THR);
+               }
+               s++;
+       }
        /* wait for transmission to complete */
-       while (!(__raw_readl(sys + AT91_DBGU_SR) & AT91_DBGU_TXEMPTY))
-               barrier();
+       while (!(__raw_readl(sys + AT91_DBGU_SR) & AT91_DBGU_TXEMPTY)) { barrier(); }
 }
 
 #define arch_decomp_setup()