summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVikram Pandita <vikram.pandita@ti.com>2010-09-20 17:31:06 -0700
committerVikram Pandita <vikram.pandita@ti.com>2010-09-20 17:38:39 -0700
commit481730372df8cbe249393eb921154757f49aa3c4 (patch)
tree25120c7f9477a733f6ffd8ef6d1e23b86e9af5b7
parent5f171120e5ba4855d6421a4aea20dea768832710 (diff)
omap4: uart console disconnects on suspendandroid-2.6.35-2.2-omap4.eng
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 <vikram.pandita@ti.com>
-rw-r--r--drivers/serial/omap-serial.c11
1 files changed, 10 insertions, 1 deletions
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);