On Thursday 18 March 2010, Rafael J. Wysocki wrote: > On Thursday 18 March 2010, Sebastian Ott wrote: > > > > On Wed, 17 Mar 2010, Rafael J. Wysocki wrote: > > > > > On Wednesday 17 March 2010, Sebastian Ott wrote: > > > > hi, > > > > > > > > on s390 certain hw features which we normally enable in our init > > > > calls, get reset while restoring the hibernation image. > > > > so we need a trigger to reenable them before the device callbacks > > > > are called. > > > > > > > > is it possible to add an additional event for the existing > > > > pm_notifier (something like the attached patch)? > > > > > > > > regards > > > > sebastian > > > > > > > > > > > > Signed-off-by: Sebastian Ott <sebott@xxxxxxxxxxxxxxxxxx> > > > > --- > > > > include/linux/notifier.h | 1 + > > > > kernel/power/hibernate.c | 2 ++ > > > > 2 files changed, 3 insertions(+) > > > > > > > > Index: linux-2.6/include/linux/notifier.h > > > > =================================================================== > > > > --- linux-2.6.orig/include/linux/notifier.h > > > > +++ linux-2.6/include/linux/notifier.h > > > > @@ -250,6 +250,8 @@ static inline int notifier_to_errno(int > > > > #define PM_POST_SUSPEND 0x0004 /* Suspend finished */ > > > > #define PM_RESTORE_PREPARE 0x0005 /* Going to restore a saved image */ > > > > #define PM_POST_RESTORE 0x0006 /* Restore failed */ > > > > +#define PM_RESTORE_FINISHED 0x0007 /* Image restored, called prior to > > > > + device callbacks */ > > > > > > > > /* Console keyboard events. > > > > * Note: KBD_KEYCODE is always sent before KBD_UNBOUND_KEYCODE, KBD_UNICODE and > > > > Index: linux-2.6/kernel/power/hibernate.c > > > > =================================================================== > > > > --- linux-2.6.orig/kernel/power/hibernate.c > > > > +++ linux-2.6/kernel/power/hibernate.c > > > > @@ -290,6 +290,8 @@ static int create_image(int platform_mod > > > > if (!in_suspend) > > > > platform_leave(platform_mode); > > > > > > > > + pm_notifier_call_chain(PM_RESTORE_FINISHED); > > > > > > Hmm. Why can't you put that in platform_leave()? > > > > i'm confused, are you suggesting to put the actual statement in > > platform_leave? this would change that all these platform_* functions > > are nop's if platform_mode isn't set (i need the trigger independent > > of the hibernation_mode) > > > > or are you suggesting to implement platform_hibernation_ops for s390? > > This one. > > > - this seems a bit too much since i only need one trigger, > > So you don't need to implement the other ones. :-) > > You'll need to remove the check in hibernation_set_ops(), but that's fine. Oops, scratch that. It's not enough. There are a few helper functions in kernel/power/hibernate.c that will need to be updated along with that. Rafael _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm