[PATCH] Added a Receive_Abort to the Marvell serial driver
Added a Receive_Abort to the Marvell serial driver
Fix occasional input overrun errors on Marvell serial driver
- If the Marvell serial driver is repeatedly started and then stopped it
will occasionally report an input overrun error when started.
- Added a Receive_Abort to the Marvell serial driver to abort previously
received receive errors when re-starting the receive
Acked-by: Mark A. Greer <mgreer@mvista.com>
Signed-off-by: Carlos Sanchez <csanchez@mvista.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff --git a/drivers/serial/mpsc.c b/drivers/serial/mpsc.c
index efe79b1..aec83f5 100644
--- a/drivers/serial/mpsc.c
+++ b/drivers/serial/mpsc.c
@@ -1100,6 +1100,8 @@
{
pr_debug("mpsc_start_rx[%d]: Starting...\n", pi->port.line);
+ /* Issue a Receive Abort to clear any receive errors */
+ writel(MPSC_CHR_2_RA, pi->mpsc_base + MPSC_CHR_2);
if (pi->rcv_data) {
mpsc_enter_hunt(pi);
mpsc_sdma_cmd(pi, SDMA_SDCM_ERD);