提交 0d3c3938 编写于 作者: S Sascha Hauer 提交者: Russell King

[ARM] 4995/1: <IMX UART>: Do not use URXD_CHARRDY for polling

Do not use the URXD_CHARRDY bit for polling for new characters. This works
on i.MX1, but on MX31 the datasheet states that this bit should not be
used for polling. On MX27 it is even worse, here we get a bus error when
we access the read FIFO when no character is present.
Instead, use USR2_RDR (receive data ready) bit.
Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 864eeed0
......@@ -356,10 +356,12 @@ static irqreturn_t imx_rxint(int irq, void *dev_id)
spin_lock_irqsave(&sport->port.lock,flags);
while ((rx = readl(sport->port.membase + URXD0)) & URXD_CHARRDY) {
while (readl(sport->port.membase + USR2) & USR2_RDR) {
flg = TTY_NORMAL;
sport->port.icount.rx++;
rx = readl(sport->port.membase + URXD0);
temp = readl(sport->port.membase + USR2);
if (temp & USR2_BRCD) {
writel(temp | USR2_BRCD, sport->port.membase + USR2);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册