From: Mark Lord <kernel@teksavvy.com>
To: John Stultz <john.stultz@linaro.org>
Cc: richard -rw- weinberger <richard.weinberger@gmail.com>,
Linux Kernel <linux-kernel@vger.kernel.org>,
rtc-linux@googlegroups.com,
Alessandro Zummo <a.zummo@towertech.it>,
Greg Kroah-Hartman <greg@kroah.com>,
stable@vger.kernel.org,
Rabin Vincent <rabin.vincent@stericsson.com>
Subject: Re: [REGRESSION] rtc/interface.c: kills suspend-to-ram
Date: Mon, 16 Apr 2012 22:30:43 -0400 [thread overview]
Message-ID: <4F8CD5D3.8060006@teksavvy.com> (raw)
In-Reply-To: <4F8C926D.2040503@linaro.org>
On 12-04-16 05:43 PM, John Stultz wrote:
> On 04/16/2012 12:45 PM, John Stultz wrote:
>> On 04/16/2012 08:57 AM, Mark Lord wrote:
>>> On 12-04-16 11:49 AM, richard -rw- weinberger wrote:
>>>> On Mon, Apr 16, 2012 at 5:42 PM, Mark Lord<kernel@teksavvy.com> wrote:
>>>>> On 12-04-16 10:23 AM, richard -rw- weinberger wrote:
>>>>>> On Mon, Apr 16, 2012 at 3:55 PM, Mark Lord<kernel@teksavvy.com> wrote:
>>>>>>> On 12-04-16 12:36 AM, Mark Lord wrote:
>>>>>>>> Something recent has killed suspend-to-ram on a number of machines here.
>>>>>>>> The symptom is that they suspend, but immediately wake up and panic,
>>>>>>>> with just a black screen so no visible messages to go by.
>>>>>>>>
>>>>>>>> The patch below works around the issue -- making things work as they used to work.
>>>>>>>>
>>>>>>>> +++ linux/drivers/rtc/interface.c 2012-04-16 00:09:14.105387382 -0400
>>>>>>>> @@ -773,7 +773,7 @@
>>>>>>>> if (!rtc->ops || !rtc->ops->alarm_irq_enable)
>>>>>>>> return;
>>>>>>>>
>>>>>>>> - rtc->ops->alarm_irq_enable(rtc->dev.parent, false);
>>>>>>>> + //rtc->ops->alarm_irq_enable(rtc->dev.parent, false); // Kills suspend on ZBOX HD-ID41U
>>>>>>>> }
>>>>>
>>>>> How about the line above -- that's the commit that breaks things here.
>>>> Download Linus' GIT tree and use git blame. :-)
>>> Too steep a learning curve for a casual user.
>>> But google works:
>>>
>>> http://www.mail-archive.com/stable@vger.kernel.org/msg04391.html
>>
>> Thanks for the report and sorry for the trouble. I'm trying to reproduce this locally. Can you
>> send me your .config?
>
> Ok, so far I've not been able to reproduce anything like this with my atom x86_64 system (done a
> number of suspends both with and without RTC alarms queued to wake the system up). Can you provide
> any more details about how you're triggering suspend when you see the problem?
> Do you have an RTC alarm set for some future time to wake up the system?
> I'm just trying to understand when rtc_alarm_disable is being called and causing the trouble in your
> case.
>
> The original related issue with the earlier version of this patch was some hardware would wake up
> immediately after suspend if the rtc was set in the past (which is what was done to "disable" the
> alarm). I suspect there is a similar hardware quirk we're dealing with that may require extra logic
> in the rtc-cmos.c alarm_irq_enable() function.
Thanks for looking into it, John.
I also spent many more hours digging away at it here today,
and I now understand (mostly) what is happening and why.
The code above introduces a new access to the RTC that never existed before.
For the case where the Alarm has never been enabled by software,
I believe the code above will still try to "disable" it.
That's the new behaviour we didn't have prior to this patch.
And.. on some of the systems I'm testing on, the BIOS setup has
the RTC Alarm "enabled", which means "under BIOS control",
as opposed to "disabled" which means "under software control".
It's the "under BIOS control" systems that the above patch breaks.
So I think the code may just need to be slightly more clever,
and not disable an Alarm that was never enabled by software in the first place.
Cheers
Mark
next prev parent reply other threads:[~2012-04-17 2:30 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-16 4:36 [REGRESSION] rtc/interface.c: kills suspend-to-ram Mark Lord
2012-04-16 13:55 ` Mark Lord
2012-04-16 14:23 ` richard -rw- weinberger
2012-04-16 15:42 ` Mark Lord
2012-04-16 15:49 ` richard -rw- weinberger
2012-04-16 15:57 ` Mark Lord
2012-04-16 19:45 ` John Stultz
2012-04-16 21:43 ` John Stultz
2012-04-17 2:30 ` Mark Lord [this message]
2012-04-17 5:13 ` John Stultz
2012-04-17 12:51 ` Mark Lord
2012-04-17 20:11 ` Mark Lord
2012-04-17 20:12 ` Mark Lord
2012-04-17 23:02 ` John Stultz
2012-04-18 1:29 ` Mark Lord
2012-04-18 18:29 ` John Stultz
2012-04-27 14:33 ` Mark Lord
2012-04-27 19:22 ` John Stultz
2012-04-16 19:44 ` John Stultz
2012-04-17 2:27 ` Mark Lord
2012-04-16 14:26 ` [rtc-linux] " Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F8CD5D3.8060006@teksavvy.com \
--to=kernel@teksavvy.com \
--cc=a.zummo@towertech.it \
--cc=greg@kroah.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rabin.vincent@stericsson.com \
--cc=richard.weinberger@gmail.com \
--cc=rtc-linux@googlegroups.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox