linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / asm-arm / arch-s3c2410 / uncompress.h
index a6f6a0e..4367ec0 100644 (file)
@@ -67,7 +67,8 @@ uart_rd(unsigned int reg)
  * waiting for tx to happen...
 */
 
-static void putc(int ch)
+static void
+putc(char ch)
 {
        int cpuid = S3C2410_GSTATUS1_2410;
 
@@ -76,6 +77,9 @@ static void putc(int ch)
        cpuid &= S3C2410_GSTATUS1_IDMASK;
 #endif
 
+       if (ch == '\n')
+               putc('\r');    /* expand newline to \r\n */
+
        if (uart_rd(S3C2410_UFCON) & S3C2410_UFCON_FIFOMODE) {
                int level;
 
@@ -97,16 +101,19 @@ static void putc(int ch)
        } else {
                /* not using fifos */
 
-               while ((uart_rd(S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXE) != S3C2410_UTRSTAT_TXE)
-                       barrier();
+               while ((uart_rd(S3C2410_UTRSTAT) & S3C2410_UTRSTAT_TXE) != S3C2410_UTRSTAT_TXE);
        }
 
        /* write byte to transmission register */
        uart_wr(S3C2410_UTXH, ch);
 }
 
-static inline void flush(void)
+static void
+putstr(const char *ptr)
 {
+       for (; *ptr != '\0'; ptr++) {
+               putc(*ptr);
+       }
 }
 
 #define __raw_writel(d,ad) do { *((volatile unsigned int *)(ad)) = (d); } while(0)