Messages in this thread | | | From | Chris Feng (冯保林) <> | Subject | Re: [PATCH] PM: hibernate: Fix the bug where wake events cannot wake system during hibernation | Date | Mon, 6 Nov 2023 06:06:35 +0000 |
| |
Hi Rafael J,
On Fri, 2023-10-27 at 13:22 +0800, Chris Feng wrote: > On Wed, 2023-10-25 at 20:28 +0200, Rafael J. Wysocki wrote: > > On Tue, Oct 24, 2023 at 11:15 AM <chris.feng@mediatek.com> wrote: > > > > > > --- > > > kernel/power/hibernate.c | 10 ++++++++-- > > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > > > diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c > > > index 8d35b9f9aaa3..16d8027a195d 100644 > > > --- a/kernel/power/hibernate.c > > > +++ b/kernel/power/hibernate.c > > > @@ -642,9 +642,9 @@ int hibernation_platform_enter(void) > > > */ > > > static void power_down(void) > > > { > > > -#ifdef CONFIG_SUSPEND > > > int error; > > > > > > +#ifdef CONFIG_SUSPEND > > > if (hibernation_mode == HIBERNATION_SUSPEND) { > > > error = > > > > suspend_devices_and_enter(mem_sleep_current); > > > if (error) { > > > @@ -667,7 +667,13 @@ static void power_down(void) > > > kernel_restart(NULL); > > > break; > > > case HIBERNATION_PLATFORM: > > > - hibernation_platform_enter(); > > > + error = hibernation_platform_enter(); > > > + if (error) { > > > > This error need not be -EAGAIN which means pending wakeup. There > > are > > other errors that can be returned for which the fallback to > > shutdown > > is still desirable. > > > > Thank you for your comments. I have some questions: > In function hibernation_platform_enter(), if function > dpm_suspend_start/end returns error, it goes to resume devices flow. > After the system restores the devices, the system shuts down. Is > this > expected design behivour? If it is, would you help to give the > design > reasons in short ? From my point of view, since the deivces are > resumed, why dose the system go to shut down state ? And also, after > the system shuts down , and when the system is waked up by power key, > the devices will be resumed again when restoring the saved system's > image. >
We are looking forward to your reply.
> > > + swsusp_unmark(); > > > + events_check_enabled = false; > > > + pr_err("Hibernation Abort.\n"); > > > + return; > > > + } > > > fallthrough; > > > case HIBERNATION_SHUTDOWN: > > > if (kernel_can_power_off()) > > > -- > > > 2.17.0 > > >
Thanks!
| |