lkml.org 
[lkml]   [2008]   [Jul]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH -mm 1/8] PM: Add new PM_EVENT codes for runtime power transitions
    Date
    From: Alan Stern <stern@rowland.harvard.edu>
    Subject: PM: Add new PM_EVENT codes for runtime power transitions

    This patch (as1112) adds some new PM_EVENT_* codes for use by kernel
    subsystems. They describe runtime power-state transitions of the sort
    already implemented by the USB subsystem.

    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    ---

    include/linux/pm.h | 39 ++++++++++++++++++++++++++++++++++++---
    1 file changed, 36 insertions(+), 3 deletions(-)

    Index: linux-next/include/linux/pm.h
    ===================================================================
    --- linux-next.orig/include/linux/pm.h
    +++ linux-next/include/linux/pm.h
    @@ -245,6 +245,21 @@ struct pm_ext_ops {
    * RECOVER Creation of a hibernation image or restoration of the main
    * memory contents from a hibernation image has failed, call
    * ->thaw() and ->complete() for all devices.
    + *
    + * The following PM_EVENT_ messages are defined for internal use by
    + * kernel subsystems. They are never issued by the PM core.
    + *
    + * USER_SUSPEND Manual selective suspend was issued by userspace.
    + *
    + * USER_RESUME Manual selective resume was issued by userspace.
    + *
    + * REMOTE_WAKEUP Remote-wakeup request was received from the device.
    + *
    + * AUTO_SUSPEND Automatic (device idle) runtime suspend was
    + * initiated by the subsystem.
    + *
    + * AUTO_RESUME Automatic (device needed) runtime resume was
    + * requested by a driver.
    */

    #define PM_EVENT_ON 0x0000
    @@ -256,9 +271,18 @@ struct pm_ext_ops {
    #define PM_EVENT_THAW 0x0020
    #define PM_EVENT_RESTORE 0x0040
    #define PM_EVENT_RECOVER 0x0080
    +#define PM_EVENT_USER 0x0100
    +#define PM_EVENT_REMOTE 0x0200
    +#define PM_EVENT_AUTO 0x0400
    +
    +#define PM_EVENT_SLEEP (PM_EVENT_SUSPEND | PM_EVENT_HIBERNATE)
    +#define PM_EVENT_USER_SUSPEND (PM_EVENT_USER | PM_EVENT_SUSPEND)
    +#define PM_EVENT_USER_RESUME (PM_EVENT_USER | PM_EVENT_RESUME)
    +#define PM_EVENT_REMOTE_WAKEUP (PM_EVENT_REMOTE | PM_EVENT_RESUME)
    +#define PM_EVENT_AUTO_SUSPEND (PM_EVENT_AUTO | PM_EVENT_SUSPEND)
    +#define PM_EVENT_AUTO_RESUME (PM_EVENT_AUTO | PM_EVENT_RESUME)

    -#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_QUIESCE ((struct pm_message){ .event = PM_EVENT_QUIESCE, })
    #define PMSG_SUSPEND ((struct pm_message){ .event = PM_EVENT_SUSPEND, })
    @@ -267,7 +291,16 @@ struct pm_ext_ops {
    #define PMSG_THAW ((struct pm_message){ .event = PM_EVENT_THAW, })
    #define PMSG_RESTORE ((struct pm_message){ .event = PM_EVENT_RESTORE, })
    #define PMSG_RECOVER ((struct pm_message){ .event = PM_EVENT_RECOVER, })
    -#define PMSG_ON ((struct pm_message){ .event = PM_EVENT_ON, })
    +#define PMSG_USER_SUSPEND ((struct pm_messge) \
    + { .event = PM_EVENT_USER_SUSPEND, })
    +#define PMSG_USER_RESUME ((struct pm_messge) \
    + { .event = PM_EVENT_USER_RESUME, })
    +#define PMSG_REMOTE_RESUME ((struct pm_messge) \
    + { .event = PM_EVENT_REMOTE_RESUME, })
    +#define PMSG_AUTO_SUSPEND ((struct pm_messge) \
    + { .event = PM_EVENT_AUTO_SUSPEND, })
    +#define PMSG_AUTO_RESUME ((struct pm_messge) \
    + { .event = PM_EVENT_AUTO_RESUME, })

    /**
    * Device power management states


    \
     
     \ /
      Last update: 2008-07-10 02:09    [W:2.914 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site