aboutsummaryrefslogtreecommitdiff
path: root/drivers/tty
diff options
context:
space:
mode:
authorHuang Shijie <b32955@freescale.com>2013-06-09 10:01:19 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-06-08 22:31:47 -0700
commit0c375501be6e6dc23c11ebfa394434517444e62d (patch)
treea474b10cf8ad752c56403e36c90ed4d77f83c678 /drivers/tty
parentc9e2e946fb0ba5d2398feb89558f98c5c28e23e3 (diff)
serial: imx: enable the clocks for console
The console's clocks are disabled after the uart driver is probed. It makes that we can see less log from the console now (though we still can get all the log by the `dmesg`). So enable the clocks for console, and we can see all the log again. This patch also disables the sport->clk_per when we fail to enable the sport->clk_ipg; Signed-off-by: Huang Shijie <b32955@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty')
-rw-r--r--drivers/tty/serial/imx.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index 7a761f7c978..78f809759ed 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -702,13 +702,16 @@ static int imx_startup(struct uart_port *port)
int retval;
unsigned long flags, temp;
- retval = clk_prepare_enable(sport->clk_per);
- if (retval)
- goto error_out1;
-
- retval = clk_prepare_enable(sport->clk_ipg);
- if (retval)
- goto error_out1;
+ if (!uart_console(port)) {
+ retval = clk_prepare_enable(sport->clk_per);
+ if (retval)
+ goto error_out1;
+ retval = clk_prepare_enable(sport->clk_ipg);
+ if (retval) {
+ clk_disable_unprepare(sport->clk_per);
+ goto error_out1;
+ }
+ }
imx_setup_ufcr(sport, 0);
@@ -1578,8 +1581,10 @@ static int serial_imx_probe(struct platform_device *pdev)
goto deinit;
platform_set_drvdata(pdev, sport);
- clk_disable_unprepare(sport->clk_per);
- clk_disable_unprepare(sport->clk_ipg);
+ if (!uart_console(&sport->port)) {
+ clk_disable_unprepare(sport->clk_per);
+ clk_disable_unprepare(sport->clk_ipg);
+ }
return 0;
deinit: