callback is never called, uart_suspend_port() and enable_irq_wake() is never called; so the UART interrupt is masked by check_wakeup_irqs() and the UART can't wake up the MPU. The remaining mechanism that could have awakened the system would have been I/O chain wakeups. These wouldn't be active because the console UART's clocks are never disabled when no_console_suspend is used, preventing the full chip from idling. Also, current mainline doesn't yet support full chip idle states for OMAP4, so I/O chain wakeups are not enabled. This patch is the result of a collaboration. John Stultz and Andy Green reported the serial wakeup problem that led to the discovery of this problem. Kevin Hilman narrowed the problem down to the use of no_console_suspend. Signed-off-by: Paul Walmsley Cc: John Stultz Cc: Andy Green Reviewed-by: Kevin Hilman Signed-off-by: Kevin Hilman "®Yº‘9x