Variable Clock Frequency and Power Saving

Andy Green andy at
Wed Oct 29 03:28:34 CET 2008

Hash: SHA1

Somebody in the thread at some point said:

| I put together a cpuidle driver for the S3C2410 and added the
| NO_HZ/clockevents work from Andresz to my build.  What follows is a
| list of time spent in idle (that's S3C2410 mode IDLE) for my GTA01.
| Some of the long idle times are really impressive (almost 0.5
| seconds).

| Anyway, the point of this post is to see what is happening in
| powersaving work.  I had a look at adding an idle-mode that switches
| to SLOW mode; this might be feasible, but as so many drivers need to
| adjust to the change of clock rate, the time to enter and leave this
| idle mode becomes significant (although, for 0.5 seconds, it should be
| no problem).

Thanks for looking at this area.  500mS chunks in SLOW or some strong
powersaving mode wth short wakes before the next one is pretty serious
potential powersaving.

| That said, there is no support for clock rate adjustment at all right
| now.  Is somebody working on this or does this already work in
| somebody's tree somewhere?

Cesar has cpufreq patches for GTA01, Ben Dooks mentioned them by name
when I met him and he seemed interested to take them upstream.  I saw
the odd cpufreq reference in s3c arch stuff in stable-tracking, but when
I went to grep it I see they are not really doing anything yet.

| I think we need to adjust the 'clk' infrastructure so that:
| i)  Children are notified when parent clock rate changes
| ii)  Clocks can be reparented (for example, for SLOW mode we switch
| from MPLL to XTAL).
| iii)  Clocks get a list of callbacks to invoke when their rate changes
| so that drivers can make the necessary adjustments.  (e.g. framebuffer
| driver needs to know when hclk changes in order to adjust its vclk
| divider)

I cc Ben and Cesar.

- -Andy

Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora -


More information about the openmoko-kernel mailing list