[PATCH] OMAP2: PM: check UART status before trying to idle

Tony Lindgren tony at atomide.com
Wed Oct 6 13:48:49 EDT 2010


* Kevin Hilman <khilman at deeprootsystems.com> [101006 08:43]:
> As is done on OMAP3, check omap_uart_can_sleep() as one of the
> pre-conditions for entering the idle loop.  Without this check,
> entering idle introduces large latencies on active UARTs, and is
> especially noticable on serial console.
> 
> Signed-off-by: Kevin Hilman <khilman at deeprootsystems.com>
> ---
> Tony, this fixes the UART lag when using the serial console on n8x0.
> With this, the UARTs will not idle until their sleep timeouts are
> activated, and they're disabled by default.
> 
> There's an additional bug I'm still looking into as to why UART3
> does not trigger wakeup from idle on 2420, but that is only triggered
> after enabling UART timeouts.
> 
>  arch/arm/mach-omap2/pm24xx.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c
> index c1bceec..a40457d 100644
> --- a/arch/arm/mach-omap2/pm24xx.c
> +++ b/arch/arm/mach-omap2/pm24xx.c
> @@ -245,6 +245,8 @@ static int omap2_can_sleep(void)
>  {
>  	if (omap2_fclks_active())
>  		return 0;
> +	if (!omap_uart_can_sleep())
> +		return 0;
>  	if (osc_ck->usecount > 1)
>  		return 0;
>  	if (omap_dma_running())

Thanks, I'll add that to omap-for-linus. Also the following change
is needed for the n8x0 boards that use the kernel cmdline only.

Regards,

Tony

From: Tony Lindgren <tony at atomide.com>
Date: Tue, 5 Oct 2010 10:09:03 -0700
Subject: [PATCH] omap: Update omap2plus_defconfig to use ttyO instead ttyS

With the omap-serial the device has changed from ttyS to ttyO as
the system may have both omap-serial and 8250 ports.

Note that systems using omap-serial need to be updated to use ttyO[012]
instead of ttyS[012] in the bootloader, CONFIG_CMDLINE, /etc/inittab,
and the root file system with mknod. Also you may need to add ttyO[012]
to /etc/securetty.

Signed-off-by: Tony Lindgren <tony at atomide.com>

diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index 7deec89..ccedde1 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -63,7 +63,7 @@ CONFIG_AEABI=y
 CONFIG_LEDS=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyS2,115200"
+CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyO2,115200"
 CONFIG_KEXEC=y
 CONFIG_FPE_NWFPE=y
 CONFIG_VFP=y



More information about the linux-arm-kernel mailing list