linux/arch/ppc
Benjamin Herrenschmidt 0086b5ec78 [PATCH] ppc32: Fix nasty sleep/wakeup problem
Despite all the care lately in making the powermac sleep/wakeup as
robust as possible, there is still a nasty related to the use of cpufreq
on PMU based machines.  Unfortunately, it affects paulus old powerbook
so I have to fix it :)

We didn't manage to understand what is precisely going on, it leads to
memory corruption and might have to do with RAM not beeing properly
refreshed when a cpufreq transition is done right before the sleep.

The best workaround (and less intrusive at this point) we could come up
with is included in this patch.  We basically do _not_ force a switch to
high speed on suspend anymore (that is what is causing the problem) on
those machines.  We still force a speed switch on wakeup (since we don't
know what speed we are coming back from sleep at, and that seems to work
fine).

Since, during this short interval, the actual CPU speed might be
incorrect, we also hack around by multiplying loops_per_jiffy by 2 (max
speed factor on those machines) during early wakeup stage to make sure
udelay's during that time aren't too short.

For after 2.6.12, we'll change udelay implementation to use the CPU
timebase (which is always constant) instead like we do on ppc64 and thus
get rid of all those problems.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-09 21:33:35 -07:00
..
4xx_io Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
8xx_io Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
8260_io Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amiga Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
boot [PATCH] ppc32: Fix uImage make target to report success correctly 2005-05-28 16:46:14 -07:00
configs [PATCH] ppc32: Add VIA IDE support to MPC8555 CDS platform 2005-05-28 16:46:15 -07:00
kernel [PATCH] ppc32: add 405EP cpu_spec entry 2005-06-09 15:39:52 -07:00
lib [PATCH] ppc32: Fix __copy_tofrom_user return value 2005-05-20 07:54:10 -07:00
math-emu Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mm [PATCH] ppc32: don't call progress functions after boot 2005-05-20 07:54:10 -07:00
oprofile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
platforms [PATCH] ppc32: Fix nasty sleep/wakeup problem 2005-06-09 21:33:35 -07:00
syslib [PATCH] ppc32: Apple device-tree bug fix 2005-06-01 07:54:13 -07:00
xmon Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Kconfig [PATCH] ppc32: Support for 82xx PQII on-chip PCI bridge 2005-05-28 16:46:15 -07:00
Kconfig.debug Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [PATCH] ppc32: refactor FPU exception handling 2005-05-01 08:58:40 -07:00