Re: [PATCH] serial/imx: enable the clock when we really use the uart port

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



于 2012年05月02日 16:19, Sascha Hauer 写道:
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.
OK, thanks

Huang Shijie
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





--
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


[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux