summaryrefslogtreecommitdiff
path: root/drivers/tty/serial/imx.c
diff options
context:
space:
mode:
authorFugang Duan <b38611@freescale.com>2015-08-17 18:44:54 +0800
committerNitin Garg <nitin.garg@nxp.com>2016-01-14 10:59:42 -0600
commitd97da568f6d739e7b2d771cc3c27c4f03f7cecb7 (patch)
tree2b0c80c2ea5bfb6c889b3002bae7d717dc24731b /drivers/tty/serial/imx.c
parent89acf0691e24ac49485bf287816cae7d6f40f38f (diff)
MLK-10225-1 tty: serial: imx: don't restore UBRC register
For i.MX7D, write the read-only register UBRC that causes unhandled fault. Log: Unhandled fault: imprecise external abort (0x1c06) at 0x76efd0ac Bus error For read-only registers, we don't need to restore it. Signed-off-by: Fugang Duan <B38611@freescale.com> (cherry picked from commit: 798f196501233449ce77fc35b26e76dcc6d9a730)
Diffstat (limited to 'drivers/tty/serial/imx.c')
-rw-r--r--drivers/tty/serial/imx.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 18274305a145..08f767954bd1 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -236,7 +236,7 @@ struct imx_port {
unsigned int tx_bytes;
unsigned int dma_tx_nents;
wait_queue_head_t dma_wait;
- unsigned int saved_reg[11];
+ unsigned int saved_reg[10];
};
struct imx_port_ucrs {
@@ -1857,8 +1857,7 @@ static int serial_imx_suspend(struct platform_device *dev, pm_message_t state)
sport->saved_reg[6] = readl(sport->port.membase + UTIM);
sport->saved_reg[7] = readl(sport->port.membase + UBIR);
sport->saved_reg[8] = readl(sport->port.membase + UBMR);
- sport->saved_reg[9] = readl(sport->port.membase + UBRC);
- sport->saved_reg[10] = readl(sport->port.membase + IMX21_UTS);
+ sport->saved_reg[9] = readl(sport->port.membase + IMX21_UTS);
return 0;
}
@@ -1873,8 +1872,7 @@ static int serial_imx_resume(struct platform_device *dev)
writel(sport->saved_reg[6], sport->port.membase + UTIM);
writel(sport->saved_reg[7], sport->port.membase + UBIR);
writel(sport->saved_reg[8], sport->port.membase + UBMR);
- writel(sport->saved_reg[9], sport->port.membase + UBRC);
- writel(sport->saved_reg[10], sport->port.membase + IMX21_UTS);
+ writel(sport->saved_reg[9], sport->port.membase + IMX21_UTS);
writel(sport->saved_reg[0], sport->port.membase + UCR1);
writel(sport->saved_reg[1] | 0x1, sport->port.membase + UCR2);
writel(sport->saved_reg[2], sport->port.membase + UCR3);