Re: [PATCH] swsusp: Use platform mode by default

From: Rafael J. Wysocki
Date: Fri May 11 2007 - 05:17:25 EST


On Friday, 11 May 2007 10:36, Coywolf Qi Hunt wrote:
> Hello,
>
> (This patch is merged in 2.6.20 as commit
> 9185cfa92507d07ac787bc73d06c42222eec7239)
>
> With this patch, my desktop no longer powers off after hibernate(8).
> It just reboots.
>
> This user land fix can restore the old behavior:
> echo shutdown > /sys/power/disk
>
> The commit causes user land breakage. Is this behavior on purpose?

The change to using the 'platform' mode by default was made because some
notebooks didn't suspend and resume correctly in the 'shutdown' mode.

We're working on fixing the breakage, but currently it's difficult, because
none of my testboxes has problems with the 'platform' hibernation and I
cannot reproduce the reported issues.

BTW, which kernel have you tested?

Greetings,
Rafael


> On 02/11/06, Len Brown <len.brown@xxxxxxxxx> wrote:
> > Applied.
> >
> > thanks,
> > -Len
> >
> > On Wednesday 01 November 2006 07:23, Rafael J. Wysocki wrote:
> > > It has been reported that on some systems the functionality after a resume
> > > from disk is limited if the system is simply powered off during the suspend
> > > instead of using the ACPI S4 suspend (aka platform mode).
> > >
> > > Unfortunately the default is currently to power off the system during the
> > > suspend so the users of these systems experience problems after the resume
> > > if they don't switch to the platform mode explicitly. This patch makes swsusp
> > > use the platform mode by default to avoid such situations.
> > >
> > > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
> > > ---
> > > kernel/power/disk.c | 8 +++++---
> > > kernel/power/main.c | 2 +-
> > > 2 files changed, 6 insertions(+), 4 deletions(-)
> > >
> > > Index: linux-2.6.19-rc4-mm1/kernel/power/main.c
> > > ===================================================================
> > > --- linux-2.6.19-rc4-mm1.orig/kernel/power/main.c
> > > +++ linux-2.6.19-rc4-mm1/kernel/power/main.c
> > > @@ -29,7 +29,7 @@
> > > DECLARE_MUTEX(pm_sem);
> > >
> > > struct pm_ops *pm_ops;
> > > -suspend_disk_method_t pm_disk_mode = PM_DISK_SHUTDOWN;
> > > +suspend_disk_method_t pm_disk_mode = PM_DISK_PLATFORM;
> > >
> > > /**
> > > * pm_set_ops - Set the global power method table.
> > > Index: linux-2.6.19-rc4-mm1/kernel/power/disk.c
> > > ===================================================================
> > > --- linux-2.6.19-rc4-mm1.orig/kernel/power/disk.c
> > > +++ linux-2.6.19-rc4-mm1/kernel/power/disk.c
> > > @@ -62,9 +62,11 @@ static void power_down(suspend_disk_meth
> > >
> > > switch(mode) {
> > > case PM_DISK_PLATFORM:
> > > - kernel_shutdown_prepare(SYSTEM_SUSPEND_DISK);
> > > - error = pm_ops->enter(PM_SUSPEND_DISK);
> > > - break;
> > > + if (pm_ops && pm_ops->enter) {
> > > + kernel_shutdown_prepare(SYSTEM_SUSPEND_DISK);
> > > + error = pm_ops->enter(PM_SUSPEND_DISK);
> > > + break;
> > > + }
> > > case PM_DISK_SHUTDOWN:
> > > kernel_power_off();
> > > break;
> > > -

--
If you don't have the time to read,
you don't have the time or the tools to write.
- Stephen King
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/