Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60e93575 authored by Chander Kashyap's avatar Chander Kashyap Committed by Greg Kroah-Hartman
Browse files

serial: samsung: enable clock before clearing pending interrupts during init



Ensure that the uart controller clock is enabled prior to writing to the
interrupt mask and pending registers in the s3c24xx_serial_init_port
function.

Signed-off-by: default avatarChander Kashyap <chander.kashyap@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent bff09b09
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1166,6 +1166,18 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
		ourport->tx_irq = ret;

	ourport->clk	= clk_get(&platdev->dev, "uart");
	if (IS_ERR(ourport->clk)) {
		pr_err("%s: Controller clock not found\n",
				dev_name(&platdev->dev));
		return PTR_ERR(ourport->clk);
	}

	ret = clk_prepare_enable(ourport->clk);
	if (ret) {
		pr_err("uart: clock failed to prepare+enable: %d\n", ret);
		clk_put(ourport->clk);
		return ret;
	}

	/* Keep all interrupts masked and cleared */
	if (s3c24xx_serial_has_interrupt_mask(port)) {
@@ -1180,6 +1192,7 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,

	/* reset the fifos (and setup the uart) */
	s3c24xx_serial_resetport(port, cfg);
	clk_disable_unprepare(ourport->clk);
	return 0;
}