From 481730372df8cbe249393eb921154757f49aa3c4 Mon Sep 17 00:00:00 2001 From: Vikram Pandita Date: Mon, 20 Sep 2010 17:31:06 -0700 Subject: omap4: uart console disconnects on suspend REVISIT: On omap4 on going to suspend, the console gets disconnectd As a workaround, enabling the interrupts in UART_IER register, solves the issue. The correct fix is to be figured out. Change-Id: I9cba50292f0cd0bead8dbcfc38eddd4793cb4b1d Signed-off-by: Vikram Pandita --- drivers/serial/omap-serial.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/serial/omap-serial.c b/drivers/serial/omap-serial.c index ec7cb85f36c..76961ab4ebe 100644 --- a/drivers/serial/omap-serial.c +++ b/drivers/serial/omap-serial.c @@ -1058,10 +1058,19 @@ serial_omap_suspend(struct platform_device *pdev, pm_message_t state) static int serial_omap_resume(struct platform_device *dev) { struct uart_omap_port *up = platform_get_drvdata(dev); + u32 reg = 0x48020004; /* Console: UART3: UART_IER */ - if (omap_is_console_port(&up->port)) + if (omap_is_console_port(&up->port)) { wake_lock_timeout(&uart_lock, 5 * HZ); + /* HACK: REVISIT: Omap4: Console: Enable interrupts: + * Interrupts on omap4 UART3 are not getting enabled + * this portion of code will have to be remove later + */ + if (cpu_is_omap44xx() && !omap_readl(reg)) + omap_writel(5, reg); + } + #ifndef CONFIG_SUSPEND if (up) uart_resume_port(&serial_omap_reg, &up->port); -- cgit v1.2.3