serial: samsung: enable clock before accessing interrupt mask resister

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>
This commit is contained in:
남영민 2017-02-01 19:25:46 +09:00 committed by Greg Kroah-Hartman
parent 5d1a2388ed
commit a8a1781b87
1 changed files with 3 additions and 0 deletions

View File

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