serial: samsung: enable clock before accessing interrupt mask resister
author남영민 <youngmin.nam@samsung.com>
Wed, 1 Feb 2017 10:25:46 +0000 (19:25 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Feb 2017 09:12:16 +0000 (10:12 +0100)
Ensure that the uart clock is enabled prior to writing to the
interrupt mask register in s3c24xx_serial_resume_noirq function.
Without enabing the uart clock, the uart register cannot be accessed.

Signed-off-by: Youngmin Nam <youngmin.nam@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/samsung.c

index a9b309b..b4f86c2 100644 (file)
@@ -1916,6 +1916,7 @@ static int s3c24xx_serial_resume(struct device *dev)
 static int s3c24xx_serial_resume_noirq(struct device *dev)
 {
        struct uart_port *port = s3c24xx_dev_to_port(dev);
+       struct s3c24xx_uart_port *ourport = to_ourport(port);
 
        if (port) {
                /* restore IRQ mask */
@@ -1925,7 +1926,9 @@ static int s3c24xx_serial_resume_noirq(struct device *dev)
                                uintm &= ~S3C64XX_UINTM_TXD_MSK;
                        if (rx_enabled(port))
                                uintm &= ~S3C64XX_UINTM_RXD_MSK;
+                       clk_prepare_enable(ourport->clk);
                        wr_regl(port, S3C64XX_UINTM, uintm);
+                       clk_disable_unprepare(ourport->clk);
                }
        }