On Wed, May 02, 2012 at 04:19:30PM +0800, Huang Shijie wrote: > The current code keeps the clock enabled even when we do not really > use the uart port. But keep the clock enabled will consume some power. > > In order to save more power, disable the clock when we do not use > the uart, and enable the clock when we really use the uart port. > > Signed-off-by: Huang Shijie <b32955@xxxxxxxxxxxxx> This conflicts with my series converting i.MX to the common clock framework. Please lets delay this until this has been merged. Sascha > --- > drivers/tty/serial/imx.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c > index e7fecee..f5dcdf6 100644 > --- a/drivers/tty/serial/imx.c > +++ b/drivers/tty/serial/imx.c > @@ -694,6 +694,8 @@ static int imx_startup(struct uart_port *port) > int retval; > unsigned long flags, temp; > > + clk_prepare_enable(sport->clk); > + > imx_setup_ufcr(sport, 0); > > /* disable the DREN bit (Data Ready interrupt enable) before > @@ -877,6 +879,8 @@ static void imx_shutdown(struct uart_port *port) > temp &= ~(UCR1_IREN); > > writel(temp, sport->port.membase + UCR1); > + > + clk_disable_unprepare(sport->clk); > } > > static void > @@ -1526,6 +1530,7 @@ static int serial_imx_probe(struct platform_device *pdev) > goto deinit; > platform_set_drvdata(pdev, &sport->port); > > + clk_disable_unprepare(sport->clk); > return 0; > deinit: > if (pdata && pdata->exit) > @@ -1552,7 +1557,6 @@ static int serial_imx_remove(struct platform_device *pdev) > > if (sport) { > uart_remove_one_port(&imx_reg, &sport->port); > - clk_disable_unprepare(sport->clk); > clk_put(sport->clk); > } > > -- > 1.7.3.2 > > > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html