[PATCH] Added a Receive_Abort to the Marvell serial driver
authorCarlos Sanchez <csanchez@windy.az.mvista.com>
Sun, 30 Oct 2005 23:02:53 +0000 (15:02 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 31 Oct 2005 01:37:25 +0000 (17:37 -0800)
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>
drivers/serial/mpsc.c

index efe79b1fd431b8f13c98cdf5150f4aef49759f0b..aec83f577ce6c5c8f7be871af58c9db811a2d0b8 100644 (file)
@@ -1100,6 +1100,8 @@ mpsc_start_rx(struct mpsc_port_info *pi)
 {
        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);