From: Chris Wright Date: Tue, 30 May 2006 18:53:13 +0000 (-0700) Subject: Fix powermac suspend-to-disk X-Git-Tag: v2.6.16.19~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=103402da7cb0312d48b38d96846e749ca772ce54;p=thirdparty%2Fkernel%2Fstable-queue.git Fix powermac suspend-to-disk --- diff --git a/queue-2.6.16/powermac-force-only-suspend-to-disk-to-be-valid.patch b/queue-2.6.16/powermac-force-only-suspend-to-disk-to-be-valid.patch new file mode 100644 index 00000000000..a01f422765f --- /dev/null +++ b/queue-2.6.16/powermac-force-only-suspend-to-disk-to-be-valid.patch @@ -0,0 +1,53 @@ +From stable-bounces@linux.kernel.org Thu May 25 18:48:58 2006 +Date: Thu, 25 May 2006 18:44:24 -0700 +From: akpm@osdl.org +To: torvalds@osdl.org +Cc: benh@kernel.crashing.org, johannes@sipsolutions.net, stable@kernel.org +Subject: PowerMac: force only suspend-to-disk to be valid + +From: Johannes Berg + +For a very long time, echoing 'standby' or 'mem' into /sys/power/state has +killed the machine on powerpc. This patch fixes that. + +This patch adds the .valid callback to pm_ops on PowerMac so that only the +suspend to disk state can be entered. Note that just returning 0 would +suffice since the upper layers don't pass PM_SUSPEND_DISK down, but we +handle it there regardless just in case that changes. + +Acked-by: Benjamin Herrenschmidt +Signed-off-by: Johannes Berg +Cc: +Signed-off-by: Andrew Morton +Signed-off-by: Chris Wright +--- + + arch/powerpc/platforms/powermac/setup.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +--- linux-2.6.16.18.orig/arch/powerpc/platforms/powermac/setup.c ++++ linux-2.6.16.18/arch/powerpc/platforms/powermac/setup.c +@@ -456,11 +456,23 @@ static int pmac_pm_finish(suspend_state_ + return 0; + } + ++static int pmac_pm_valid(suspend_state_t state) ++{ ++ switch (state) { ++ case PM_SUSPEND_DISK: ++ return 1; ++ /* can't do any other states via generic mechanism yet */ ++ default: ++ return 0; ++ } ++} ++ + static struct pm_ops pmac_pm_ops = { + .pm_disk_mode = PM_DISK_SHUTDOWN, + .prepare = pmac_pm_prepare, + .enter = pmac_pm_enter, + .finish = pmac_pm_finish, ++ .valid = pmac_pm_valid, + }; + + #endif /* CONFIG_SOFTWARE_SUSPEND */ diff --git a/queue-2.6.16/series b/queue-2.6.16/series index 1e4f67d1b38..c0e75dc1af2 100644 --- a/queue-2.6.16/series +++ b/queue-2.6.16/series @@ -1,3 +1,4 @@ altix-correct-ioc4-port-order.patch altix-correct-ioc3-port-order.patch cpuset-might-sleep-checking-zones-allowed-fix.patch +powermac-force-only-suspend-to-disk-to-be-valid.patch