[PATCH 2/5] powerpc: fix suspend states again

Benjamin Herrenschmidt benh at kernel.crashing.org
Tue Mar 20 03:39:02 EST 2007


On Mon, 2007-03-19 at 17:22 +0100, Johannes Berg wrote:
> In commit 0fba3a1f39f8b0a50b56c8b068fa52131cbc84c2 (a very long time ago,
> May 2006), I fixed a bug that caused powermacs to crash when you tried
> entering standby/mem suspend states.
> 
> As I'm now getting more familiar with the suspend code I notice a few
> more things:
>  1. we previously misunderstood what pm_ops is for, it isn't supposed to be
>     for doing platform dependent suspend/resume stuff that needs to be done
>     for suspend to disk (as we currently try to use it!), it is instead for
>     entering platform dependent suspend states ("standby", "mem").
>  2. due to the first point, we never properly save FPU and altivec states
>     when suspending to disk. It probably hasn't hurt yet because the process
>     that writes the "disk" to /sys/power/state uses neither and its context
>     is used.
> 
> This patch addresses these points as follows:
>  1. remove all pm_ops from powermac, powermac suspend to ram isn't currently
>     usable via /sys/power/state but is done via the PMU instead.
>  2. move the code responsible for storing FPU/altivec state into
>     save_processor_state and the set_context() call to restore_processor_state.
> 
> It also adds a call to kernel_enable_spe() but I don't have any machines that
> have that to see if it actually works anyway.
> 
> It may look like there is some code removal missing but that is actually because
> the new suspend.h file overrides the ppc/suspend.h one which was previously used.
> 
> A follow-on patch will create new pm_ops for via-pmu.
> 
> Signed-off-by: Johannes Berg <johannes at sipsolutions.net>

Acked-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>





More information about the Linuxppc-dev mailing list