)]}'
{
  "log": [
    {
      "commit": "e39473d0b9448e770f49b0b15e514be884264438",
      "tree": "a6fbf50c1fcd8e7cfd176425384a82fe06d3cadd",
      "parents": [
        "ae0fb4b72c8db7e6c4ef32bc58a43a759ad414b9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Wed Oct 24 02:08:18 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Wed Oct 24 02:08:18 2012 +0200"
      },
      "message": "PM / QoS: Make it possible to expose PM QoS device flags to user space\n\nDefine two device PM QoS flags, PM_QOS_FLAG_NO_POWER_OFF\nand PM_QOS_FLAG_REMOTE_WAKEUP, and introduce routines\ndev_pm_qos_expose_flags() and dev_pm_qos_hide_flags() allowing the\ncaller to expose those two flags to user space or to hide them\nfrom it, respectively.\n\nAfter the flags have been exposed, user space will see two\nadditional sysfs attributes, pm_qos_no_power_off and\npm_qos_remote_wakeup, under the device\u0027s /sys/devices/.../power/\ndirectory.  Then, writing 1 to one of them will update the\nPM QoS flags request owned by user space so that the corresponding\nflag is requested to be set.  In turn, writing 0 to one of them\nwill cause the corresponding flag in the user space\u0027s request to\nbe cleared (however, the owners of the other PM QoS flags requests\nfor the same device may still request the flag to be set and it\nmay be effectively set even if user space doesn\u0027t request that).\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nReviewed-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nAcked-by: mark gross \u003cmarkgross@thegnar.org\u003e\n"
    },
    {
      "commit": "5f986c590fcf4284924fcda991cf14ab32bff49f",
      "tree": "07b31910af67192423c5bc7b7e6ee1134bc221c2",
      "parents": [
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 23 01:07:27 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 23 01:07:27 2012 +0200"
      },
      "message": "PM / QoS: Prepare device structure for adding more constraint types\n\nCurrently struct dev_pm_info contains only one PM QoS constraints\npointer reserved for latency requirements.  Since one more device\nconstraints type (i.e. flags) will be necessary, introduce a new\nstructure, struct dev_pm_qos, that eventually will contain all of\nthe available device PM QoS constraints and replace the \"constraints\"\npointer in struct dev_pm_info with a pointer to the new structure\ncalled \"qos\".\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nReviewed-by: Jean Pihet \u003cj-pihet@ti.com\u003e\n"
    },
    {
      "commit": "16642a2e7be23bbda013fc32d8f6c68982eab603",
      "tree": "346ae485f485f6901e5d8150f0d34d178a7dd448",
      "parents": [
        "51562cba98939da0a1d10fe7c25359b77a069033",
        "b9142167a2bb979b58b98ffcd928a311b55cbd9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 18:32:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 18:32:35 2012 -0700"
      },
      "message": "Merge tag \u0027pm-for-3.7-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull power management updates from Rafael J Wysocki:\n\n - Improved system suspend/resume and runtime PM handling for the SH\n   TMU, CMT and MTU2 clock event devices (also used by ARM/shmobile).\n\n - Generic PM domains framework extensions related to cpuidle support\n   and domain objects lookup using names.\n\n - ARM/shmobile power management updates including improved support for\n   the SH7372\u0027s A4S power domain containing the CPU core.\n\n - cpufreq changes related to AMD CPUs support from Matthew Garrett,\n   Andre Przywara and Borislav Petkov.\n\n - cpu0 cpufreq driver from Shawn Guo.\n\n - cpufreq governor fixes related to the relaxing of limit from Michal\n   Pecio.\n\n - OMAP cpufreq updates from Axel Lin and Richard Zhao.\n\n - cpuidle ladder governor fixes related to the disabling of states from\n   Carsten Emde and me.\n\n - Runtime PM core updates related to the interactions with the system\n   suspend core from Alan Stern and Kevin Hilman.\n\n - Wakeup sources modification allowing more helper functions to be\n   called from interrupt context from John Stultz and additional\n   diagnostic code from Todd Poynor.\n\n - System suspend error code path fix from Feng Hong.\n\nFixed up conflicts in cpufreq/powernow-k8 that stemmed from the\nworkqueue fixes conflicting fairly badly with the removal of support for\nhardware P-state chips.  The changes were independent but somewhat\nintertwined.\n\n* tag \u0027pm-for-3.7-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)\n  Revert \"PM QoS: Use spinlock in the per-device PM QoS constraints code\"\n  PM / Runtime: let rpm_resume() succeed if RPM_ACTIVE, even when disabled, v2\n  cpuidle: rename function name \"__cpuidle_register_driver\", v2\n  cpufreq: OMAP: Check IS_ERR() instead of NULL for omap_device_get_by_hwmod_name\n  cpuidle: remove some empty lines\n  PM: Prevent runtime suspend during system resume\n  PM QoS: Use spinlock in the per-device PM QoS constraints code\n  PM / Sleep: use resume event when call dpm_resume_early\n  cpuidle / ACPI : move cpuidle_device field out of the acpi_processor_power structure\n  ACPI / processor: remove pointless variable initialization\n  ACPI / processor: remove unused function parameter\n  cpufreq: OMAP: remove loops_per_jiffy recalculate for smp\n  sections: fix section conflicts in drivers/cpufreq\n  cpufreq: conservative: update frequency when limits are relaxed\n  cpufreq / ondemand: update frequency when limits are relaxed\n  properly __init-annotate pm_sysrq_init()\n  cpufreq: Add a generic cpufreq-cpu0 driver\n  PM / OPP: Initialize OPP table from device tree\n  ARM: add cpufreq transiton notifier to adjust loops_per_jiffy for smp\n  cpufreq: Remove support for hardware P-state chips from powernow-k8\n  ...\n"
    },
    {
      "commit": "feb70af0e3ac6817327be70b47731039ea135dbc",
      "tree": "7df6ab174688d8bcc637af0d7a8fc7beb6a1e2aa",
      "parents": [
        "3cb6f10a4d925ec21f414bc30a8aded2830963e5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 13 14:00:25 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:05 2012 +0200"
      },
      "message": "PM: Do not use the syscore flag for runtime PM\n\nThe syscore device PM flag used to mark the devices (belonging to\nPM domains) that should never be turned off, except for the system\ncore (syscore) suspend/hibernation and resume stages, need not be\naccessed by the runtime PM core functions, because all of the devices\nit is set for need to be marked as \"irq safe\" anyway and are\nprotected from being turned off by runtime PM by ensuring that their\nusage counters are always set.\n\nFor this reason, make the syscore flag system-wide PM-specific\nand simplify the code used for manipulating it, because it need not\nacquire the device\u0027s power.lock any more.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "dbf374142dd7a3c394ec124ebe7339a6c412d9b6",
      "tree": "593b26dff2da2f364ed1ad97e667d691487d7e69",
      "parents": [
        "6fb28badf207a6d8a78906353772e1c3f560a977"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 06 01:46:39 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:04 2012 +0200"
      },
      "message": "PM / Domains: Move syscore flag from subsys data to struct device\n\nThe syscore device PM flag is used to mark the devices (belonging to\na PM domain) that should never be turned off, except for the system\ncore (syscore) suspend/hibernation and resume stages.  That flag is\nstored in the device\u0027s struct pm_subsys_data object whose address is\navailable from struct device.  However, in some situations it may be\nconvenient to set that flag before the device is added to a PM\ndomain, so it is better to move it directly to the \"power\" member of\nstruct device.  Then, it can be checked by the routines in\ndrivers/base/power/runtime.c and drivers/base/power/main.c, which is\nmore straightforward.\n\nThis also reduces the number of dev_gpd_data() invocations in the\ngeneric PM domains framework, so the overhead related to the syscore\nflag is slightly smaller.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "bed2b42d9f0b411f384c5619870ab0fea5dd116b",
      "tree": "abdfe3a877b5751411ba10d6bf1a57040c56bf73",
      "parents": [
        "e91c11b1a7f876c6f056d872eb210734150a1795"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 06 01:45:11 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:03 2012 +0200"
      },
      "message": "PM / Runtime: Allow helpers to be called by early platform drivers\n\nRuntime PM helper functions, like pm_runtime_get_sync(), cannot be\ncalled by early platform device drivers, because the devices\u0027 power\nmanagement locks are not initialized at that time.  This is quite\ninconvenient, so modify early_platform_add_devices() to initialize\nthe devices power management locks as appropriate and make sure that\nthey won\u0027t be initialized more than once if an early platform\ndevice is going to be used as a regular one later.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "dfe3212e0196c01402154971841463d721dea915",
      "tree": "0cb18c625b9d1b50999f8942e94be0689e1396a6",
      "parents": [
        "c08f67730aba342b03f070209acc2990d3decf3c"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Fri Aug 17 22:06:59 2012 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Aug 17 07:37:35 2012 -0700"
      },
      "message": "PM / Sleep: introduce dpm_for_each_dev\n\ndpm_list and its pm lock provide a good way to iterate all\ndevices in system. Except this way, there is no other easy\nway to iterate devices in system.\n\nfirmware loader need to cache firmware images for devices\nbefore system sleep, so introduce the function to meet its\ndemand.\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "76e267d822f2913893ad210ba431607aa8e2af94",
      "tree": "ce3a821135a398748063f29cb064147d27b40a47",
      "parents": [
        "dd8683e97f12609fb3f8c4318628f0d246542f89"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:54:36 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:28:38 2012 +0200"
      },
      "message": "PM / Runtime: Remove device fields related to suspend time, v2\n\nAfter the previous changes in default_stop_ok() and\ndefault_power_down_ok() for PM domains, there are two fields in\nstruct dev_pm_info that aren\u0027t necessary any more,  suspend_time\nand max_time_suspended_ns.\n\nRemove those fields along with all of the code that accesses them,\nwhich simplifies the runtime PM framework quite a bit.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "59fb53ea75eef4aa029cf31c88cdacec2f7b794b",
      "tree": "fb2ee7f8e99a72fe858e76ba7f2dbbc0390f3128",
      "parents": [
        "ed819e3b964bba8bfae8e65d4d55a3f345f8da16",
        "efe6a8ad7fc55b350ce968cae4c757d35e986285"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 16 21:49:24 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 16 21:49:24 2012 +0100"
      },
      "message": "Merge branch \u0027pm-qos\u0027\n\n* pm-qos:\n  sh_mmcif / PM: Use PM QoS latency constraint\n  tmio_mmc / PM: Use PM QoS latency constraint\n  PM / QoS: Make it possible to expose PM QoS latency constraints\n"
    },
    {
      "commit": "85dc0b8a4019e38ad4fd0c008f89a5c241805ac2",
      "tree": "a73c5864d8ce4a6845e616ade7b8107e181279b6",
      "parents": [
        "a9b542ee607a8afafa9447292394959fc84ea650"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 13 01:01:39 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 13 22:37:14 2012 +0100"
      },
      "message": "PM / QoS: Make it possible to expose PM QoS latency constraints\n\nA runtime suspend of a device (e.g. an MMC controller) belonging to\na power domain or, in a more complicated scenario, a runtime suspend\nof another device in the same power domain, may cause power to be\nremoved from the entire domain.  In that case, the amount of time\nnecessary to runtime-resume the given device (e.g. the MMC\ncontroller) is often substantially greater than the time needed to\nrun its driver\u0027s runtime resume callback.  That may hurt performance\nin some situations, because user data may need to wait for the\ndevice to become operational, so we should make it possible to\nprevent that from happening.\n\nFor this reason, introduce a new sysfs attribute for devices,\npower/pm_qos_resume_latency_us, allowing user space to specify the\nupper bound of the time necessary to bring the (runtime-suspended)\ndevice up after the resume of it has been requested.  However, make\nthat attribute appear only for the devices whose drivers declare\nsupport for it by calling the (new) dev_pm_qos_expose_latency_limit()\nhelper function with the appropriate initial value of the attribute.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nReviewed-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\n"
    },
    {
      "commit": "c48825251cf5950da9d618144c4db6c130e6c0cd",
      "tree": "2e8a163cfaddfdb78243f0ba501b1923e3d7d3be",
      "parents": [
        "bc25cf508942c56810d4fb623ef27b56ccef7783"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Feb 13 16:29:47 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 17 23:36:30 2012 +0100"
      },
      "message": "PM: Add comment describing relationships between PM callbacks to pm.h\n\nThe UNIVERSAL_DEV_PM_OPS() macro is slightly misleading, because it\nmay suggest that it\u0027s a good idea to point runtime PM callback\npointers to the same routines as system suspend/resume callbacks\n.suspend() and .resume(), which is not the case.  For this reason,\nadd a comment to include/linux/pm.h, next to the definition of\nUNIVERSAL_DEV_PM_OPS(), describing how device PM callbacks are\nrelated to each other.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e470d06655e00749f6f9372e4fa4f20cea7ed7c5",
      "tree": "63e56f01b27ee9693bfb9d9127e4763ba0937057",
      "parents": [
        "cf579dfb82550e34de7ccf3ef090d8b834ccd3a9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:41 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:41 2012 +0100"
      },
      "message": "PM / Sleep: Introduce generic callbacks for new device PM phases\n\nIntroduce generic subsystem callbacks for the new phases of device\nsuspend/resume during system power transitions: \"late suspend\",\n\"early resume\", \"late freeze\", \"early thaw\", \"late poweroff\",\n\"early restore\".\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "cf579dfb82550e34de7ccf3ef090d8b834ccd3a9",
      "tree": "764ed72670c18c86d3eb9650025c56d661a31315",
      "parents": [
        "181e9bdef37bfcaa41f3ab6c948a2a0d60a268b5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:29 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:29 2012 +0100"
      },
      "message": "PM / Sleep: Introduce \"late suspend\" and \"early resume\" of devices\n\nThe current device suspend/resume phases during system-wide power\ntransitions appear to be insufficient for some platforms that want\nto use the same callback routines for saving device states and\nrelated operations during runtime suspend/resume as well as during\nsystem suspend/resume.  In principle, they could point their\n.suspend_noirq() and .resume_noirq() to the same callback routines\nas their .runtime_suspend() and .runtime_resume(), respectively,\nbut at least some of them require device interrupts to be enabled\nwhile the code in those routines is running.\n\nIt also makes sense to have device suspend-resume callbacks that will\nbe executed with runtime PM disabled and with device interrupts\nenabled in case someone needs to run some special code in that\ncontext during system-wide power transitions.\n\nApart from this, .suspend_noirq() and .resume_noirq() were introduced\nas a workaround for drivers using shared interrupts and failing to\nprevent their interrupt handlers from accessing suspended hardware.\nIt appears to be better not to use them for other porposes, or we may\nhave to deal with some serious confusion (which seems to be happening\nalready).\n\nFor the above reasons, introduce new device suspend/resume phases,\n\"late suspend\" and \"early resume\" (and analogously for hibernation)\nwhose callback will be executed with runtime PM disabled and with\ndevice interrupts enabled and whose callback pointers generally may\npoint to runtime suspend/resume routines.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "0015afaa1f818d38ea9f8e81a84a6aeeca5fdaf0",
      "tree": "8f8279cf0117d210230ef9fcacb05f960bf6f8f5",
      "parents": [
        "b7ba68c4a072c9aa8f04b8cf7838b6cd2f48d918",
        "00dc9ad18d707f36b2fb4af98fd2cf0548d2b258"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 25 23:43:05 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 25 23:43:05 2011 +0100"
      },
      "message": "Merge branch \u0027pm-runtime\u0027 into pm-for-linus\n\n* pm-runtime:\n  PM / Runtime: Use device PM QoS constraints (v2)\n"
    },
    {
      "commit": "90363ddf0a1a4dccfbb8d0c10b8f488bc7fa69f8",
      "tree": "d64b594caef2df2cd9e165089e277d09e2b089d6",
      "parents": [
        "8114ab763b2d297c8af49bf380a093d76e929692"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 18 00:34:42 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 22:03:32 2011 +0100"
      },
      "message": "PM: Drop generic_subsys_pm_ops\n\nSince the PM core is now going to execute driver callbacks directly\nif the corresponding subsystem callbacks are not present,\nforward-only subsystem callbacks (i.e. such that only execute the\ncorresponding driver callbacks) are not necessary any more.  Thus\nit is possible to remove generic_subsys_pm_ops, because the only\ncallback in there that is not forward-only, .runtime_idle, is not\nreally used by the only user of generic_subsys_pm_ops, which is\nvio_bus_type.\n\nHowever, the generic callback routines themselves cannot be removed\nfrom generic_ops.c, because they are used individually by a number\nof subsystems.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "00dc9ad18d707f36b2fb4af98fd2cf0548d2b258",
      "tree": "f41672d9dae9bf15f2ee17abf3b5b6c31c966088",
      "parents": [
        "b930c26416c4ea6855726fd977145ccea9afbdda"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 00:01:31 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 21:46:42 2011 +0100"
      },
      "message": "PM / Runtime: Use device PM QoS constraints (v2)\n\nMake the runtime PM core use device PM QoS constraints to check if\nit is allowed to suspend a given device, so that an error code is\nreturned if the device\u0027s own PM QoS constraint is negative or one of\nits children has already been suspended for too long.  If this is\nnot the case, the maximum estimated time the device is allowed to be\nsuspended, computed as the minimum of the device\u0027s PM QoS constraint\nand the PM QoS constraints of its children (reduced by the difference\nbetween the current time and their suspend times) is stored in a new\ndevice\u0027s PM field power.max_time_suspended_ns that can be used by\nthe device\u0027s subsystem or PM domain to decide whether or not to put\nthe device into lower-power (and presumably higher-latency) states\nlater (if the constraint is 0, which means \"no constraint\", the\npower.max_time_suspended_ns is set to -1).\n\nAdditionally, the time of execution of the subsystem-level\n.runtime_suspend() callback for the device is recorded in the new\npower.suspend_time field for later use by the device\u0027s subsystem or\nPM domain along with power.max_time_suspended_ns (it also is used\nby the core code when the device\u0027s parent is suspended).\n\nIntroduce a new helper function,\npm_runtime_update_max_time_suspended(), allowing subsystems and PM\ndomains (or device drivers) to update the power.max_time_suspended_ns\nfield, for example after changing the power state of a suspended\ndevice.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "f7bc83d87d242917ca0ee041ed509f57f361dd56",
      "tree": "653cda4900d19c8193141dd3f9035f24a933c7ba",
      "parents": [
        "fafba48d4dd6fcbb1fd7ac4ab0ba22ef45b9796c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:20:32 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Nov 28 22:14:55 2011 +0100"
      },
      "message": "PM: Update comments describing device power management callbacks\n\nThe comments describing device power management callbacks in\ninclude/pm.h are outdated and somewhat confusing, so make them\nreflect the reality more accurately.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8b258cc8ac229aa7d5dcb7cc34cb35d9124498ac",
      "tree": "9615636b05b04035af0c8eb11ee9711aa2b868a6",
      "parents": [
        "af8db1508f2c9f3b6e633e2d2d906c6557c617f9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Nov 17 21:39:33 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Nov 17 21:39:33 2011 +0100"
      },
      "message": "PM Sleep: Do not extend wakeup paths to devices with ignore_children set\n\nCommit 4ca46ff3e0d8c234cb40ebb6457653b59584426c (PM / Sleep: Mark\ndevices involved in wakeup signaling during suspend) introduced\nthe power.wakeup_path field in struct dev_pm_info to mark devices\nwhose children are enabled to wake up the system from sleep states,\nso that power domains containing the parents that provide their\nchildren with wakeup power and/or relay their wakeup signals are not\nturned off.  Unfortunately, that introduced a PM regression on SH7372\nwhose power consumption in the system \"memory sleep\" state increased\nas a result of it, because it prevented the power domain containing\nthe I2C controller from being turned off when some children of that\ncontroller were enabled to wake up the system, although the\ncontroller was not necessary for them to signal wakeup.\n\nTo fix this issue use the observation that devices whose\npower.ignore_children flag is set for runtime PM should be treated\nanalogously during system suspend.  Namely, they shouldn\u0027t be\nincluded in wakeup paths going through their children.  Since the\nSH7372 I2C controller\u0027s power.ignore_children flag is set, doing so\nwill restore the previous behavior of that SOC.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "d033e078566faed8c8f59baf97ee57ce2524ef5c",
      "tree": "46a98bf6a555ecbc8178baf6dd3a81553c3c3654",
      "parents": [
        "081a9d043c983f161b78fdc4671324d1342b86bc",
        "382414b93ac1e8ee7693be710e60c83eacc97c6f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Oct 22 00:21:52 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Oct 22 00:21:52 2011 +0200"
      },
      "message": "Merge branch \u0027pm-domains\u0027 into pm-for-linus\n\n* pm-domains:\n  ARM: mach-shmobile: sh7372 A4R support (v4)\n  ARM: mach-shmobile: sh7372 A3SP support (v4)\n  PM / Sleep: Mark devices involved in wakeup signaling during suspend\n"
    },
    {
      "commit": "4ca46ff3e0d8c234cb40ebb6457653b59584426c",
      "tree": "b929bbc30d5e08b1ba4be980c473f9d594a42b58",
      "parents": [
        "cd0ea672f58d5cfdea271c45cec0c897f2b792aa"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:34:36 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Oct 22 00:19:29 2011 +0200"
      },
      "message": "PM / Sleep: Mark devices involved in wakeup signaling during suspend\n\nThe generic PM domains code in drivers/base/power/domain.c has\nto avoid powering off domains that provide power to wakeup devices\nduring system suspend.  Currently, however, this only works for\nwakeup devices directly belonging to the given domain and not for\ntheir children (or the children of their children and so on).\nThus, if there\u0027s a wakeup device whose parent belongs to a power\ndomain handled by the generic PM domains code, the domain will be\npowered off during system suspend preventing the device from\nsignaling wakeup.\n\nTo address this problem introduce a device flag, power.wakeup_path,\nthat will be set during system suspend for all wakeup devices,\ntheir parents, the parents of their parents and so on.  This way,\nall wakeup paths in the device hierarchy will be marked and the\ngeneric PM domains code will only need to avoid powering off\ndomains containing devices whose power.wakeup_path is set.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "9696cc90071e3660ec02a3728acdedb68afdce4c",
      "tree": "99783d31dd42262c29346c92760f7896c3d81cb6",
      "parents": [
        "c28b56b1d46b1bbb1be33c8f2632a88b0de1ef68",
        "e3cba3243eb853a052613c804dea033bc4c9cf2d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:07 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:07 2011 +0200"
      },
      "message": "Merge branch \u0027pm-qos\u0027 into pm-for-linus\n\n* pm-qos:\n  PM / QoS: Update Documentation for the pm_qos and dev_pm_qos frameworks\n  PM / QoS: Add function dev_pm_qos_read_value() (v3)\n  PM QoS: Add global notification mechanism for device constraints\n  PM QoS: Implement per-device PM QoS constraints\n  PM QoS: Generalize and export constraints management code\n  PM QoS: Reorganize data structs\n  PM QoS: Code reorganization\n  PM QoS: Minor clean-ups\n  PM QoS: Move and rename the implementation files\n"
    },
    {
      "commit": "c28b56b1d46b1bbb1be33c8f2632a88b0de1ef68",
      "tree": "a7caddb9f58c968f6e77f36d2d398ec06983509e",
      "parents": [
        "d727b60659a1173eb4142a5fc521ce67c28b34e1",
        "cd0ea672f58d5cfdea271c45cec0c897f2b792aa"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:02 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:02 2011 +0200"
      },
      "message": "Merge branch \u0027pm-domains\u0027 into pm-for-linus\n\n* pm-domains:\n  PM / Domains: Split device PM domain data into base and need_restore\n  ARM: mach-shmobile: sh7372 sleep warning fixes\n  ARM: mach-shmobile: sh7372 A3SM support\n  ARM: mach-shmobile: sh7372 generic suspend/resume support\n  PM / Domains: Preliminary support for devices with power.irq_safe set\n  PM: Move clock-related definitions and headers to separate file\n  PM / Domains: Use power.sybsys_data to reduce overhead\n  PM: Reference counting of power.subsys_data\n  PM: Introduce struct pm_subsys_data\n  ARM / shmobile: Make A3RV be a subdomain of A4LC on SH7372\n  PM / Domains: Rename argument of pm_genpd_add_subdomain()\n  PM / Domains: Rename GPD_STATE_WAIT_PARENT to GPD_STATE_WAIT_MASTER\n  PM / Domains: Allow generic PM domains to have multiple masters\n  PM / Domains: Add \"wait for parent\" status for generic PM domains\n  PM / Domains: Make pm_genpd_poweron() always survive parent removal\n  PM / Domains: Do not take parent locks to modify subdomain counters\n  PM / Domains: Implement subdomain counters as atomic fields\n"
    },
    {
      "commit": "1a9a91525d806f2b3bd8b57b963755a96fd36ce2",
      "tree": "511db2ab0871872bce759d35b7ffd22b9d7fc3f5",
      "parents": [
        "b66213cdb002b08b29603d488c451dfe25e2ca20"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Sep 29 22:29:44 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Oct 04 21:54:26 2011 +0200"
      },
      "message": "PM / QoS: Add function dev_pm_qos_read_value() (v3)\n\nTo read the current PM QoS value for a given device we need to\nmake sure that the device\u0027s power.constraints object won\u0027t be\nremoved while we\u0027re doing that.  For this reason, put the\noperation under dev-\u003epower.lock and acquire the lock\naround the initialization and removal of power.constraints.\n\nMoreover, since we\u0027re using the value of power.constraints to\ndetermine whether or not the object is present, the\npower.constraints_state field isn\u0027t necessary any more and may be\nremoved.  However, dev_pm_qos_add_request() needs to check if the\ndevice is being removed from the system before allocating a new\nPM QoS constraints object for it, so make it use the\npower.power_state field of struct device for this purpose.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "cd0ea672f58d5cfdea271c45cec0c897f2b792aa",
      "tree": "96596cf00fd4fd84b1eb76626f7cc2e1e05e6a18",
      "parents": [
        "0d41da2e31e81f5c8aaabe17f769de4304b2d4c8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 20:22:02 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 20:22:02 2011 +0200"
      },
      "message": "PM / Domains: Split device PM domain data into base and need_restore\n\nThe struct pm_domain_data data type is defined in such a way that\nadding new fields specific to the generic PM domains code will\nrequire include/linux/pm.h to be modified.  As a result, data types\nused only by the generic PM domains code will be defined in two\nheaders, although they all should be defined in pm_domain.h and\npm.h will need to include more headers, which won\u0027t be very nice.\n\nFor this reason change the definition of struct pm_subsys_data\nso that its domain_data member is a pointer, which will allow\nstruct pm_domain_data to be subclassed by various PM domains\nimplementations.  Remove the need_restore member from\nstruct pm_domain_data and make the generic PM domains code\nsubclass it by adding the need_restore member to the new data type.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "91ff4cb803df6de9114351b9f2f0f39f397ee03e",
      "tree": "eb24c7df28d0f93557ac1d9e7d72a79fc3556b97",
      "parents": [
        "abe98ec2d86279fe821c9051003a0abc43444f15"
      ],
      "author": {
        "name": "Jean Pihet",
        "email": "j-pihet@ti.com",
        "time": "Thu Aug 25 15:35:41 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:35:41 2011 +0200"
      },
      "message": "PM QoS: Implement per-device PM QoS constraints\n\nImplement the per-device PM QoS constraints by creating a device\nPM QoS API, which calls the PM QoS constraints management core code.\n\nThe per-device latency constraints data strctures are stored\nin the device dev_pm_info struct.\n\nThe device PM code calls the init and destroy of the per-device constraints\ndata struct in order to support the dynamic insertion and removal of the\ndevices in the system.\n\nTo minimize the data usage by the per-device constraints, the data struct\nis only allocated at the first call to dev_pm_qos_add_request.\nThe data is later free\u0027d when the device is removed from the system.\nA global mutex protects the constraints users from the data being\nallocated and free\u0027d.\n\nSigned-off-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4605ab653c1f9d7cc2dda8033de215c9cee325f4",
      "tree": "8f55aa3137973ce2a3ef0ed49c44304e148d50fe",
      "parents": [
        "ef27bed1870dbd5fd363ff5ec51eebd5a695e277"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:12 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:12 2011 +0200"
      },
      "message": "PM / Domains: Use power.sybsys_data to reduce overhead\n\nCurrently pm_genpd_runtime_resume() has to walk the list of devices\nfrom the device\u0027s PM domain to find the corresponding device list\nobject containing the need_restore field to check if the driver\u0027s\n.runtime_resume() callback should be executed for the device.\nThis is suboptimal and can be simplified by using power.sybsys_data\nto store device information used by the generic PM domains code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "ef27bed1870dbd5fd363ff5ec51eebd5a695e277",
      "tree": "ef563bb07f259386fbe2477ec9a01e7ead011bcc",
      "parents": [
        "5c095a0e0d600d5a5a4207eaadabd18db46395ce"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:01 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:01 2011 +0200"
      },
      "message": "PM: Reference counting of power.subsys_data\n\nSince the power.subsys_data device field will be used by multiple\nfilesystems, introduce a reference counting mechanism for it to avoid\nfreeing it prematurely or changing its value at a wrong time.\n\nMake the PM clocks management code that currently is the only user of\npower.subsys_data use the new reference counting.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5c095a0e0d600d5a5a4207eaadabd18db46395ce",
      "tree": "18163d773234898e71c22d83b265a1eccfba11d9",
      "parents": [
        "111058c3ff29a6a25216b31789046c2a330baa7d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:50 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:50 2011 +0200"
      },
      "message": "PM: Introduce struct pm_subsys_data\n\nIntroduce struct pm_subsys_data that may be subclassed by subsystems\nto store subsystem-specific information related to the device.  Move\nthe clock management fields accessed through the power.subsys_data\npointer in struct device to the new strucutre.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5b1b0b812a7b1a5b968c5d06d90d1cb88621b941",
      "tree": "dd57943592e4152147d1a5667b082e5f30faaf83",
      "parents": [
        "311aab73d273eb22be976055f6cab224f7279d5e"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Fri Aug 19 23:49:48 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 19 23:49:48 2011 +0200"
      },
      "message": "PM / Runtime: Add macro to test for runtime PM events\n\nThis patch (as1482) adds a macro for testing whether or not a\npm_message value represents an autosuspend or autoresume (i.e., a\nruntime PM) event.  Encapsulating this notion seems preferable to\nopen-coding the test all over the place.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e5291928839877f8e73c2643ee1d3fe0bcdcaf5c",
      "tree": "df733cad71610a2f5ce283dcca5f2ad1d83bdf1f",
      "parents": [
        "f721889ff65afa6243c463832c74dee3bed418d5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:12:59 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:55 2011 +0200"
      },
      "message": "PM: Introduce generic \"noirq\" callback routines for subsystems (v2)\n\nIntroduce generic \"noirq\" power management callback routines for\nsubsystems in addition to the \"regular\" generic PM callback routines.\n\nThe new routines will be used, among other things, for implementing\nsystem-wide PM transitions support for generic PM domains.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "dc6e4e56e6ef473a696a1ab24f80b79b9aceb92d",
      "tree": "7ef82afc8d57b0deed436ba6f5f9483c2603d88e",
      "parents": [
        "564b905ab10d17fb42f86aa8b7b9b796276d1336"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jun 23 01:53:04 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:54 2011 +0200"
      },
      "message": "PM: subsys_data in struct dev_pm_info need not depend on RM_RUNTIME\n\nThe subsys_data field of struct dev_pm_info, introduced by commit\n1d2b71f61b6a10216274e27b717becf9ae101fc7 (PM / Runtime: Add subsystem\ndata field to struct dev_pm_info), is going to be used even if\nCONFIG_PM_RUNTIME is not set, so move it from under the #ifdef.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "564b905ab10d17fb42f86aa8b7b9b796276d1336",
      "tree": "b191c000e55ae1a354bd67876ca6945d2ad87c93",
      "parents": [
        "f5da24dbed213d103f00aa9ef26e010b50d2db24"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jun 23 01:52:55 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:54 2011 +0200"
      },
      "message": "PM / Domains: Rename struct dev_power_domain to struct dev_pm_domain\n\nThe naming convention used by commit 7538e3db6e015e890825fbd9f86599b\n(PM: Add support for device power domains), which introduced the\nstruct dev_power_domain type for representing device power domains,\nevidently confuses some developers who tend to think that objects\nof this type must correspond to \"power domains\" as defined by\nhardware, which is not the case.  Namely, at the kernel level, a\nstruct dev_power_domain object can represent arbitrary set of devices\nthat are mutually dependent power management-wise and need not belong\nto one hardware power domain.  To avoid that confusion, rename struct\ndev_power_domain to struct dev_pm_domain and rename the related\npointers in struct device and struct pm_clk_notifier_block from\npwr_domain to pm_domain.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "6d0e0e84f66d32c33511984dd3badd32364b863c",
      "tree": "215916af1632fbaff9d46676d14dafd52143d578",
      "parents": [
        "8440f4b19494467883f8541b7aa28c7bbf6ac92b"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sat Jun 18 22:42:09 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:20:20 2011 +0200"
      },
      "message": "PM: Fix async resume following suspend failure\n\nThe PM core doesn\u0027t handle suspend failures correctly when it comes to\nasynchronously suspended devices.  These devices are moved onto the\ndpm_suspended_list as soon as the corresponding async thread is\nstarted up, and they remain on the list even if they fail to suspend\nor the sleep transition is cancelled before they get suspended.  As a\nresult, when the PM core unwinds the transition, it tries to resume\nthe devices even though they were never suspended.\n\nThis patch (as1474) fixes the problem by adding a new \"is_suspended\"\nflag to dev_pm_info.  Devices are resumed only if the flag is set.\n\n[rjw:\n * Moved the dev-\u003epower.is_suspended check into device_resume(),\n   because we need to complete dev-\u003epower.completion and clear\n   dev-\u003epower.is_prepared too for devices whose\n   dev-\u003epower.is_suspended flags are unset.\n * Fixed __device_suspend() to avoid setting dev-\u003epower.is_suspended\n   if async_error is different from zero.]\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f76b168b6f117a49d36307053e1acbe30580ea5b",
      "tree": "2aa0cc19b27764d8eb55ce85eaf226a60ce27756",
      "parents": [
        "78420884e680da8fbc3240de2d3106437042381e"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sat Jun 18 20:22:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:19:50 2011 +0200"
      },
      "message": "PM: Rename dev_pm_info.in_suspend to is_prepared\n\nThis patch (as1473) renames the \"in_suspend\" field in struct\ndev_pm_info to \"is_prepared\", in preparation for an upcoming change.\nThe new name is more descriptive of what the field really means.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "6538df80194e305f1b78cafb556f4bb442f808b3",
      "tree": "72927d33d82f0e9502811abfc10d722a7423fff2",
      "parents": [
        "91e7c75ba93c48a82670d630b9daac92ff70095d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:21 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:21 2011 +0200"
      },
      "message": "PM: Introduce generic prepare and complete callbacks for subsystems\n\nIntroduce generic .prepare() and .complete() power management\ncallbacks, currently missing, that can be used by subsystems and\npower domains and export them.  Provide NULL definitions of all\nthe generic system sleep callbacks for CONFIG_PM_SLEEP unset.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "91e7c75ba93c48a82670d630b9daac92ff70095d",
      "tree": "b44ac3dca1d03cce99cccc3f4ce55d4b5475d373",
      "parents": [
        "c650da23d59d2c82307380414606774c6d49b8bd"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:00 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:00 2011 +0200"
      },
      "message": "PM: Allow drivers to allocate memory from .prepare() callbacks safely\n\nIf device drivers allocate substantial amounts of memory (above 1 MB)\nin their hibernate .freeze() callbacks (or in their legacy suspend\ncallbcks during hibernation), the subsequent creation of hibernate\nimage may fail due to the lack of memory.  This is the case, because\nthe drivers\u0027 .freeze() callbacks are executed after the hibernate\nmemory preallocation has been carried out and the preallocated amount\nof memory may be too small to cover the new driver allocations.\nUnfortunately, the drivers\u0027 .prepare() callbacks also are executed\nafter the hibernate memory preallocation has completed, so they are\nnot suitable for allocating additional memory either.  Thus the only\nway a driver can safely allocate memory during hibernation is to use\na hibernate/suspend notifier.  However, the notifiers are called\nbefore the freezing of user space and the drivers wanting to use them\nfor allocating additional memory may not know how much memory needs\nto be allocated at that point.\n\nTo let device drivers overcome this difficulty rework the hibernation\nsequence so that the memory preallocation is carried out after the\ndrivers\u0027 .prepare() callbacks have been executed, so that the\n.prepare() callbacks can be used for allocating additional memory\nto be used by the drivers\u0027 .freeze() callbacks.  Update documentation\nto match the new behavior of the code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "290c748725c170ed9a02522959ae67f528eefe98",
      "tree": "a920190b75c7e054af24d850e79cc54f5cf53263",
      "parents": [
        "2d2a9163bd4f3ba301f8138c32e4790edc30156c",
        "72874daa5e9064c4e8d689e6a04b1e96f687f872"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:23:46 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:23:46 2011 +0200"
      },
      "message": "Merge branch \u0027power-domains\u0027 into for-linus\n\n* power-domains:\n  PM: Fix build issue in clock_ops.c for CONFIG_PM_RUNTIME unset\n  PM: Revert \"driver core: platform_bus: allow runtime override of dev_pm_ops\"\n  OMAP1 / PM: Use generic clock manipulation routines for runtime PM\n  PM / Runtime: Generic clock manipulation rountines for runtime PM (v6)\n  PM / Runtime: Add subsystem data field to struct dev_pm_info\n  OMAP2+ / PM: move runtime PM implementation to use device power domains\n  PM / Platform: Use generic runtime PM callbacks directly\n  shmobile: Use power domains for platform runtime PM\n  PM: Export platform bus type\u0027s default PM callbacks\n  PM: Make power domain callbacks take precedence over subsystem ones\n"
    },
    {
      "commit": "2e711c04dbbf7a7732a3f7073b1fc285d12b369d",
      "tree": "dbc06a3fff744144d7937a205a91fd8ce71585d4",
      "parents": [
        "f5a592f7d74e38c5007876c731e6bf5580072e63"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Apr 26 19:15:07 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 11 21:37:15 2011 +0200"
      },
      "message": "PM: Remove sysdev suspend, resume and shutdown operations\n\nSince suspend, resume and shutdown operations in struct sysdev_class\nand struct sysdev_driver are not used any more, remove them.  Also\ndrop sysdev_suspend(), sysdev_resume() and sysdev_shutdown() used\nfor executing those operations and modify all of their users\naccordingly.  This reduces kernel code size quite a bit and reduces\nits complexity.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "1d2b71f61b6a10216274e27b717becf9ae101fc7",
      "tree": "9a2c7c3411cfcf485f17fec985c646ee90390d02",
      "parents": [
        "638080c37ae08fd0c44cec13d7948ca5385ae851"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Apr 29 00:36:53 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Apr 29 00:36:53 2011 +0200"
      },
      "message": "PM / Runtime: Add subsystem data field to struct dev_pm_info\n\nSome subsystems need to attach PM-related data to struct device and\nthey need to use devres for this purpose.  For their convenience\nand to make code more straightforward, add a new field called\nsubsys_data to struct dev_pm_info and let subsystems use it for\nattaching PM-related information to devices.\n\nConvert the ARM shmobile platform to using the new field.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d47d81c0e9abdc3c88653fabff5beae82c949b09",
      "tree": "1745f3316996e3cb0a02dcd7af90b88d836b6d17",
      "parents": [
        "e00e56dfd3cf1d209ce630a2b440c91e4a30bbd3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 23 22:16:41 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 23 22:16:41 2011 +0100"
      },
      "message": "Introduce ARCH_NO_SYSDEV_OPS config option (v2)\n\nIntroduce Kconfig option allowing architectures where sysdev\noperations used during system suspend, resume and shutdown have been\ncompletely replaced with struct sycore_ops operations to avoid\nbuilding sysdev code that will never be used.\n\nMake callbacks in struct sys_device and struct sysdev_driver depend\non ARCH_NO_SYSDEV_OPS to allows us to verify if all of the references\nhave been actually removed from the code the given architecture\ndepends on.\n\nMake x86 select ARCH_NO_SYSDEV_OPS.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "7538e3db6e015e890825fbd9f8659952896ddd5b",
      "tree": "01a6d8c97599474d9c5fc1ed0eb6f0addaec5652",
      "parents": [
        "6831c6edc7b272a08dd2a6c71bb183a48fe98ae6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Feb 16 21:53:17 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:16 2011 +0100"
      },
      "message": "PM: Add support for device power domains\n\nThe platform bus type is often used to handle Systems-on-a-Chip (SoC)\nwhere all devices are represented by objects of type struct\nplatform_device.  In those cases the same \"platform\" device driver\nmay be used with multiple different system configurations, but the\nactions needed to put the devices it handles into a low-power state\nand back into the full-power state may depend on the design of the\ngiven SoC.  The driver, however, cannot possibly include all the\ninformation necessary for the power management of its device on all\nthe systems it is used with.  Moreover, the device hierarchy in its\ncurrent form also is not suitable for representing this kind of\ninformation.\n\nThe patch below attempts to address this problem by introducing\nobjects of type struct dev_power_domain that can be used for\nrepresenting power domains within a SoC.  Every struct\ndev_power_domain object provides a sets of device power\nmanagement callbacks that can be used to perform what\u0027s needed for\ndevice power management in addition to the operations carried out by\nthe device\u0027s driver and subsystem.\n\nNamely, if a struct dev_power_domain object is pointed to by the\npwr_domain field in a struct device, the callbacks provided by its\nops member will be executed in addition to the corresponding\ncallbacks provided by the device\u0027s subsystem and driver during all\npower transitions.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-and-acked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "6831c6edc7b272a08dd2a6c71bb183a48fe98ae6",
      "tree": "fc3ef253f12bd9f2d211271c09a5475ed19b18b0",
      "parents": [
        "e8665002477f0278f84f898145b1f141ba26ee26"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Feb 15 21:22:24 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:16 2011 +0100"
      },
      "message": "PM: Drop pm_flags that is not necessary\n\nThe variable pm_flags is used to prevent APM from being enabled\nalong with ACPI, which would lead to problems.  However, acpi_init()\nis always called before apm_init() and after acpi_init() has\nreturned, it is known whether or not ACPI will be used.  Namely, if\nacpi_disabled is not set after acpi_init() has returned, this means\nthat ACPI is enabled.  Thus, it is sufficient to check acpi_disabled\nin apm_init() to prevent APM from being enabled in parallel with\nACPI.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "aa33860158114d0df3c7997bc1dd41c0168e1c2a",
      "tree": "a1ae98c42232835780618b0a5dea78c5478ed58c",
      "parents": [
        "196ec243224bb38fc5c41d9fa4050f70708b7fb4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 11 00:06:54 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:15 2011 +0100"
      },
      "message": "PM: Remove CONFIG_PM_OPS\n\nAfter redefining CONFIG_PM to depend on (CONFIG_PM_SLEEP ||\nCONFIG_PM_RUNTIME) the CONFIG_PM_OPS option is redundant and can be\nreplaced with CONFIG_PM.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "805bdaec1a44155db35f6ee5410d6bbc365324a8",
      "tree": "01f5ba1cca8216de1a6057be8c1877c778603a2d",
      "parents": [
        "2aa15890f3c191326678f1bd68af61ec6b8753ec"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Feb 24 11:10:01 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Feb 24 19:53:06 2011 +0100"
      },
      "message": "PM: Make ACPI wakeup from S5 work again when CONFIG_PM_SLEEP is unset\n\nCommit 074037e (PM / Wakeup: Introduce wakeup source objects and\nevent statistics (v3)) caused ACPI wakeup to only work if\nCONFIG_PM_SLEEP is set, but it also worked for CONFIG_PM_SLEEP unset\nbefore.  This can be fixed by making device_set_wakeup_enable(),\ndevice_init_wakeup() and device_may_wakeup() work in the same way\nas before commit 074037e when CONFIG_PM_SLEEP is unset.\n\nReported-and-tested-by: Justin Maggard \u003cjmaggard10@gmail.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "62bcb91573425975d6ad2389d7ab1d8feca88ab4",
      "tree": "c1e2fb54821b77f1a7f32e218ac5cbf91dd4a3e8",
      "parents": [
        "4b31db8a16fa0d4d6a0fa42d044e7a4f4dad3641"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Dec 24 15:04:41 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 24 15:04:41 2010 +0100"
      },
      "message": "PM: Prototype the pm_generic_ operations\n\nThe pm_generic_ operations are all exported but are not prototyped in any\nheader file for direct use. Do so.\n\n[rjw: Added extern.]\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b8c76f6aed0ab7df73a6410f3f82de2c831bb144",
      "tree": "1194ded4c23f62ab253a2e0712cfdd436aa2365b",
      "parents": [
        "5b219a51fdceaf76e0e18da57c7efb9e5586e567"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 16 00:51:21 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 24 15:02:44 2010 +0100"
      },
      "message": "PM: Replace the device power.status field with a bit field\n\nThe device power.status field is too complicated for its purpose\n(storing the information about whether or not the device is in the\n\"active\" state from the PM core\u0027s point of view), so replace it with\na bit field and modify all of its users accordingly.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "c7b61de5b7b17f0df34dc7d2f8b9576f8bd36fce",
      "tree": "d8cf6be1aab175839973d2c76060bd41d65b2ed5",
      "parents": [
        "5262a47502adcfc3a64403120768f528418a3b79"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Dec 01 00:14:42 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 24 15:02:41 2010 +0100"
      },
      "message": "PM / Runtime: Add synchronous runtime interface for interrupt handlers (v3)\n\nThis patch (as1431c) makes the synchronous runtime-PM interface\nsuitable for use in interrupt handlers.  Subsystems can call the new\npm_runtime_irq_safe() function to tell the PM core that a device\u0027s\nruntime_suspend and runtime_resume callbacks should be invoked with\ninterrupts disabled and the spinlock held.  This permits the\npm_runtime_get_sync() and the new pm_runtime_put_sync_suspend()\nroutines to be called from within interrupt handlers.\n\nWhen a device is declared irq-safe in this way, the PM core increments\nthe parent\u0027s usage count, so the parent will never be runtime\nsuspended.  This prevents difficult situations in which an irq-safe\ndevice can\u0027t resume because it is forced to wait for its non-irq-safe\nparent.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "15bcb91d7e607d8a2e060f01f7784a7454668da4",
      "tree": "6d59964cb78ab4b7c93a3c4d06f0dad256b99140",
      "parents": [
        "7490e44239e60293bca0c2663229050c36c660c2"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sat Sep 25 23:35:21 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:48 2010 +0200"
      },
      "message": "PM / Runtime: Implement autosuspend support\n\nThis patch (as1427) implements the \"autosuspend\" facility for runtime\nPM.  A few new fields are added to the dev_pm_info structure and\nseveral new PM helper functions are defined, for telling the PM core\nwhether or not a device uses autosuspend, for setting the autosuspend\ndelay, and for marking periods of device activity.\n\nDrivers that do not want to use autosuspend can continue using the\nsame helper functions as before; their behavior will not change.  In\naddition, drivers supporting autosuspend can also call the old helper\nfunctions to get the old behavior.\n\nThe details are all explained in Documentation/power/runtime_pm.txt\nand Documentation/ABI/testing/sysfs-devices-power.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "7490e44239e60293bca0c2663229050c36c660c2",
      "tree": "938cd1cafba133f2d47c648ac01242de841d6d1b",
      "parents": [
        "140a6c945211ee911dec776fafa52e03a7d7bb9a"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sat Sep 25 23:35:15 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:47 2010 +0200"
      },
      "message": "PM / Runtime: Add no_callbacks flag\n\nSome devices, such as USB interfaces, cannot be power-managed\nindependently of their parents, i.e., they cannot be put in low power\nwhile the parent remains at full power.  This patch (as1425) creates a\nnew \"no_callbacks\" flag, which tells the PM core not to invoke the\nruntime-PM callback routines for the such devices but instead to\nassume that the callbacks always succeed.  In addition, the\nnon-debugging runtime-PM sysfs attributes for the devices are removed,\nsince they are pretty much meaningless.\n\nThe advantage of this scheme comes not so much from avoiding the\ncallbacks themselves, but rather from the fact that without the need\nfor a process context in which to run the callbacks, more work can be\ndone in interrupt context.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "098dff738abbeaea15fc95c4f4fdaee1e9bbea75",
      "tree": "b2282f59358b4f1e8bbf9949ff1eec4c8016ca5f",
      "parents": [
        "074037ec79bea73edf1b1ec72fef1010e83e3cc5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Sep 22 22:10:57 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:43 2010 +0200"
      },
      "message": "PM: Fix potential issue with failing asynchronous suspend\n\nThere is a potential issue with the asynchronous suspend code that\na device driver suspending asynchronously may not notice that it\nshould back off.  There are two failing scenarions, (1) when the\ndriver is waiting for a driver suspending synchronously to complete\nand that second driver returns error code, in which case async_error\nwon\u0027t be set and the waiting driver will continue suspending and (2)\nafter the driver has called device_pm_wait_for_dev() and the waited\nfor driver returns error code, in which case the caller of\ndevice_pm_wait_for_dev() will not know that there was an error and\nwill continue suspending.\n\nTo fix this issue make __device_suspend() set async_error, so\nasync_suspend() doesn\u0027t need to set it any more, and make\ndevice_pm_wait_for_dev() return async_error, so that its callers\ncan check whether or not they should continue suspending.\n\nNo more changes are necessary, since device_pm_wait_for_dev() is\nnot used by any drivers\u0027 suspend routines.\n\nReported-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "074037ec79bea73edf1b1ec72fef1010e83e3cc5",
      "tree": "1876caa07f755e680da5ea102d985efe4b508d56",
      "parents": [
        "0702d9ee0f1dcb6258789032f03b3208bfafaffc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Sep 22 22:09:10 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:43 2010 +0200"
      },
      "message": "PM / Wakeup: Introduce wakeup source objects and event statistics (v3)\n\nIntroduce struct wakeup_source for representing system wakeup sources\nwithin the kernel and for collecting statistics related to them.\nMake the recently introduced helper functions pm_wakeup_event(),\npm_stay_awake() and pm_relax() use struct wakeup_source objects\ninternally, so that wakeup statistics associated with wakeup devices\ncan be collected and reported in a consistent way (the definition of\npm_relax() is changed, which is harmless, because this function is\nnot called directly by anyone yet).  Introduce new wakeup-related\nsysfs device attributes in /sys/devices/.../power for reporting the\ndevice wakeup statistics.\n\nChange the global wakeup events counters event_count and\nevents_in_progress into atomic variables, so that it is not necessary\nto acquire a global spinlock in pm_wakeup_event(), pm_stay_awake()\nand pm_relax(), which should allow us to avoid lock contention in\nthese functions on SMP systems with many wakeup devices.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "8d4b9d1bfef117862a2889dec4dac227068544c9",
      "tree": "a17f69a64b97759452988047058666ae51f70304",
      "parents": [
        "0fcb4eef8294492c8f1de8236b1ed81f09e42922"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Mon Jul 19 02:01:06 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:01:06 2010 +0200"
      },
      "message": "PM / Runtime: Add runtime PM statistics (v3)\n\nIn order for PowerTOP to be able to report how well the new runtime PM is\nworking for the various drivers, the kernel needs to export some basic\nstatistics in sysfs.\n\nThis patch adds two sysfs files in the runtime PM domain that expose the\ntotal time a device has been active, and the time a device has been\nsuspended.\n\nWith this PowerTOP can compute the activity percentage\n\nActive %age \u003d 100 * (delta active) / (delta active + delta suspended)\n\nand present the information to the user.\n\nI\u0027ve written the PowerTOP code (slated for version 1.12) already, and the\noutput looks like this:\n\nRuntime Device Power Management statistics\nActive  Device name\n 10.0%\t06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller\n\n[version 2: fix stat update bugs noticed by Alan Stern]\n[version 3: rebase to -next and move the sysfs declaration]\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "c125e96f044427f38d106fab7bc5e4a5e6a18262",
      "tree": "d9bbd40cc933fe522dbdf8ca2f7edf7b6f2f7ca4",
      "parents": [
        "b14e033e17d0ea0ba12668d0d2f371cd31586994"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 05 22:43:53 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 01:58:48 2010 +0200"
      },
      "message": "PM: Make it possible to avoid races between wakeup and system sleep\n\nOne of the arguments during the suspend blockers discussion was that\nthe mainline kernel didn\u0027t contain any mechanisms making it possible\nto avoid races between wakeup and system suspend.\n\nGenerally, there are two problems in that area.  First, if a wakeup\nevent occurs exactly when /sys/power/state is being written to, it\nmay be delivered to user space right before the freezer kicks in, so\nthe user space consumer of the event may not be able to process it\nbefore the system is suspended.  Second, if a wakeup event occurs\nafter user space has been frozen, it is not generally guaranteed that\nthe ongoing transition of the system into a sleep state will be\naborted.\n\nTo address these issues introduce a new global sysfs attribute,\n/sys/power/wakeup_count, associated with a running counter of wakeup\nevents and three helper functions, pm_stay_awake(), pm_relax(), and\npm_wakeup_event(), that may be used by kernel subsystems to control\nthe behavior of this attribute and to request the PM core to abort\nsystem transitions into a sleep state already in progress.\n\nThe /sys/power/wakeup_count file may be read from or written to by\nuser space.  Reads will always succeed (unless interrupted by a\nsignal) and return the current value of the wakeup events counter.\nWrites, however, will only succeed if the written number is equal to\nthe current value of the wakeup events counter.  If a write is\nsuccessful, it will cause the kernel to save the current value of the\nwakeup events counter and to abort the subsequent system transition\ninto a sleep state if any wakeup events are reported after the write\nhas returned.\n\n[The assumption is that before writing to /sys/power/state user space\nwill first read from /sys/power/wakeup_count.  Next, user space\nconsumers of wakeup events will have a chance to acknowledge or\nveto the upcoming system transition to a sleep state.  Finally, if\nthe transition is allowed to proceed, /sys/power/wakeup_count will\nbe written to and if that succeeds, /sys/power/state will be written\nto as well.  Still, if any wakeup events are reported to the PM core\nby kernel subsystems after that point, the transition will be\naborted.]\n\nAdditionally, put a wakeup events counter into struct dev_pm_info and\nmake these per-device wakeup event counters available via sysfs,\nso that it\u0027s possible to check the activity of various wakeup event\nsources within the kernel.\n\nTo illustrate how subsystems can use pm_wakeup_event(), make the\nlow-level PCI runtime PM wakeup-handling code use it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: markgross \u003cmarkgross@thegnar.org\u003e\nReviewed-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\n"
    },
    {
      "commit": "d690b2cd222afc75320b9b8e9da7df02e9e630ca",
      "tree": "41b7f13c7176bc74d7836a7ec585a5a456302ea9",
      "parents": [
        "87d1b3e60b55ef65f10054ccc319e5d67cf010e9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Mar 06 21:28:37 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Mar 06 21:28:37 2010 +0100"
      },
      "message": "PM: Provide generic subsystem-level callbacks\n\nThere are subsystems whose power management callbacks only need to\ninvoke the callbacks provided by device drivers.  Still, their system\nsleep PM callbacks should play well with the runtime PM callbacks,\nso that devices suspended at run time can be left in that state for\na system sleep transition.\n\nProvide a set of generic PM callbacks for such subsystems and\ndefine convenience macros for populating dev_pm_ops structures.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "f8824cee405c62ba465b85365201166d9cf86a14",
      "tree": "90020be3264ff98bad2f14759127a2d9693673d8",
      "parents": [
        "97df8c12995c5bac73e3bfeea4c5be155c1f4401"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jan 27 23:47:38 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 26 20:39:11 2010 +0100"
      },
      "message": "PM: Allow device drivers to use dpm_wait()\n\nThere are some dependencies between devices (in particular, between\nEHCI USB controllers and their OHCI/UHCI siblings) which are not\nreflected by the structure of the device tree.  With synchronous\nsuspend and resume these dependencies are taken into accout\nautomatically, because the devices in question are always registered\nin the right order, but to meet these constraints with asynchronous\nsuspend and resume the drivers of these devices will need to use\ndpm_wait() in their suspend/resume routines, so introduce a helper\nfunction allowing them to do that.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5af84b82701a96be4b033aaa51d86c72e2ded061",
      "tree": "ac5751c7d2e9c17bf41dabdbeba964a05f09af18",
      "parents": [
        "8cc6b39ff36b4bbce2d7471da088df122b0e9033"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 23 22:23:32 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 26 20:39:09 2010 +0100"
      },
      "message": "PM: Asynchronous suspend and resume of devices\n\nTheoretically, the total time of system sleep transitions (suspend\nto RAM, hibernation) can be reduced by running suspend and resume\ncallbacks of device drivers in parallel with each other.  However,\nthere are dependencies between devices such that we\u0027re not allowed\nto suspend the parent of a device before suspending the device\nitself.  Analogously, we\u0027re not allowed to resume a device before\nresuming its parent.\n\nThe most straightforward way to take these dependencies into accout\nis to start the async threads used for suspending and resuming\ndevices at the core level, so that async_schedule() is called for\neach suspend and resume callback supposed to be executed\nasynchronously.\n\nFor this purpose, introduce a new device flag, power.async_suspend,\nused to mark the devices whose suspend and resume callbacks are to be\nexecuted asynchronously (ie. in parallel with the main suspend/resume\nthread and possibly in parallel with each other) and helper function\ndevice_enable_async_suspend() allowing one to set power.async_suspend\nfor given device (power.async_suspend is unset by default for all\ndevices).  For each device with the power.async_suspend flag set the\nPM core will use async_schedule() to execute its suspend and resume\ncallbacks.\n\nThe async threads started for different devices as a result of\ncalling async_schedule() are synchronized with each other and with\nthe main suspend/resume thread with the help of completions, in the\nfollowing way:\n(1) There is a completion, power.completion, for each device object.\n(2) Each device\u0027s completion is reset before calling async_schedule()\n    for the device or, in the case of devices with the\n    power.async_suspend flags unset, before executing the device\u0027s\n    suspend and resume callbacks.\n(3) During suspend, right before running the bus type, device type\n    and device class suspend callbacks for the device, the PM core\n    waits for the completions of all the device\u0027s children to be\n    completed.\n(4) During resume, right before running the bus type, device type and\n    device class resume callbacks for the device, the PM core waits\n    for the completion of the device\u0027s parent to be completed.\n(5) The PM core completes power.completion for each device right\n    after the bus type, device type and device class suspend (or\n    resume) callbacks executed for the device have returned.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "53823639173cc9e9a261f68f4abefe62364b86c6",
      "tree": "a4af3a12edea5cf24d23ddece703ec85bacffb42",
      "parents": [
        "68c6b859846bd078b37c6ca5f3882032f129e72d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 23 22:02:51 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 26 20:39:08 2010 +0100"
      },
      "message": "PM / Runtime: Add sysfs switch for disabling device run-time PM\n\nAdd new device sysfs attribute, power/control, allowing the user\nspace to block the run-time power management of the devices.  If this\nattribute is set to \"on\", the driver of the device won\u0027t be able to power\nmanage it at run time (without breaking the rules) and the device will\nalways be in the full power state (except when the entire system goes\ninto a sleep state).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\n"
    },
    {
      "commit": "471452104b8520337ae2fb48c4e61cd4896e025d",
      "tree": "8594ae4a8362014e3cccf72a4e8834cdbb610bdd",
      "parents": [
        "0ead0f84e81a41c3e98aeceab04af8ab1bb08d1f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Dec 14 18:00:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:25 2009 -0800"
      },
      "message": "const: constify remaining dev_pm_ops\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a1a8eb58a2c6cd819d17332c5a2c369203635d5",
      "tree": "2424ca8b41f97a0d4110218ef75caa50270c194a",
      "parents": [
        "965c4ac0613b071d6f035334c5d9d942013df4f9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 03 21:19:18 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 06 16:17:57 2009 +0100"
      },
      "message": "PM: Add flag for devices capable of generating run-time wake-up events\n\nApparently, there are devices that can wake up the system from sleep\nstates and yet are incapable of generating wake-up events at run\ntime.  Thus, introduce a flag indicating if given device is capable\nof generating run-time wake-up events.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "9d62ec6ca71d71c8a0d2cb1004f476d33f668955",
      "tree": "9add05fac4a177024f6de235b5d9b82054e24b27",
      "parents": [
        "8dd2b42665f9d4ca4fded99f048631b60f669dc5"
      ],
      "author": {
        "name": "Albin Tonnerre",
        "email": "albin.tonnerre@free-electrons.com",
        "time": "Wed Aug 05 23:59:59 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 14 20:27:00 2009 +0200"
      },
      "message": "PM: Add convenience macro to make switching to dev_pm_ops less error-prone\n\nIn a number of cases, the .suspend, .freeze, .poweroff and .resume,\n.thaw, .restore functions are identical. However, they all need to be\nassigned to avoid regressionsm as the previous code called .suspend\nresp. .resume in all those cases. SIMPLE_DEV_PM_OPS helps to deal\nwith this case.\n\n[rjw: Changed the name of the macro and added the comment explaining its\n purpose.]\n\nSigned-off-by: Albin Tonnerre \u003calbin.tonnerre@free-electrons.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5e928f77a09a07f9dd595bb8a489965d69a83458",
      "tree": "ef53ec90fa3214fd22e36b07c11c06b09e373d8d",
      "parents": [
        "8400146d0dc03590bba051399e4bb7e1cbf1c010"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Aug 18 23:38:32 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Aug 23 00:04:44 2009 +0200"
      },
      "message": "PM: Introduce core framework for run-time PM of I/O devices (rev. 17)\n\nIntroduce a core framework for run-time power management of I/O\ndevices.  Add device run-time PM fields to \u0027struct dev_pm_info\u0027\nand device run-time PM callbacks to \u0027struct dev_pm_ops\u0027.  Introduce\na run-time PM workqueue and define some device run-time PM helper\nfunctions at the core level.  Document all these things.\n\nSpecial thanks to Alan Stern for his help with the design and\nmultiple detailed reviews of the pereceding versions of this patch\nand to Magnus Damm for testing feedback.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\n"
    },
    {
      "commit": "d161630297a20802d01c55847bfcba85d2118a9f",
      "tree": "51685c169319400b6da4dc6c56b69e731c45f297",
      "parents": [
        "e39a71ef80877f4e30d808af9acceec80f4d2f7c"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sun May 24 22:05:42 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 12 21:32:31 2009 +0200"
      },
      "message": "PM core: rename suspend and resume functions\n\nThis patch (as1241) renames a bunch of functions in the PM core.\nRather than go through a boring list of name changes, suffice it to\nsay that in the end we have a bunch of pairs of functions:\n\n\tdevice_resume_noirq\tdpm_resume_noirq\n\tdevice_resume\t\tdpm_resume\n\tdevice_complete\t\tdpm_complete\n\tdevice_suspend_noirq\tdpm_suspend_noirq\n\tdevice_suspend\t\tdpm_suspend\n\tdevice_prepare\t\tdpm_prepare\n\nin which device_X does the X operation on a single device and dpm_X\ninvokes device_X for all devices in the dpm_list.\n\nIn addition, the old dpm_power_up and device_resume_noirq have been\ncombined into a single function (dpm_resume_noirq).\n\nLastly, dpm_suspend_start and dpm_resume_end are the renamed versions\nof the former top-level device_suspend and device_resume routines.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e39a71ef80877f4e30d808af9acceec80f4d2f7c",
      "tree": "e9d4ff1618328cf3a3fafee04621b9776ca169de",
      "parents": [
        "1380a37e3da5d9e14ea5c2a4c6ab2b307a2798ea"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Fri May 15 00:53:26 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 12 21:32:31 2009 +0200"
      },
      "message": "PM: Rename device_power_down/up()\n\nRename the functions performing \"_noirq\" dev_pm_ops\noperations from device_power_down() and device_power_up()\nto device_suspend_noirq() and device_resume_noirq().\n\nThe new function names are chosen to show that the functions\nare responsible for calling the _noirq() versions to finalize\nthe suspend/resume operation. The current function names do\nnot perform power down/up anymore so the names may be misleading.\n\nGlobal function renames:\n- device_power_down() -\u003e device_suspend_noirq()\n- device_power_up() -\u003e device_resume_noirq()\n\nStatic function renames:\n- suspend_device_noirq() -\u003e __device_suspend_noirq()\n- resume_device_noirq() -\u003e __device_resume_noirq()\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "ffa6a7054d172a2f57248dff2de600ca795c5656",
      "tree": "f93c6234bb90295c52fcef09e367ed77ff6c3645",
      "parents": [
        "60530afe1ee8a5532cb09d0ab5bc3f1a6495b780"
      ],
      "author": {
        "name": "Cornelia Huck",
        "email": "cornelia.huck@de.ibm.com",
        "time": "Wed Mar 04 12:44:00 2009 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 24 16:38:26 2009 -0700"
      },
      "message": "Driver core: Fix device_move() vs. dpm list ordering, v2\n\ndpm_list currently relies on the fact that child devices will\nbe registered after their parents to get a correct suspend\norder. Using device_move() however destroys this assumption, as\nan already registered device may be moved under a newly registered\none.\n\nThis patch adds a new argument to device_move(), allowing callers\nto specify how dpm_list should be adapted.\n\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "770824bdc421ff58a64db608294323571c949f4c",
      "tree": "2fbeef604fe982bf322249a53a95dd2ff851d5f4",
      "parents": [
        "936577c61d0c10b8929608a92c98d839b22053bc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Feb 22 18:38:50 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Feb 22 10:33:44 2009 -0800"
      },
      "message": "PM: Split up sysdev_[suspend|resume] from device_power_[down|up]\n\nMove the sysdev_suspend/resume from the callee to the callers, with\nno real change in semantics, so that we can rework the disabling of\ninterrupts during suspend/hibernation.\n\nThis is based on an earlier patch from Linus.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f4f5d4516b441d712fa0ffe5380618fb7fc545e",
      "tree": "60e7577895c1466f1f62b5389017c4dbdad580ec",
      "parents": [
        "adf094931ffb25ef4b381559918f1a34181a5273"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Nov 17 11:14:19 2008 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:30 2009 -0800"
      },
      "message": "Fix misspellings in pm.h macros\n\nThis patch (as1167) fixes some misspellings in various recently-added\nmacros in pm.h.  Fortunately these macros are not yet used anywhere.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n\n"
    },
    {
      "commit": "adf094931ffb25ef4b381559918f1a34181a5273",
      "tree": "bd343d4c15b21dff6a73359fd2d82ff77e30e0d4",
      "parents": [
        "238c6d54830c624f34ac9cf123ac04aebfca5013"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Oct 06 22:46:05 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:29 2009 -0800"
      },
      "message": "PM: Simplify the new suspend/hibernation framework for devices\n\nPM: Simplify the new suspend/hibernation framework for devices\n\nFollowing the discussion at the Kernel Summit, simplify the new\ndevice PM framework by merging \u0027struct pm_ops\u0027 and\n\u0027struct pm_ext_ops\u0027 and removing pointers to \u0027struct pm_ext_ops\u0027\nfrom \u0027struct platform_driver\u0027 and \u0027struct pci_driver\u0027.\n\nAfter this change, the suspend/hibernation callbacks will only\nreside in \u0027struct device_driver\u0027 as well as at the bus type/\ndevice class/device type level.  Accordingly, PCI and platform\ndevice drivers are now expected to put their suspend/hibernation\ncallbacks into the \u0027struct device_driver\u0027 embedded in\n\u0027struct pci_driver\u0027 or \u0027struct platform_driver\u0027, respectively.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d5c003b4d1690e666dbab02bc8e705947baa848c",
      "tree": "868edee78b635698429173a95ac4215b932f0155",
      "parents": [
        "8e9c7716c138fa82d919bfe1115ec8c938e90918"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Oct 15 22:01:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:30 2008 -0700"
      },
      "message": "include: replace __FUNCTION__ with __func__\n\n__FUNCTION__ is gcc-specific, use __func__\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8111d1b552349921aae1acf73e4e8cea98e80970",
      "tree": "39dfdfcb722125bb9d036a2f0e9814ba077acb4a",
      "parents": [
        "8c363265d57d755e62053e9f69a1f2164e83f7ea"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Jul 23 21:28:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:23 2008 -0700"
      },
      "message": "pm: add new PM_EVENT codes for runtime power transitions\n\nThis patch (as1112) adds some new PM_EVENT_* codes for use by kernel\nsubsystems.  They describe runtime power-state transitions of the sort already\nimplemented by the USB subsystem.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c363265d57d755e62053e9f69a1f2164e83f7ea",
      "tree": "fb5cf13c2b114817d7effcc45cdcded9d3e8e680",
      "parents": [
        "40b4ac33b4d1bdd5cbeb2241be2399c550fa3696"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 23 21:28:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:23 2008 -0700"
      },
      "message": "pm: drop unnecessary includes from pm.h\n\nDrop unnecessary includes from include/linux/pm.h .\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7ecb331e11d1f7aa66aeef9170fc20781c9bb55",
      "tree": "4194762c4b06742666ffa6f2e9df3d12d23d6020",
      "parents": [
        "558481f038e587b22d02167af58914c814ce9de5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 23 21:28:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:22 2008 -0700"
      },
      "message": "pm: remove remaining obsolete definitions from pm.h\n\nRemove the remaining obsolete definitions from include/linux/pm.h and move\nthe definitions of PM_SUSPEND and PM_RESUME to the header of h3600 which\nis the only user of them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "558481f038e587b22d02167af58914c814ce9de5",
      "tree": "51a4e53192e81b17291d344860b5d40111b25b8d",
      "parents": [
        "d75f65fd247fe85d90a3880d143b1bb22fe13a48"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 23 21:28:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:22 2008 -0700"
      },
      "message": "pm: remove definition of struct pm_dev\n\nRemove the definition of \u0027struct pm_dev\u0027, which is not used any more,\nalong with some related stuff from include/linux/pm.h .\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1eede070a59e1cc73da51e1aaa00d9ab86572cfc",
      "tree": "eafccca4f2a1ae2e8ebb06d2dff9528d5a289da4",
      "parents": [
        "bb71ad880204b79d60331d3384103976e086cb9f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 20 23:00:01 2008 +0200"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Tue Jun 10 10:59:50 2008 -0700"
      },
      "message": "Introduce new top level suspend and hibernation callbacks\n\nIntroduce \u0027struct pm_ops\u0027 and \u0027struct pm_ext_ops\u0027 (\u0027ext\u0027 meaning\n\u0027extended\u0027) representing suspend and hibernation operations for bus\ntypes, device classes, device types and device drivers.\n\nModify the PM core to use \u0027struct pm_ops\u0027 and \u0027struct pm_ext_ops\u0027\nobjects, if defined, instead of the -\u003esuspend(), -\u003eresume(),\n-\u003esuspend_late(), and -\u003eresume_early() callbacks (the old callbacks\nwill be considered as legacy and gradually phased out).\n\nThe main purpose of doing this is to separate suspend (aka S2RAM and\nstandby) callbacks from hibernation callbacks in such a way that the\nnew callbacks won\u0027t take arguments and the semantics of each of them\nwill be clearly specified.  This has been requested for multiple\ntimes by many people, including Linus himself, and the reason is that\nwithin the current scheme if -\u003eresume() is called, for example, it\u0027s\ndifficult to say why it\u0027s been called (ie. is it a resume from RAM or\nfrom hibernation or a suspend/hibernation failure etc.?).\n\nThe second purpose is to make the suspend/hibernation callbacks more\nflexible so that device drivers can handle more than they can within\nthe current scheme.  For example, some drivers may need to prevent\nnew children of the device from being registered before their\n-\u003esuspend() callbacks are executed or they may want to carry out some\noperations requiring the availability of some other devices, not\ndirectly bound via the parent-child relationship, in order to prepare\nfor the execution of -\u003esuspend(), etc.\n\nUltimately, we\u0027d like to stop using the freezing of tasks for suspend\nand therefore the drivers\u0027 suspend/hibernation code will have to take\ncare of the handling of the user space during suspend/hibernation.\nThat, in turn, would be difficult within the current scheme, without\nthe new -\u003eprepare() and -\u003ecomplete() callbacks.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "735643ee6cc5249bfac07fcad0946a5e7aff4423",
      "tree": "e725df246f4a3cf88b6b42a28d859ab969acf81c",
      "parents": [
        "71cc2c2152170b8166f59abb0604dc62073aeb92"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@crashcourse.ca",
        "time": "Wed Apr 30 00:55:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:54 2008 -0700"
      },
      "message": "Remove \"#ifdef __KERNEL__\" checks from unexported headers\n\nRemove the \"#ifdef __KERNEL__\" tests from unexported header files in\nlinux/include whose entire contents are wrapped in that preprocessor\ntest.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@crashcourse.ca\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a3df1f7de0ecaf77a1dde86f2a4dc020f37f87e",
      "tree": "599a884cf4b42c516226c0f845cd32d0295b74ed",
      "parents": [
        "d288e47c471e1090e80c62ad95882fafbf3f499d"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Mar 19 22:39:13 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:26 2008 -0700"
      },
      "message": "PM: Convert wakeup flag accessors to inline functions\n\nThis patch (as1058) improves the wakeup macros in include/linux/pm.h.\nAll but the trivial ones are converted to inline routines, which\nrequires moving them to a separate header file since they depend on\nthe definition of struct device.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "d288e47c471e1090e80c62ad95882fafbf3f499d",
      "tree": "bfc8a880b49a0b7a0bb200ae0f0462f5523d0256",
      "parents": [
        "74081f8667d73ad59961cf63be5f0e9d6a87c8a3"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Mar 19 22:37:42 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:25 2008 -0700"
      },
      "message": "PM: Make wakeup flags available whenever CONFIG_PM is set\n\nThe various wakeup flags and their accessor macros in struct\ndev_pm_info should be available whenever CONFIG_PM is enabled, not\njust when CONFIG_PM_SLEEP is on.  Otherwise remote wakeup won\u0027t always\nbe configurable for runtime power management.  This patch (as1056b)\nfixes the oversight.\n\nDavid Brownell adds:\n\tMore accurately, fixes the \"regression\" ... as noted sometime\n\tlast summer, after 296699de6bdc717189a331ab6bbe90e05c94db06\n\tintroduced CONFIG_SUSPEND.  But that didn\u0027t make the regression\n\tlist for that kernel, ergo the delay in fixing it.\n\n[rjw: rebased]\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "58aca23226a19983571bd3b65167521fc64f5869",
      "tree": "1fd3f54ce5f18dc972b77970289a27a4e4a39bee",
      "parents": [
        "6bcf19d02a5d7e627fa054f2f10e0a8d830df326"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 12 00:57:22 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:24 2008 -0700"
      },
      "message": "PM: Handle device registrations during suspend/resume\n\nModify the PM core to protect its data structures, specifically the\ndpm_active list, from being corrupted if a child of the currently\nsuspending device is registered concurrently with its -\u003esuspend()\ncallback.  In that case, since the new device (the child) is added\nto dpm_active after its parent, the PM core will attempt to\nsuspend it after the parent, which is wrong.\n\nIntroduce a new member of struct dev_pm_info, called \u0027sleeping\u0027,\nand use it to check if the parent of the device being added to\ndpm_active has been suspended, in which case the device registration\nfails.  Also, use \u0027sleeping\u0027 for checking if the ordering of devices\non dpm_active is correct.\n\nIntroduce variable \u0027all_sleeping\u0027 that will be set to \u0027true\u0027 once all\ndevices have been suspended and make new device registrations fail\nuntil \u0027all_sleeping\u0027 is reset to \u0027false\u0027, in order to avoid having\nunsuspended devices around while the system is going into a sleep state.\n\nRemove pm_sleep_rwsem which is not necessary any more.\n\nSpecial thanks to Alan Stern for discussions and suggestions that\nlead to the creation of this patch.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3a2d5b700132f35401f1d9e22fe3c2cab02c2549",
      "tree": "ad991428c41aee92a5f78b06bf73430af0e6f7ae",
      "parents": [
        "39273b58a409cd6d65c9732bdca00bacd1626672"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Feb 23 19:13:25 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 10:40:04 2008 -0800"
      },
      "message": "PM: Introduce PM_EVENT_HIBERNATE callback state\n\nDuring the last step of hibernation in the \"platform\" mode (with the\nhelp of ACPI) we use the suspend code, including the devices\u0027\n-\u003esuspend() methods, to prepare the system for entering the ACPI S4\nsystem sleep state.\n\nBut at least for some devices the operations performed by the\n-\u003esuspend() callback in that case must be different from its operations\nduring regular suspend.\n\nFor this reason, introduce the new PM event type PM_EVENT_HIBERNATE and\npass it to the device drivers\u0027 -\u003esuspend() methods during the last phase\nof hibernation, so that they can distinguish this case and handle it as\nappropriate.  Modify the drivers that handle PM_EVENT_SUSPEND in a\nspecial way and need to handle PM_EVENT_HIBERNATE in the same way.\n\nThese changes are necessary to fix a hibernation regression related\nto the i915 driver (ref. http://lkml.org/lkml/2008/2/22/488).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nTested-by: Jeff Chua \u003cjeff.chua.linux@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fd3f8984f6fa1ad1a6c2283eef48ba6e5242bcc5",
      "tree": "12f69b5301ece00daff4a73aa9ed92e9e88d07a0",
      "parents": [
        "ab690d9fedf5103bc3057bcd20555159f613b5f2"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Feb 03 17:45:46 2008 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sun Feb 03 17:45:46 2008 +0200"
      },
      "message": "include/linux/: Spelling fixes\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "9f9adecd2d0e4f88fa0e8cb06c6ec207748df70a",
      "tree": "b3914860b74a9f6c3ae42016aa708b54040248f8",
      "parents": [
        "da8cadb31b82c9d41fc593c8deab6aa20b162d6b"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Dec 13 17:38:03 2007 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jan 11 12:26:47 2008 -0500"
      },
      "message": "PM: ACPI and APM must not be enabled at the same time\n\nACPI and APM used \"pm_active\" to guarantee that\nthey would not be simultaneously active.\n\nBut pm_active was recently moved under CONFIG_PM_LEGACY,\nso that without CONFIG_PM_LEGACY, pm_active became a NOP --\nallowing ACPI and APM to both be simultaneously enabled.\nThis caused unpredictable results, including boot hangs.\n\nFurther, the code under CONFIG_PM_LEGACY is scheduled\nfor removal.\n\nSo replace pm_active with pm_flags.\npm_flags depends only on CONFIG_PM,\nwhich is present for both CONFIG_APM and CONFIG_ACPI.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d9194\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "95d9ffbe01fb21d524c86bf77871255066bc6e55",
      "tree": "647355f56f85b1038ffc81fa50ff2c3878ab6597",
      "parents": [
        "a065c86e1bfcdd36709025d018965afea3f3a2b6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:18 2007 -0700"
      },
      "message": "PM: Move definition of struct pm_ops to suspend.h\n\nMove the definition of \u0027struct pm_ops\u0027 and related functions from \u003clinux/pm.h\u003e\nto \u003clinux/suspend.h\u003e .\n\nThere are, at least, the following reasons to do that:\n* \u0027struct pm_ops\u0027 is specifically related to suspend and not to the power\n  management in general.\n* As long as \u0027struct pm_ops\u0027 is defined in \u003clinux/pm.h\u003e, any modification of it\n  causes the entire kernel to be recompiled, which is unnecessary and annoying.\n* Some suspend-related features are already defined in \u003clinux/suspend.h\u003e, so it\n  is logical to move the definition of \u0027struct pm_ops\u0027 into there.\n* \u0027struct hibernation_ops\u0027, being the hibernation-related counterpart of\n  \u0027struct pm_ops\u0027, is defined in \u003clinux/suspend.h\u003e .\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80ba80a9bf25d251237694c3fcee850a73324532",
      "tree": "b6cc901b7942255afcbe0f946e2f49b07fe856e6",
      "parents": [
        "9c837fb692b005203765d8a569a2fe43fdff9df1"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Jul 30 23:08:46 2007 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 30 12:25:49 2007 -0700"
      },
      "message": "Fallout from \"Remove fs.h from mm.h\" patch\n\nWhile I was busy compile-testing my patch, ENOSYS sneaked into pm.h\nleading to some compile-breakages mostly on ia64 and some mips configs.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "296699de6bdc717189a331ab6bbe90e05c94db06",
      "tree": "53c847ecc8cce11952502921844052e44ca60d5e",
      "parents": [
        "b0cb1a19d05b8ea8611a9ef48a17fe417f1832e6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 29 23:27:18 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 29 16:45:38 2007 -0700"
      },
      "message": "Introduce CONFIG_SUSPEND for suspend-to-Ram and standby\n\nIntroduce CONFIG_SUSPEND representing the ability to enter system sleep\nstates, such as the ACPI S3 state, and allow the user to choose SUSPEND\nand HIBERNATION independently of each other.\n\nMake HOTPLUG_CPU be selected automatically if SUSPEND or HIBERNATION has\nbeen chosen and the kernel is intended for SMP systems.\n\nAlso, introduce CONFIG_PM_SLEEP which is automatically selected if\nCONFIG_SUSPEND or CONFIG_HIBERNATION is set and use it to select the\ncode needed for both suspend and hibernation.\n\nThe top-level power management headers and the ACPI code related to\nsuspend and hibernation are modified to use the new definitions (the\nchanges in drivers/acpi/sleep/main.c are, mostly, moving code to reduce\nthe number of ifdefs).\n\nThere are many other files in which CONFIG_PM can be replaced with\nCONFIG_PM_SLEEP or even with CONFIG_SUSPEND, but they can be updated in\nthe future.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd804eba1c8597cbb7cd5a5f9fe886aae16a079a",
      "tree": "082f289809f92db6d23a13cd8fbbb82da125fcda",
      "parents": [
        "d7372cdf6938ccea23ec9fc68970702fed9ec3c8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 01:47:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "PM: Introduce pm_power_off_prepare\n\nIntroduce the pm_power_off_prepare() callback that can be registered by the\ninterested platforms in analogy with pm_idle() and pm_power_off(), used for\npreparing the system to power off (needed by ACPI).\n\nThis allows us to drop acpi_sysclass and device_acpi that are only defined in\norder to register the ACPI power off preparation callback, which is needed by\npm_power_off() registered in a much different way.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f8df781fc5f9ee5253a54ba669e1c8872844b86",
      "tree": "fbca591c1538dfe4b812910dfaacfa8ed928307d",
      "parents": [
        "471d0558045fe35f8c5f291c1ee63815eb9c2dcd"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Jul 12 16:57:22 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 18 15:49:49 2007 -0700"
      },
      "message": "PM: remove deprecated dpm_runtime_* routines\n\nThis patch (as933) removes the deprecated dpm_runtime_suspend() and\ndpm_runtime_resume() routines from the PM core.  The only user of\nthose routines is the PCMCIA ds driver; local replacements are added.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCC: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "515c53576299e32d6bdb6295cfa2fe1307516eb4",
      "tree": "210def9ddfced2800dc014a49a6f6a37dbf795eb",
      "parents": [
        "2a0134554e12f530c6eccb1dab3f0f8954f855c9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jun 17 19:48:06 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:02 2007 -0700"
      },
      "message": "PM: Remove prev_state from struct dev_pm_info\n\nThe prev_state member of struct dev_pm_info (defined in include/linux/pm.h) is\nonly used during a resume to check if the device\u0027s state before the suspend was\n\u0027off\u0027, in which case the device is not resumed.  However, in such cases the\ndecision whether or not to resume the device should be made on the driver level\nand the resume callbacks from the device\u0027s bus and class should be executed\nanyway (the may be needed for some things other than just powering on the\ndevice).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "cc4900690bf77257996e90f0059eb074b8db52e6",
      "tree": "df70ea9cb6e8f0a1f92aaea3b83f890efd698339",
      "parents": [
        "9cddad77574313fcee36c5e60122718daa7c0361"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jun 13 15:55:34 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:01 2007 -0700"
      },
      "message": "PM: Remove saved_state from struct dev_pm_info\n\nThe saved_state member of struct dev_pm_info, defined in include/linux/pm.h, is\nnot used anywhere, so it can be removed.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9cddad77574313fcee36c5e60122718daa7c0361",
      "tree": "2d6dd05e02ffff565ffb23046933f33cda0531e8",
      "parents": [
        "11048dcf333c414f237bb713c422e68f67b115a3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jun 13 15:53:34 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:01 2007 -0700"
      },
      "message": "PM: Remove pm_parent from struct dev_pm_info\n\nThe pm_parent member of struct dev_pm_info (defined in include/linux/pm.h) is\nonly used to check if the device\u0027s parent is in the right state while the\ndevice is being suspended or resumed.  However, this can be done just as well\nwith the help of the parent pointer in struct device, so pm_parent can be\nremoved along with some code that handles it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "2391dae3e36c19fe668c71eac2eb8344dbaaf46d",
      "tree": "ae8c1fa53fe67e3ccbb8c5097f6b5bda27b26959",
      "parents": [
        "cbcdd772ff43de58cc0d9de76ae9d05e2dd98bc0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 01 12:07:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 01 12:29:44 2007 -0700"
      },
      "message": "PM: introduce set_target method in pm_ops\n\nCommit 52ade9b3b97fd3bea42842a056fe0786c28d0555 changed the suspend code\nordering to execute pm_ops-\u003eprepare() after the device model per-device\n.suspend() calls in order to fix some ACPI-related issues.  Unfortunately, it\nbroke the at91 platform which assumed that pm_ops-\u003eprepare() would be called\nbefore suspending devices.\n\nat91 used pm_ops-\u003eprepare() to get notified of the target system sleep state,\nso that it could use this information while suspending devices.  However, with\nthe current suspend code ordering pm_ops-\u003eprepare() is called too late for\nthis purpose.  Thus, at91 needs an additional method in \u0027struct pm_ops\u0027 that\nwill be used for notifying the platform of the target system sleep state.\nMoreover, in the future such a method will also be needed by ACPI.\n\nThis patch adds the .set_target() method to \u0027struct pm_ops\u0027 and makes the\nsuspend code call it, if implemented, before executing the device model\nper-device .suspend() calls.  It also modifies the at91 code to use\npm_ops-\u003eset_target() instead of pm_ops-\u003eprepare().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3d25c275d383975504dc53c25b691df59bd3c48",
      "tree": "161a2ae12a20a630c2f639e144872db2b92eb098",
      "parents": [
        "d60846c4d16f9518b098b905af2b87cb6bf6dc42"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:33:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "PM: Separate hibernation code from suspend code\n\n[ With Johannes Berg \u003cjohannes@sipsolutions.net\u003e ]\n\nSeparate the hibernation (aka suspend to disk code) from the other suspend\ncode.  In particular:\n\n * Remove the definitions related to hibernation from include/linux/pm.h\n * Introduce struct hibernation_ops and a new hibernate() function to hibernate\n   the system, defined in include/linux/suspend.h\n * Separate suspend code in kernel/power/main.c from hibernation-related code\n   in kernel/power/disk.c and kernel/power/user.c (with the help of\n   hibernation_ops)\n * Switch ACPI (the only user of pm_ops.pm_disk_mode) to hibernation_ops\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14e38ac823b7b25e3f4e563c182f93fde78167d6",
      "tree": "f4252518efdd877ee1558ded8bcea4ed130837cc",
      "parents": [
        "11443ec7d9286dd25663516436a14edfb5f43857"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Apr 30 15:09:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 30 16:40:41 2007 -0700"
      },
      "message": "pm: include EIO from errno-base.h\n\nFor backwards compatibility, call_platform_enable_wakeup() can return 0\ninstead of -EIO since we aren\u0027t guaranteed to have errno defined.\n\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9684e51cd157607f0727c1550e7df6e31de40808",
      "tree": "eef6e19205a22817ee659cb2dc7b9ae39465c69d",
      "parents": [
        "e8c9c502690efd24b7055bf608e7a3c34216848b"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Apr 30 15:09:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 30 16:40:40 2007 -0700"
      },
      "message": "power management: force pm_ops.valid callback to be assigned\n\nThis patch changes the docs and behaviour from \"all states valid\" to \"no\nstates valid\" if no .valid callback is assigned.  Users of pm_ops that only\nneed mem sleep can assign pm_valid_only_mem without any overhead, others\nwill require more elaborate callbacks.\n\nNow that all users of pm_ops have a .valid callback this is a safe thing to\ndo and prevents things from getting messy again as they were before.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nLooks-okay-to: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: \u003clinux-pm@lists.linux-foundation.org\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8c9c502690efd24b7055bf608e7a3c34216848b",
      "tree": "1583f34ec9cac07ddfdcb24de66e49718b107436",
      "parents": [
        "11d77d0c01b80e44c7aceb21928508dafce774f9"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Apr 30 15:09:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 30 16:40:40 2007 -0700"
      },
      "message": "power management: implement pm_ops.valid for everybody\n\nAlmost all users of pm_ops only support mem sleep, don\u0027t check in .valid and\ndon\u0027t reject any others in .prepare so users can be confused if they check\n/sys/power/state, especially when new states are added (these would then\nresult in s-t-r although they\u0027re supposed to be something different).\n\nThis patch implements a generic pm_valid_only_mem function that is then\nexported for users and puts it to use in almost all existing pm_ops.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: linux-pm@lists.linux-foundation.org\nCc: Len Brown \u003clenb@kernel.org\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11d77d0c01b80e44c7aceb21928508dafce774f9",
      "tree": "4952f15df4ea2fcdba824aec5689ee9c0c7ceb90",
      "parents": [
        "fe0c935a6cbf25d72a27c7a345df8a2151de0b74"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Apr 30 15:09:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 30 16:40:40 2007 -0700"
      },
      "message": "power management: remove firmware disk mode\n\nThis patch removes the firmware disk suspend mode which is the wrong approach,\nit is supposed to be used for implementing firmware-based disk suspend but\ncannot actually be used for that.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \u003clinux-pm@lists.linux-foundation.org\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe0c935a6cbf25d72a27c7a345df8a2151de0b74",
      "tree": "841a847412694ee586b0ca7e1e2ce7c45700d9b1",
      "parents": [
        "1173a729fc3ce2fa0d698bd39be8ff7bf6c70bf1"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Apr 30 15:09:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Apr 30 16:40:40 2007 -0700"
      },
      "message": "rework pm_ops pm_disk_mode, kill misuse\n\nThis patch series cleans up some misconceptions about pm_ops.  Some users of\nthe pm_ops structure attempt to use it to stop the user from entering suspend\nto disk, this, however, is not possible since the user can always use\n\"shutdown\" in /sys/power/disk and then the pm_ops are never invoked.  Also,\nplatforms that don\u0027t support suspend to disk simply should not allow\nconfiguring SOFTWARE_SUSPEND (read the help text on it, it only selects\nsuspend to disk and nothing else, all the other stuff depends on PM).\n\nThe pm_ops structure is actually intended to provide a way to enter\nplatform-defined sleep states (currently supported states are \"standby\" and\n\"mem\" (suspend to ram)) and additionally (if SOFTWARE_SUSPEND is configured)\nallows a platform to support a platform specific way to enter low-power mode\nonce everything has been saved to disk.  This is currently only used by ACPI\n(S4).\n\nThis patch:\n\nThe pm_ops.pm_disk_mode is used in totally bogus ways since nobody really\nseems to understand what it actually does.\n\nThis patch clarifies the pm_disk_mode description.\n\nIt also removes all the arm and sh users that think they can veto suspend to\ndisk via pm_ops; not so since the user can always do echo shutdown \u003e\n/sys/power/disk, they need to find a better way involving Kconfig or such.\n\nACPI is the only user left with a non-zero pm_disk_mode.\n\nThe patch also sets the default mode to shutdown again, but when a new pm_ops\nis registered its pm_disk_mode is selected as default, that way the default\nstays for ACPI where it is apparently required.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: \u003clinux-pm@lists.linux-foundation.org\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nAcked-by: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a53c46dc8253cc613ad66a2ca7aad6de8b7e61b9",
      "tree": "5b041cbe147597efb337525ad8260128cc8bc2b0",
      "parents": [
        "075c1771526c85849ed22298d048bc07e400aee5"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Apr 26 11:43:58 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:33 2007 -0700"
      },
      "message": "s2ram: add arch irq disable/enable hooks\n\nAfter some more discussion this patch replaces it:\n\nFrom: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSubject: suspend: add arch irq disable/enable hooks\n\nFor powermac, we need to do some things between suspending devices and\ndevice_power_off, for example setting the decrementer. This patch\nallows architectures to define arch_s2ram_{en,dis}able_irqs in their\nasm/suspend.h to have control over this step.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\n"
    },
    {
      "commit": "075c1771526c85849ed22298d048bc07e400aee5",
      "tree": "a1579e93b450b0e870a7a65698f9a07bddbfd899",
      "parents": [
        "057f6c019fff9ee290641d50647359bb8898918e"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Thu Apr 26 00:12:06 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:33 2007 -0700"
      },
      "message": "define platform wakeup hook, use in pci_enable_wake()\n\nThis defines a platform hook to enable/disable a device as a wakeup event\nsource.  It\u0027s initially for use with ACPI, but more generally it could be used\nwhenever enable_irq_wake()/disable_irq_wake() don\u0027t suffice.\n\nThe hook is called -- if available -- inside pci_enable_wake(); and the\nsemantics of that call are enhanced so that support for PCI PME# is no longer\nneeded.  It can now work for devices with \"legacy PCI PM\", when platform\nsupport allows it.  (That support would use some board-specific signal for for\nthe same purpose as PME#.)\n\n[akpm@linux-foundation.org: Make it compile with CONFIG_PM\u003dn]\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "2a9df4945106d62ed9249a44d666fab93c685f7a",
      "tree": "3cdc8716743d9d01d172856ecff64ace2b07aab0",
      "parents": [
        "9c372d06ce9ddf65e1393f9ea22a6d6bd5f96b42"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Feb 16 01:38:30 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Feb 23 14:52:09 2007 -0800"
      },
      "message": "power management: fix struct layout and docs\n\nBecause the pm ops in powermac are obviously not using them as intended, I\nadded documentation for it in kernel-doc format.\n\nReordering the fields in struct pm_ops not only makes the output of kernel-doc\nmake more sense but also removes a hole from the structure on 64-bit\nplatforms.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Macheck \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b918f6e62cd46774f9fc0a3fbba6bd10ad85ee14",
      "tree": "d73dc0e8823c8445d84701cc3d527e0e34494a32",
      "parents": [
        "90d53909443b3986569b38ef145f09ea2359af75"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Nov 02 22:07:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 03 12:27:58 2006 -0800"
      },
      "message": "[PATCH] swsusp: debugging\n\nAdd a swsusp debugging mode.  This does everything that\u0027s needed for a suspend\nexcept for actually suspending.  So we can look in the log messages and work\nout a) what code is being slow and b) which drivers are misbehaving.\n\n(1)\n# echo testproc \u003e /sys/power/disk\n# echo disk \u003e /sys/power/state\n\nThis should turn off the non-boot CPU, freeze all processes, wait for 5\nseconds and then thaw the processes and the CPU.\n\n(2)\n# echo test \u003e /sys/power/disk\n# echo disk \u003e /sys/power/state\n\nThis should turn off the non-boot CPU, freeze all processes, shrink\nmemory, suspend all devices, wait for 5 seconds, resume the devices etc.\n\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Stefan Seyfried \u003cseife@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "82bb67f2c1f9ef438c56ac24e7dca027fe7289b5",
      "tree": "e0531466b19295129692da81bdff3538ab3621b3",
      "parents": [
        "8b4b8a24e4e49dc9fe36d4d079f6d2c23f942b03"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Mon Aug 14 23:11:04 2006 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Sep 25 21:08:37 2006 -0700"
      },
      "message": "PM: define PM_EVENT_PRETHAW\n\nThis adds a new pm_message_t event type to use when preparing to restore a\nswsusp snapshot.  Devices that have been initialized by Linux after resume\n(rather than left in power-up-reset state) may need to be reset; this new\nevent type give drivers the chance to do that.\n\nThe drivers that will care about this are those which understand more hardware\nstates than just \"on\" and \"reset\", relying on hardware state during resume()\nmethods to be either the state left by the preceding suspend(), or a\npower-lost reset.  The best current example of this class of drivers are USB\nhost controller drivers, which currently do not work through swsusp when\nthey\u0027re statically linked.\n\nWhen the swsusp freeze/thaw mechanism kicks in, a troublesome third state\ncould exist: one state set up by a different kernel instance, before a\nsnapshot image is resumed.  This mechanism lets drivers prevent that state.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    }
  ],
  "next": "7c8265f51073bc8632a99de78d5fd19117ed78b7"
}
