From: 黄涛 Date: Wed, 16 Mar 2011 09:04:19 +0000 (+0800) Subject: rk29: pm: better and faster printch X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f304d79d0c630d748c232bb0cd00beeb512c746e;p=firefly-linux-kernel-4.4.55.git rk29: pm: better and faster printch --- diff --git a/arch/arm/mach-rk29/pm.c b/arch/arm/mach-rk29/pm.c index d41112c9c251..db1e8cffbfd9 100644 --- a/arch/arm/mach-rk29/pm.c +++ b/arch/arm/mach-rk29/pm.c @@ -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);