serial: exynos: Mask uart interrupt during uart port reset
authorAbhilash Kesavan <a.kesavan@samsung.com>
Thu, 22 Mar 2012 10:28:49 +0000 (15:58 +0530)
committerSubash <subash.rp@samsung.com>
Thu, 14 Jun 2012 19:21:10 +0000 (12:21 -0700)
Uart interrupt mask register is not saved and restored during system
suspend/resume. This can cause a system hang during system suspend/resume
by generating spurious uart interrupts. This patch masks uart interrupts
during reset_port to solve this problem.

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
drivers/tty/serial/samsung.c

index d8b0aee..88c27cf 100644 (file)
@@ -988,6 +988,9 @@ static void s3c24xx_serial_resetport(struct uart_port *port,
        wr_regl(port, S3C2410_UFCON, cfg->ufcon | S3C2410_UFCON_RESETBOTH);
        wr_regl(port, S3C2410_UFCON, cfg->ufcon);
 
+       wr_regl(port, S3C64XX_UINTM, 0xf);
+       wr_regl(port, S3C64XX_UINTP, 0xf);
+
        /* some delay is required after fifo reset */
        udelay(1);
 }