Messages in this thread |  | | | Date | Fri, 4 May 2007 22:37:42 +0400 | | From | "Alexey Starikovskiy" <> | | Subject | Re: [linux-pm] [RFT][PATCH] swsusp: Change code ordering related to ACPI |
| |
Sorry, I meant executing _WAK _after_ resume of devices...
Alex.
On 5/4/07, Alexey Starikovskiy <aystarik@gmail.com> wrote: > Doing _WAK (from pm_finish) before device_resume will brake almost all > ACPI devices. > > Regards, > Alex. > > On 5/4/07, Rafael J. Wysocki <rjw@sisk.pl> wrote: > > Hi, > > > > The change of the hibernation/suspend code ordering made before 2.6.21 has > > caused some systems to have problems related to ACPI. In particular, the > > 'platform' hibernation mode doesn't work any more on some systems. > > > > It has been confirmed that the appended patch fixes the problem, but it's not > > certain if this changes don't break some other systems. For this reason, all > > users of hibernation (swsusp, uswsusp) are gently requested to verify if this > > patch doesn't break their systems. > > > > Greetings, > > Rafael > > > > --- > > From: Rafael J. Wysocki <rjw@sisk.pl> > > > > The current code ordering in the hibernation code paths causes some systems to > > have problems. It has been confirmed by testers that these problems do not > > appear if the acpi_pm_finish() function (called via platform_finish()) is > > executed after device_suspend(). > > > > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> > > --- > > kernel/power/disk.c | 4 ++-- > > kernel/power/user.c | 8 ++++---- > > 2 files changed, 6 insertions(+), 6 deletions(-) > > > > Index: linux-2.6.21/kernel/power/disk.c > > =================================================================== > > --- linux-2.6.21.orig/kernel/power/disk.c 2007-05-04 10:31:51.000000000 +0200 > > +++ linux-2.6.21/kernel/power/disk.c 2007-05-04 10:32:12.000000000 +0200 > > @@ -195,9 +195,9 @@ int hibernate(void) > > > > if (in_suspend) { > > enable_nonboot_cpus(); > > - platform_finish(); > > device_resume(); > > resume_console(); > > + platform_finish(); > > pr_debug("PM: writing image.\n"); > > error = swsusp_write(); > > if (!error) > > @@ -214,9 +214,9 @@ int hibernate(void) > > Enable_cpus: > > enable_nonboot_cpus(); > > Resume_devices: > > - platform_finish(); > > device_resume(); > > resume_console(); > > + platform_finish(); > > Thaw: > > mutex_unlock(&pm_mutex); > > unprepare_processes(); > > Index: linux-2.6.21/kernel/power/user.c > > =================================================================== > > --- linux-2.6.21.orig/kernel/power/user.c 2007-05-04 10:31:51.000000000 +0200 > > +++ linux-2.6.21/kernel/power/user.c 2007-05-04 10:32:12.000000000 +0200 > > @@ -169,11 +169,11 @@ static inline int snapshot_suspend(int p > > } > > enable_nonboot_cpus(); > > Resume_devices: > > + device_resume(); > > + resume_console(); > > if (platform_suspend) > > platform_finish(); > > > > - device_resume(); > > - resume_console(); > > Finish: > > mutex_unlock(&pm_mutex); > > return error; > > @@ -201,11 +201,11 @@ static inline int snapshot_restore(int p > > > > enable_nonboot_cpus(); > > Resume_devices: > > + device_resume(); > > + resume_console(); > > if (platform_suspend) > > platform_finish(); > > > > - device_resume(); > > - resume_console(); > > Finish: > > pm_restore_console(); > > mutex_unlock(&pm_mutex); > > _______________________________________________ > > linux-pm mailing list > > linux-pm@lists.linux-foundation.org > > https://lists.linux-foundation.org/mailman/listinfo/linux-pm > > > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |