LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [patch 2.6.28-rc2] atmel_serial: keep clock off when it's not needed
@ 2008-10-27 21:06 David Brownell
  2008-10-28 11:45 ` Haavard Skinnemoen
  0 siblings, 1 reply; 10+ messages in thread
From: David Brownell @ 2008-10-27 21:06 UTC (permalink / raw)
  To: lkml; +Cc: Haavard Skinnemoen, Nicolas Ferre, Andrew Victor

From: David Brownell <dbrownell@users.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@users.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;

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2008-10-29 15:54 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-27 21:06 [patch 2.6.28-rc2] atmel_serial: keep clock off when it's not needed David Brownell
2008-10-28 11:45 ` Haavard Skinnemoen
2008-10-28 16:20   ` David Brownell
2008-10-28 16:37     ` Haavard Skinnemoen
2008-10-28 17:08       ` David Brownell
2008-10-28 17:48         ` Haavard Skinnemoen
2008-10-28 18:41     ` Andrew Victor
2008-10-28 19:51       ` David Brownell
2008-10-29 10:08         ` Haavard Skinnemoen
2008-10-29 15:54           ` David Brownell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).