[PATCH] Serial: Samsung: Fix uart clock init order

shaju.abraham at linaro.org shaju.abraham at linaro.org
Fri Sep 3 01:15:34 EDT 2010


From: Shaju Abraham <shaju.abraham at linaro.org>

The clk_get API returns -ENOENT when invoked from s3c24xx_serial_initconsole.
This happens since the serial_console gets registered before the platform
driver is registered.Defer the call to clk_get to s3c24xx_serial_probe so that
the API returns a valid clock.

Signed-off-by: Shaju Abraham <shaju.abraham at linaro.org>
---
 drivers/serial/samsung.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/serial/samsung.c b/drivers/serial/samsung.c
index b1156ba..f6a526a 100644
--- a/drivers/serial/samsung.c
+++ b/drivers/serial/samsung.c
@@ -1115,7 +1115,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
 	if (ret > 0)
 		ourport->tx_irq = ret;
 
-	ourport->clk	= clk_get(&platdev->dev, "uart");
 
 	dbg("port: map=%08x, mem=%08x, irq=%d (%d,%d), clock=%ld\n",
 	    port->mapbase, port->membase, port->irq,
@@ -1159,6 +1158,8 @@ int s3c24xx_serial_probe(struct platform_device *dev,
 	if (ret < 0)
 		goto probe_err;
 
+	ourport->clk	= clk_get(&dev->dev, "uart");
+
 	dbg("%s: adding port\n", __func__);
 	uart_add_one_port(&s3c24xx_uart_drv, &ourport->port);
 	platform_set_drvdata(dev, &ourport->port);
-- 
1.6.2.5




More information about the linux-arm-kernel mailing list