summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorFugang Duan <b38611@freescale.com>2015-03-30 10:47:23 +0800
committerguoyin.chen <guoyin.chen@freescale.com>2015-05-08 17:24:57 +0800
commite0b909fd5c9eb4c6973d3bbb4d81b6894914622b (patch)
tree0333e24a6131572b9d262e8ce39480bdfc26b322 /drivers
parenteb558e710fe103ed744bdc5649bb1be136c0a43e (diff)
MLK-10274 tty: serial: clear AWAKE bit after resume back
When uart port (non-console port) in dma mode and use uart as remote wakeup source, after resume back, the AWAKE bit is not cleared most of interrupts are disabled. And then let system suspend state, system resume back immediately without any wake up action. So we need to clear the AWAKE bit after resume back in DMA mode. Signed-off-by: Fugang Duan <B38611@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/tty/serial/imx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 2e1a48cb511c..86222dc3c26b 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -1985,6 +1985,9 @@ static int serial_imx_resume(struct platform_device *dev)
val = readl(sport->port.membase + UCR3);
val &= ~(UCR3_AWAKEN | UCR3_AIRINTEN);
writel(val, sport->port.membase + UCR3);
+ val = readl(sport->port.membase + USR1);
+ if (val & USR1_AWAKE)
+ writel(USR1_AWAKE, sport->port.membase + USR1);
uart_resume_port(&imx_reg, &sport->port);