[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <200810271406.24110.david-b@pacbell.net>
Date: Mon, 27 Oct 2008 14:06:23 -0700
From: David Brownell <david-b@...bell.net>
To: lkml <linux-kernel@...r.kernel.org>
Cc: Haavard Skinnemoen <hskinnemoen@...el.com>,
Nicolas Ferre <nicolas.ferre@....atmel.com>,
Andrew Victor <linux@...im.org.za>
Subject: [patch 2.6.28-rc2] atmel_serial: keep clock off when it's not needed
From: David Brownell <dbrownell@...rs.sourceforge.net>
The atmel_serial driver is mismanaging its clock by leaving it on
at all times ... the whole point of clock management is to leave
it off unless it's actively needed, which conserves power!!
Signed-off-by: David Brownell <dbrownell@...rs.sourceforge.net>
---
drivers/serial/atmel_serial.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
@@ -1258,6 +1258,8 @@ static void __devinit atmel_init_port(st
atmel_port->clk = clk_get(&pdev->dev, "usart");
clk_enable(atmel_port->clk);
port->uartclk = clk_get_rate(atmel_port->clk);
+ clk_disable(atmel_port->clk);
+ /* only enable clock when USART is in use */
}
atmel_port->use_dma_rx = data->use_dma_rx;
@@ -1544,7 +1546,6 @@ err_add_port:
port->rx_ring.buf = NULL;
err_alloc_ring:
if (!atmel_is_console_port(&port->uart)) {
- clk_disable(port->clk);
clk_put(port->clk);
port->clk = NULL;
}
@@ -1568,7 +1569,6 @@ static int __devexit atmel_serial_remove
/* "port" is allocated statically, so we shouldn't free it */
- clk_disable(atmel_port->clk);
clk_put(atmel_port->clk);
return ret;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists