All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] OMAP3:PM:  Keep UART clocks disabled is resume idle path
@ 2010-06-29  6:58 Reddy, Teerth
  2010-06-29 15:10 ` Kevin Hilman
  0 siblings, 1 reply; 2+ messages in thread
From: Reddy, Teerth @ 2010-06-29  6:58 UTC (permalink / raw)
  To: linux-omap@vger.kernel.org; +Cc: Kevin Hilman

From: Teerth Reddy <teerth@ti.com>

The UART clocks should not be turned on in resume idle path. The UART clocks
should be turned on only when there is a uart wakeup event. This optimization
will help save power.

Signed-off-by: Raja Govindraj <govindraj.raja@ti.com>
Signed-off-by: Teerth Reddy <teerth@ti.com>
---
 arch/arm/mach-omap2/serial.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index 3771254..d545eed 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -343,6 +343,7 @@ static void omap_uart_idle_timer(unsigned long data)
 {
 	struct omap_uart_state *uart = (struct omap_uart_state *)data;
 
+	uart->timeout = DEFAULT_TIMEOUT;
 	omap_uart_allow_sleep(uart);
 }
 
@@ -364,7 +365,6 @@ void omap_uart_resume_idle(int num)
 
 	list_for_each_entry(uart, &uart_list, node) {
 		if (num == uart->num) {
-			omap_uart_enable_clocks(uart);
 
 			/* Check for IO pad wakeup */
 			if (cpu_is_omap34xx() && uart->padconf) {
@@ -436,7 +436,7 @@ static void omap_uart_idle_init(struct omap_uart_state *uart)
 	int ret;
 
 	uart->can_sleep = 0;
-	uart->timeout = DEFAULT_TIMEOUT;
+	uart->timeout = 30 * HZ;
 	setup_timer(&uart->timer, omap_uart_idle_timer,
 		    (unsigned long) uart);
 	if (uart->timeout)
-- 
1.5.4.3


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

* Re: [PATCH 1/3] OMAP3:PM:  Keep UART clocks disabled is resume idle path
  2010-06-29  6:58 [PATCH 1/3] OMAP3:PM: Keep UART clocks disabled is resume idle path Reddy, Teerth
@ 2010-06-29 15:10 ` Kevin Hilman
  0 siblings, 0 replies; 2+ messages in thread
From: Kevin Hilman @ 2010-06-29 15:10 UTC (permalink / raw)
  To: Reddy, Teerth; +Cc: linux-omap@vger.kernel.org

"Reddy, Teerth" <teerth@ti.com> writes:

> From: Teerth Reddy <teerth@ti.com>
>
> The UART clocks should not be turned on in resume idle path. The UART clocks
> should be turned on only when there is a uart wakeup event. 

No, UART clocks should be on whenever someone is accessing the UART.

Besides wakeups, applications can open/access UARTs whenever they want.
With this patch, an application wil fault if it tries to open a UART as
the 8250 driver will access registers and not know how to turn on clocks.

After the UART hwmod conversion done and the omap-serial driver is
merged, we will convert the omap-serial driver to use runtime PM which
will then be much more efficient in power as the driver is the only
place that knows when the device needs to be enabled.

Kevin

> This optimization
> will help save power.
>
> Signed-off-by: Raja Govindraj <govindraj.raja@ti.com>
> Signed-off-by: Teerth Reddy <teerth@ti.com>
>
> ---
>  arch/arm/mach-omap2/serial.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
> index 3771254..d545eed 100644
> --- a/arch/arm/mach-omap2/serial.c
> +++ b/arch/arm/mach-omap2/serial.c
> @@ -343,6 +343,7 @@ static void omap_uart_idle_timer(unsigned long data)
>  {
>  	struct omap_uart_state *uart = (struct omap_uart_state *)data;
>  
> +	uart->timeout = DEFAULT_TIMEOUT;
>  	omap_uart_allow_sleep(uart);
>  }
>  
> @@ -364,7 +365,6 @@ void omap_uart_resume_idle(int num)
>  
>  	list_for_each_entry(uart, &uart_list, node) {
>  		if (num == uart->num) {
> -			omap_uart_enable_clocks(uart);
>  
>  			/* Check for IO pad wakeup */
>  			if (cpu_is_omap34xx() && uart->padconf) {
> @@ -436,7 +436,7 @@ static void omap_uart_idle_init(struct omap_uart_state *uart)
>  	int ret;
>  
>  	uart->can_sleep = 0;
> -	uart->timeout = DEFAULT_TIMEOUT;
> +	uart->timeout = 30 * HZ;
>  	setup_timer(&uart->timer, omap_uart_idle_timer,
>  		    (unsigned long) uart);
>  	if (uart->timeout)

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

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

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-29  6:58 [PATCH 1/3] OMAP3:PM: Keep UART clocks disabled is resume idle path Reddy, Teerth
2010-06-29 15:10 ` Kevin Hilman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.