On Friday, 29 of February 2008, Alan Stern wrote: > Is there any objection to adding extra PM_EVENT_* codes? Although they > won't ever be issued by the PM core, they will come in handy for > internal uses in power-aware subsystems (like USB). Well, this is in a (slight) conflict with the hibernation/suspend callbacks rework that I'm working on with Alex. I'll send the first patch in a few minutes for comments. Thanks, Rafael > Index: usb-2.6/include/linux/pm.h > =================================================================== > --- usb-2.6.orig/include/linux/pm.h > +++ usb-2.6/include/linux/pm.h > @@ -164,21 +164,40 @@ typedef struct pm_message { > * well as during system sleep states like PM_SUSPEND_STANDBY. They may > * be able to use wakeup events to exit from runtime low-power states, > * or from system low-power states such as standby or suspend-to-RAM. > + * > + * The PM core will never issue the PMSG_ codes for USER_SUSPEND, > + * USER_RESUME, REMOTE_WAKEUP, AUTOSUSPEND, or AUTORESUME. They are > + * provided for internal use by power-aware subsystems. > */ > > -#define PM_EVENT_ON 0 > -#define PM_EVENT_FREEZE 1 > -#define PM_EVENT_SUSPEND 2 > -#define PM_EVENT_HIBERNATE 4 > -#define PM_EVENT_PRETHAW 8 > +#define PM_EVENT_ON 0x0000 > +#define PM_EVENT_FREEZE 0x0001 > +#define PM_EVENT_SUSPEND 0x0002 > +#define PM_EVENT_HIBERNATE 0x0004 > +#define PM_EVENT_PRETHAW 0x0008 > +#define PM_EVENT_USER_SUSPEND 0x0010 > +#define PM_EVENT_USER_RESUME 0x0020 > +#define PM_EVENT_REMOTE_WAKEUP 0x0040 > +#define PM_EVENT_AUTOSUSPEND 0x0080 > +#define PM_EVENT_AUTORESUME 0x0100 > > #define PM_EVENT_SLEEP (PM_EVENT_SUSPEND | PM_EVENT_HIBERNATE) > > +#define PMSG_ON ((struct pm_message){ .event = PM_EVENT_ON, }) > #define PMSG_FREEZE ((struct pm_message){ .event = PM_EVENT_FREEZE, }) > #define PMSG_PRETHAW ((struct pm_message){ .event = PM_EVENT_PRETHAW, }) > #define PMSG_SUSPEND ((struct pm_message){ .event = PM_EVENT_SUSPEND, }) > #define PMSG_HIBERNATE ((struct pm_message){ .event = PM_EVENT_HIBERNATE, }) > -#define PMSG_ON ((struct pm_message){ .event = PM_EVENT_ON, }) > +#define PMSG_USER_SUSPEND ((struct pm_message) \ > + { .event = PM_EVENT_USER_SUSPEND, }) > +#define PMSG_USER_RESUME ((struct pm_message) \ > + { .event = PM_EVENT_USER_RESUME, }) > +#define PMSG_REMOTE_WAKEUP ((struct pm_message) \ > + { .event = PM_EVENT_REMOTE_WAKEUP, }) > +#define PMSG_AUTOSUSPSEND ((struct pm_message) \ > + { .event = PM_EVENT_AUTOSUSPSEND, }) > +#define PMSG_AUTORESUME ((struct pm_message) \ > + { .event = PM_EVENT_AUTORESUME, }) > > struct dev_pm_info { > pm_message_t power_state; > > > -- "Premature optimization is the root of all evil." - Donald Knuth _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm