diff mbox

Suggestion and patch about the alarm of TWL4030-RTC

Message ID 49EEA279.2010202@samsung.com (mailing list archive)
State Awaiting Upstream, archived
Headers show

Commit Message

kim kyuwon April 22, 2009, 4:52 a.m. UTC
Hi All,

From the twl4030_rtc_suspend() in rtc-twl4030.c, the alarm signal of TWL4030 RTC can't wake up the system form suspend.
However, I think it is more reasonable to alarm wake up the system and this is just we do.
(Mobile phone is mostly in suspend state, especially in the morning, thus alarm signal can wake up the phone!)
So I'm sending following patch.

Please give your comments.
I really want to apply this patch.

Thanks & Regards,
Kyuwon

--
From 9d70ffc38653b1fb0dc7ae0950502e4adfe06c50 Mon Sep 17 00:00:00 2001
From: Kim Kyuwon <q1.kim@samsung.com>
Date: Wed, 22 Apr 2009 13:29:50 +0900
Subject: [PATCH] rtc: rtc-twl4030 don't mask alarm interrupts on suspend

This patch enables the alarm interrupt of TWL4030 RTC to wake up the system from suspend

Signed-off-by: Kim Kyuwon <q1.kim@samsung.com>
---
 drivers/rtc/rtc-twl4030.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

Comments

David Brownell April 22, 2009, 4:57 a.m. UTC | #1
On Tuesday 21 April 2009, Kim Kyuwon wrote:
> Hi All,
> 
> >From the twl4030_rtc_suspend() in rtc-twl4030.c, the alarm signal of TWL4030 RTC can't wake up the system form suspend.
> However, I think it is more reasonable to alarm wake up the system and this is just we do.
> (Mobile phone is mostly in suspend state, especially in the morning, thus alarm signal can wake up the phone!)
> So I'm sending following patch.
> 
> Please give your comments.
> I really want to apply this patch.
> 
> Thanks & Regards,
> Kyuwon
> 
> --
> >From 9d70ffc38653b1fb0dc7ae0950502e4adfe06c50 Mon Sep 17 00:00:00 2001
> From: Kim Kyuwon <q1.kim@samsung.com>
> Date: Wed, 22 Apr 2009 13:29:50 +0900
> Subject: [PATCH] rtc: rtc-twl4030 don't mask alarm interrupts on suspend
> 
> This patch enables the alarm interrupt of TWL4030 RTC to wake up the system from suspend
> 
> Signed-off-by: Kim Kyuwon <q1.kim@samsung.com>

Looks right to me.  If you've tested thhis:

  Acked-by: David Brownell <dbrownell@users.sourceforge.net>

The reason I left that original clearly-wrong code in place
was that I had yet to see an OMAP3-based system which could
use the system suspend state, so it was unclear that change
would suffice...


> ---
>  drivers/rtc/rtc-twl4030.c |    4 +---
>  1 files changed, 1 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-twl4030.c b/drivers/rtc/rtc-twl4030.c
> index ad35f76..c185939 100644
> --- a/drivers/rtc/rtc-twl4030.c
> +++ b/drivers/rtc/rtc-twl4030.c
> @@ -495,9 +495,7 @@ static int twl4030_rtc_suspend(struct platform_device *pdev, pm_message_t state)
>  {
>  	irqstat = rtc_irq_bits;
>  
> -	/* REVISIT alarm may need to wake us from sleep */
> -	mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M |
> -			 BIT_RTC_INTERRUPTS_REG_IT_ALARM_M);
> +	mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M);
>  	return 0;
>  }
>  
> -- 
> 1.5.2.5
> 
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
kim kyuwon April 22, 2009, 5:34 a.m. UTC | #2
On Wed, Apr 22, 2009 at 1:57 PM, David Brownell <david-b@pacbell.net> wrote:
> On Tuesday 21 April 2009, Kim Kyuwon wrote:
>> Hi All,
>>
>> >From the twl4030_rtc_suspend() in rtc-twl4030.c, the alarm signal of TWL4030 RTC can't wake up the system form suspend.
>> However, I think it is more reasonable to alarm wake up the system and this is just we do.
>> (Mobile phone is mostly in suspend state, especially in the morning, thus alarm signal can wake up the phone!)
>> So I'm sending following patch.
>>
>> Please give your comments.
>> I really want to apply this patch.
>>
>> Thanks & Regards,
>> Kyuwon
>>
>> --
>> >From 9d70ffc38653b1fb0dc7ae0950502e4adfe06c50 Mon Sep 17 00:00:00 2001
>> From: Kim Kyuwon <q1.kim@samsung.com>
>> Date: Wed, 22 Apr 2009 13:29:50 +0900
>> Subject: [PATCH] rtc: rtc-twl4030 don't mask alarm interrupts on suspend
>>
>> This patch enables the alarm interrupt of TWL4030 RTC to wake up the system from suspend
>>
>> Signed-off-by: Kim Kyuwon <q1.kim@samsung.com>
>
> Looks right to me.  If you've tested thhis:

I tested with following commands,

# echo +10 > sys/class/rtc/rtc0/wakealarm; echo mem > /sys/power/state;

I confirm that the system wake up after 10 seconds.
Thank you.

>  Acked-by: David Brownell <dbrownell@users.sourceforge.net>
>
> The reason I left that original clearly-wrong code in place
> was that I had yet to see an OMAP3-based system which could
> use the system suspend state, so it was unclear that change
> would suffice...
>
>
>> ---
>>  drivers/rtc/rtc-twl4030.c |    4 +---
>>  1 files changed, 1 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/rtc/rtc-twl4030.c b/drivers/rtc/rtc-twl4030.c
>> index ad35f76..c185939 100644
>> --- a/drivers/rtc/rtc-twl4030.c
>> +++ b/drivers/rtc/rtc-twl4030.c
>> @@ -495,9 +495,7 @@ static int twl4030_rtc_suspend(struct platform_device *pdev, pm_message_t state)
>>  {
>>       irqstat = rtc_irq_bits;
>>
>> -     /* REVISIT alarm may need to wake us from sleep */
>> -     mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M |
>> -                      BIT_RTC_INTERRUPTS_REG_IT_ALARM_M);
>> +     mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M);
>>       return 0;
>>  }
>>
>> --
>> 1.5.2.5
>>
>>
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/rtc/rtc-twl4030.c b/drivers/rtc/rtc-twl4030.c
index ad35f76..c185939 100644
--- a/drivers/rtc/rtc-twl4030.c
+++ b/drivers/rtc/rtc-twl4030.c
@@ -495,9 +495,7 @@  static int twl4030_rtc_suspend(struct platform_device *pdev, pm_message_t state)
 {
 	irqstat = rtc_irq_bits;
 
-	/* REVISIT alarm may need to wake us from sleep */
-	mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M |
-			 BIT_RTC_INTERRUPTS_REG_IT_ALARM_M);
+	mask_rtc_irq_bit(BIT_RTC_INTERRUPTS_REG_IT_TIMER_M);
 	return 0;
 }