summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/pm24xx.c
diff options
context:
space:
mode:
authorKevin Hilman <khilman@deeprootsystems.com>2010-10-08 19:23:32 +0200
committerTony Lindgren <tony@atomide.com>2010-10-08 19:23:32 +0200
commit503923eeecb93ff69ee940549f314e0fe3a68429 (patch)
treefc07ee0f483c3e07a9d52d484c6a80987ed428de /arch/arm/mach-omap2/pm24xx.c
parentomap: hwmod: Handle modules with 16bit registers (diff)
downloadlinux-503923eeecb93ff69ee940549f314e0fe3a68429.tar.xz
linux-503923eeecb93ff69ee940549f314e0fe3a68429.zip
OMAP2: PM: check UART status before trying to idle
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@deeprootsystems.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/pm24xx.c')
-rw-r--r--arch/arm/mach-omap2/pm24xx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c
index 6aeedeacdad8..f5c7ef955942 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())