linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / asm-arm / arch-clps711x / uncompress.h
index 03d233a..9fc4bcf 100644 (file)
@@ -17,6 +17,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
+#include <linux/config.h>
 #include <asm/arch/io.h>
 #include <asm/hardware.h>
 #include <asm/hardware/clps7111.h>
@@ -24,6 +25,7 @@
 #undef CLPS7111_BASE
 #define CLPS7111_BASE CLPS7111_PHYS_BASE
 
+#define barrier()              __asm__ __volatile__("": : :"memory")
 #define __raw_readl(p)         (*(unsigned long *)(p))
 #define __raw_writel(v,p)      (*(unsigned long *)(p) = (v))
 
 /*
  * This does not append a newline
  */
-static inline void putc(int c)
+static void putstr(const char *s)
 {
-       while (clps_readl(SYSFLGx) & SYSFLG_UTXFF)
-               barrier();
-       clps_writel(c, UARTDRx);
-}
+       char c;
 
-static inline void flush(void)
-{
+       while ((c = *s++) != '\0') {
+               while (clps_readl(SYSFLGx) & SYSFLG_UTXFF)
+                       barrier();
+               clps_writel(c, UARTDRx);
+
+               if (c == '\n') {
+                       while (clps_readl(SYSFLGx) & SYSFLG_UTXFF)
+                               barrier();
+                       clps_writel('\r', UARTDRx);
+               }
+       }
        while (clps_readl(SYSFLGx) & SYSFLG_UBUSY)
                barrier();
 }