aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/imx.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-06-08 10:49:28 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-06-08 10:49:28 -0700
commit00fda1682efdbd62a20a8a21aee52d994c323c7f (patch)
treef49cee6c892019f193bf29985604951dd81ea94d /drivers/tty/serial/imx.c
parenttty: move linux/gsmmux.h to uapi (diff)
parentLinux 4.1-rc7 (diff)
downloadlinux-dev-00fda1682efdbd62a20a8a21aee52d994c323c7f.tar.xz
linux-dev-00fda1682efdbd62a20a8a21aee52d994c323c7f.zip
Merge 4.1-rc7 into tty-next
This fixes up a merge issue with the amba-pl011.c driver, and we want the fixes in this branch as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/imx.c')
-rw-r--r--drivers/tty/serial/imx.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 91e36bcfde74..2c90dc31bfaa 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -910,6 +910,14 @@ static void dma_rx_callback(void *data)
status = dmaengine_tx_status(chan, (dma_cookie_t)0, &state);
count = RX_BUF_SIZE - state.residue;
+
+ if (readl(sport->port.membase + USR2) & USR2_IDLE) {
+ /* In condition [3] the SDMA counted up too early */
+ count--;
+
+ writel(USR2_IDLE, sport->port.membase + USR2);
+ }
+
dev_dbg(sport->port.dev, "We get %d bytes.\n", count);
if (count) {