aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/imx.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-06-08 10:19:40 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-06-08 10:19:40 -0700
commit987aec39a74373c55c3bedd5c3c83896d78fd0a2 (patch)
tree66aba6d4f166f269be95fe4d267d57efe533aefd /drivers/tty/serial/imx.c
parent303cda0ea7c1c33701812ccb80d37083a4093c7c (diff)
parentd4a4f75cd8f29cd9464a5a32e9224a91571d6649 (diff)
downloadkernel_replicant_linux-987aec39a74373c55c3bedd5c3c83896d78fd0a2.tar.gz
kernel_replicant_linux-987aec39a74373c55c3bedd5c3c83896d78fd0a2.tar.bz2
kernel_replicant_linux-987aec39a74373c55c3bedd5c3c83896d78fd0a2.zip
Merge 4.1-rc7 into driver-core-next
We want the fixes in this branch as well for testing and merge resolution. 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 c8cfa0637128..88250395b0ce 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -911,6 +911,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) {