OMAP: UART: don't resume UARTs that are not enabled.
authorKevin Hilman <khilman@deeprootsystems.com>
Wed, 24 Nov 2010 19:09:03 +0000 (11:09 -0800)
committerTony Lindgren <tony@atomide.com>
Thu, 25 Nov 2010 00:09:30 +0000 (16:09 -0800)
Add additional check to omap_uart_resume_idle() so that only
enabled (specifically, idle-enabled) UARTs are allowed to resume.
This matches the existing check in prepare idle.

Without this patch, the system will hang if a board is
configured to register only some uarts instead of all of
them and PM is enabled.

Cc: Govindraj R. <govindraj.raja@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
[tony@atomide.com: updated description]
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/serial.c

index becf0e38ef7ed58a293588ef0b294a02c560e972..bc934dbe3bf05fc42413481911c08fc4e30fd094 100644 (file)
@@ -406,7 +406,7 @@ void omap_uart_resume_idle(int num)
        struct omap_uart_state *uart;
 
        list_for_each_entry(uart, &uart_list, node) {
-               if (num == uart->num) {
+               if (num == uart->num && uart->can_sleep) {
                        omap_uart_enable_clocks(uart);
 
                        /* Check for IO pad wakeup */