[POWERPC] pasemi: Don't enter powersaving states from elevated astates

When the PWRficient cpus are entered into powersavings states, the
astate is automatically dropped down to 0. While we still restore it
when we come out of idle, it can still cause some weird effects with
respect to performance (especially since it takes a while to ramp up to
higher astates).

So, to avoid this, don't enter power savings when the cpufreq driver
(or user) has set higher astates than 0.

The restore is still required, since there's a chance the astate has
been raised from the other cpu while the idling one was asleep.

Signed-off-by: Olof Johansson <olof@lixom.net>
Dieser Commit ist enthalten in:
Olof Johansson
2007-11-07 09:26:06 -06:00
Ursprung 0d08a84770
Commit 8b32bc0325
3 geänderte Dateien mit 22 neuen und 1 gelöschten Zeilen

Datei anzeigen

@@ -16,8 +16,14 @@ extern void idle_doze(void);
/* Restore astate to last set */
#ifdef CONFIG_PPC_PASEMI_CPUFREQ
extern int check_astate(void);
extern void restore_astate(int cpu);
#else
static inline int check_astate(void)
{
/* Always return >0 so we never power save */
return 1;
}
static inline void restore_astate(int cpu)
{
}