rk29: pm: better and faster printch
author黄涛 <huangtao@rock-chips.com>
Wed, 16 Mar 2011 09:04:19 +0000 (17:04 +0800)
committer黄涛 <huangtao@rock-chips.com>
Wed, 16 Mar 2011 09:04:19 +0000 (17:04 +0800)
arch/arm/mach-rk29/pm.c

index d41112c9c251d80ba7c9d9194bedb862a83e2f67..db1e8cffbfd91532bad2443cd2d9b0c0835d63b2 100644 (file)
@@ -61,9 +61,9 @@ static void inline printch(char byte)
 
        writel(byte, RK29_UART1_BASE);
 
-       delay = (cru_readl(CRU_MODE_CON) & CRU_CPU_MODE_MASK) ? 10 : 1;
-       while (delay--)
-               delay_300us();
+       /* loop check LSR[6], Transmitter Empty bit */
+       while (!(readl(RK29_UART1_BASE + 0x14) & 0x40))
+               barrier();
 
        cru_writel(gate2, CRU_CLKGATE2_CON);
        cru_writel(gate1, CRU_CLKGATE1_CON);
@@ -150,7 +150,9 @@ static void __sramfunc rk29_sram_suspend(void)
        /* set arm clk 24MHz/32 = 750KHz */
        cru_writel(clksel0 | 0x1F, CRU_CLKSEL0_CON);
 
+       printch('8');
        asm("wfi");
+       printch('8');
 
        /* resume arm clk */
        cru_writel(clksel0, CRU_CLKSEL0_CON);