From: Kevin Hilman <khilman@deeprootsystems.com>
To: Jean Pihet <jpihet@mvista.com>
Cc: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: Re: 2.6.29 PM and CPUIDLE
Date: Fri, 10 Apr 2009 16:11:35 -0700 [thread overview]
Message-ID: <8763hc2jfc.fsf@deeprootsystems.com> (raw)
In-Reply-To: <200904101654.58917.jpihet@mvista.com> (Jean Pihet's message of "Fri\, 10 Apr 2009 16\:54\:58 +0200")
Jean Pihet <jpihet@mvista.com> writes:
> I am having problems using CPUIDLE PM_SLEEP on Beagleboard with the
> latest pm tree. It looks like CPUIDLE prevents the system to go
> into retention mode, while it works fine without CPUIDLE enabled:
It's a feature. ;)
> root@beagleboard:~# echo 1 > /sys/power/clocks_off_while_idle
> root@beagleboard:~# echo mem > /sys/power/state
Try this:
# echo 1 > /sys/power/sleep_while_idle
And then try to suspend. I think this should work (you may have to
wait a little just so you hit the idle loop before trying suspend.)
What's happening is that without sleep_while_idle set, CPUidle will
not go into any other state than C1 (see the omap3_can_sleep() check.)
Recently, C1 was changed to keep the MPU and CORE ON to have the a
very fast wakeup latency. So, with CPUidle running, the next power
states are set to ON in the idle path and never tested/changed in the
suspend path.
The bug is that the suspend path should always ensure that either RET
or OFF is set in the next states (depending on enable_off_mode.) This
was not necessary before the new C1 was added because all of the idle
states at least tried for RET.
Kevin
> PM: Syncing filesystems ... done.
> Freezing user space processes ... (elapsed 0.02 seconds) done.
> Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
> Suspending console(s) (use no_console_suspend to debug)
> omapfb omapfb: timeout waiting for FRAME DONE
> Powerdomain (core_pwrdm) didn't enter target state 1
> Powerdomain (dss_pwrdm) didn't enter target state 1
> Could not enter target state in pm_suspend
> Restarting tasks ... done.
>
> The registers dump shows the next power state in PM_PWSTCTRL is set to ON
> instead of RET for MPU and CORE. Furthermore DSS is not reaching RET (stays
> ON).
>
> Are the CPUIDLE and suspend/resume features compatible with each other? Am I
> missing something, e.g. a way to change the behavior from /sys?
>
> Regards,
> Jean
prev parent reply other threads:[~2009-04-10 23:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-10 14:54 2.6.29 PM and CPUIDLE Jean Pihet
2009-04-10 23:11 ` Kevin Hilman [this message]
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=8763hc2jfc.fsf@deeprootsystems.com \
--to=khilman@deeprootsystems.com \
--cc=jpihet@mvista.com \
--cc=linux-omap@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