)]}'
{
  "log": [
    {
      "commit": "152e1d592071c8b312bb898bc1118b64e4aea535",
      "tree": "4e26f4a54914543c42b08b5e553ed2d671ba3fe0",
      "parents": [
        "d56557af19867edb8c0e96f8e26399698a08857f"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Sep 03 01:24:07 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Sep 09 00:49:43 2010 +0200"
      },
      "message": "PM: Prevent waiting forever on asynchronous resume after failing suspend\n\nDuring suspend, the power.completion is expected to be set when a\ndevice has not yet started suspending.  Set it on init to fix a\ncorner case where a device is resumed when its parent has never\nsuspended.\n\nConsider three drivers, A, B, and C.  The parent of A is C, and C\nhas async_suspend set.  On boot, C-\u003epower.completion is initialized\nto 0.\n\nDuring the first suspend:\nsuspend_devices_and_enter(...)\n dpm_resume(...)\n  device_suspend(A)\n  device_suspend(B) returns error, aborts suspend\n dpm_resume_end(...)\n   dpm_resume(...)\n    device_resume(A)\n     dpm_wait(A-\u003eparent \u003d\u003d C)\n      wait_for_completion(C-\u003epower.completion)\n\nThe wait_for_completion will never complete, because\ncomplete_all(C-\u003epower.completion) will only be called from\ndevice_suspend(C) or device_resume(C), neither of which is called\nif suspend is aborted before C.\n\nAfter a successful suspend-\u003eresume cycle, where B doesn\u0027t abort\nsuspend, C-\u003epower.completion is left in the completed state by the\ncall to device_resume(C), and the same call path will work if B\naborts suspend.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\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": "0fcb4eef8294492c8f1de8236b1ed81f09e42922",
      "tree": "23c96ecfc5a85c1870d85c5db9421b6c09763fa8",
      "parents": [
        "4eb241e5691363c391aac8a5051d0d013188ec84"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Jul 08 00:05:37 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:36 2010 +0200"
      },
      "message": "PM / Runtime: Make runtime_status attribute not debug-only (v. 2)\n\nThis patch (as1404b) makes the runtime_status sysfs attribute available\neven in the absence of CONFIG_PM_ADVANCED_DEBUG, and it changes the\nroutine to display \"unsupported\" when runtime PM is disabled for a\ndevice.  Although not strictly 100% accurate, this will almost always\nbe correct.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4eb241e5691363c391aac8a5051d0d013188ec84",
      "tree": "4692a93a29f4aa556a2a54173e5f6d7f4bdb7ae6",
      "parents": [
        "ce4410116c5debfb0e049f5db4b5cd6211e05b80"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 07 23:43:51 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 19 02:00:35 2010 +0200"
      },
      "message": "PM: Do not use dynamically allocated objects in pm_wakeup_event()\n\nOriginally, pm_wakeup_event() uses struct delayed_work objects,\nallocated with GFP_ATOMIC, to schedule the execution of pm_relax()\nin future.  However, as noted by Alan Stern, it is not necessary to\ndo that, because all pm_wakeup_event() calls can use one static timer\nthat will always be set to expire at the latest time passed to\npm_wakeup_event().\n\nThe modifications are based on the example code posted by Alan.\n\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": "c92445fadb9179d811b5cb044947ad4712403541",
      "tree": "7e314fd096afdd220169068a281a1e8e0a8b1e7d",
      "parents": [
        "d6f9cda1fd241bc7a1d896da94950fd972eca9b7"
      ],
      "author": {
        "name": "Dominik Brodowski",
        "email": "linux@dominikbrodowski.net",
        "time": "Fri Apr 23 20:32:23 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon May 10 23:08:17 2010 +0200"
      },
      "message": "PM / Runtime: Add sysfs debug files\n\nAdd a few sysfs files relating to runtime power management for\nadvanced debug purposes:\n\nruntime_enabled: is runtime PM enabled for this device? States\n\tare \"enabled\", \"disabled\", \"forbidden\" or a combination\n\tof the latter two.\n\nruntime_status:\twhat state is the device in currently? E.g., it\n\treports \"suspended\" for runtime-suspended devices, and\n        \"active\" for active devices. NOTE: if runtime_enabled\n\treturns \"disabled\", the value of this file may not\n\treflect its physical state.\n\nruntime_usage: the runtime PM usage count of a device\n\nruntime_active_kids: the runtime PM children usage count of a device, or\n\t0 if the ignore_children flag is set.\n\nAlso, CONFIG_PM_SLEEP_ADVANCED_DEBUG is not defined in any Kconfig\nfile, so replace it with CONFIG_PM_ADVANCED_DEBUG.\n\nSigned-off-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "240c7337a4cd3d91b196c5ef97ad461b3a22fa09",
      "tree": "252a5938fa8c9f75925653876c32bef1a2ed899b",
      "parents": [
        "228c54ef7a028d5a4b6606eb0c8035874d9b6788"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Tue Mar 23 00:50:07 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon May 10 23:08:16 2010 +0200"
      },
      "message": "PM: Allow runtime_suspend methods to call pm_schedule_suspend()\n\nThis patch (as1361) changes the runtime PM interface slightly; it\nallows suspend requests to be scheduled while the runtime_suspend\nmethod is running.  If the method succeeds then the scheduled request\nis cancelled, whereas if the method fails then an idle notification is\nsent only if no request was scheduled.\n\nBeing able to schedule suspend requests from within a runtime_suspend\nmethod is useful for drivers that need to test for idleness and\nsuspend the device all while holding a single spinlock, or for drivers\nthat want to check for idleness by polling.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e7176a37d436a214f6a7727ea7986c654cbee8f0",
      "tree": "6efc0a74883b326ff7575a36793120027018195c",
      "parents": [
        "7d7ba8d31eb293016bc91a5c8fc36b21fd917265"
      ],
      "author": {
        "name": "Dominik Brodowski",
        "email": "linux@dominikbrodowski.net",
        "time": "Mon Mar 15 21:43:11 2010 +0100"
      },
      "committer": {
        "name": "Dominik Brodowski",
        "email": "linux@dominikbrodowski.net",
        "time": "Wed Mar 24 11:00:02 2010 +0100"
      },
      "message": "power: support _noirq actions on device types and classes\n\nThe new-style dev_pm_ops provide callbacks for both IRQs enabled\nand disabled. However, the _noirq variants were only called for\nbuses registered with a device, not for classes and types.\n\nIn order to properly use dev_pm_ops in class pcmcia_socket_class,\nsupport _noirq actions also on classes and types.\n\nSigned-off-by: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8e9394ce2412254ec69fd2a4f3e44a66eade2297",
      "tree": "355f25148b4ce3f5cfebeaf0939d71cb6beaf88b",
      "parents": [
        "62e877b893e6350c900d381f353aa62ed48dcc97"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Feb 17 10:57:05 2010 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sun Mar 07 17:04:52 2010 -0800"
      },
      "message": "Driver core: create lock/unlock functions for struct device\n\nIn the future, we are going to be changing the lock type for struct\ndevice (once we get the lockdep infrastructure properly worked out)  To\nmake that changeover easier, and to possibly burry the lock in a\ndifferent part of struct device, let\u0027s create some functions to lock and\nunlock a device so that no out-of-core code needs to be changed in the\nfuture.\n\nThis patch creates the device_lock/unlock/trylock() functions, and\nconverts all in-tree users to them.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: Dave Young \u003chidave.darkstar@gmail.com\u003e\nCc: Ming Lei \u003ctom.leiming@gmail.com\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Magnus Damm \u003cdamm@igel.co.jp\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nCc: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Alex Chiang \u003cachiang@hp.com\u003e\nCc: Kenji Kaneshige \u003ckaneshige.kenji@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andrew Patterson \u003candrew.patterson@hp.com\u003e\nCc: Yu Zhao \u003cyu.zhao@intel.com\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nCc: Samuel Ortiz \u003csameo@linux.intel.com\u003e\nCc: Wolfram Sang \u003cw.sang@pengutronix.de\u003e\nCc: CHENG Renquan \u003crqcheng@smu.edu.sg\u003e\nCc: Oliver Neukum \u003coliver@neukum.org\u003e\nCc: Frans Pop \u003celendil@planet.nl\u003e\nCc: David Vrabel \u003cdavid.vrabel@csr.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Sarah Sharp \u003csarah.a.sharp@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n\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": "97df8c12995c5bac73e3bfeea4c5be155c1f4401",
      "tree": "74de2a645bbdfc28048892f4964172a3e2cde781",
      "parents": [
        "5a2eb8585f3b38e01e30aacaa8b985a1520a993d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 23 22:25:31 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 26 20:39:11 2010 +0100"
      },
      "message": "PM: Start asynchronous resume threads upfront\n\nIt has been shown by testing that total device resume time can be\nreduced significantly (by as much as 50% or more) if the async\nthreads executing some devices\u0027 resume routines are all started\nbefore the main resume thread starts to handle the \"synchronous\"\ndevices.\n\nThis is a consequence of the fact that the slowest devices tend to be\nlocated at the end of dpm_list, so their resume routines are started\nvery late.  Consequently, they have to wait for all the preceding\n\"synchronous\" devices before their resume routines can be started\nby the main resume thread, even if they are \"asynchronous\".  By\nstarting their async threads upfront we effectively move those\ndevices towards the beginning of dpm_list, without breaking their\nordering with respect to their parents and children.  As a result,\ntheir resume routines are started much earlier and we are able to\nsave much more device resume time this way.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5a2eb8585f3b38e01e30aacaa8b985a1520a993d",
      "tree": "471b33cc48cf48ed491e8b3f2934bfb3fa9e81e1",
      "parents": [
        "0e06b4a891c6a108412fe24b4500f499da2cf8a1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 23 22:25:23 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 26 20:39:10 2010 +0100"
      },
      "message": "PM: Add facility for advanced testing of async suspend/resume\n\nAdd configuration switch CONFIG_PM_ADVANCED_DEBUG for compiling in\nextra PM debugging/testing code allowing one to access some\nPM-related attributes of devices from the user space via sysfs.\n\nIf CONFIG_PM_ADVANCED_DEBUG is set, add sysfs attribute power/async\nfor every device allowing the user space to access the device\u0027s\npower.async_suspend flag and modify it, if desired.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0e06b4a891c6a108412fe24b4500f499da2cf8a1",
      "tree": "ed254631bdc24e676b95b633d310b284a2df9c45",
      "parents": [
        "5af84b82701a96be4b033aaa51d86c72e2ded061"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 23 22:25:15 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 26 20:39:10 2010 +0100"
      },
      "message": "PM: Add a switch for disabling/enabling asynchronous suspend/resume\n\nAdd sysfs attribute /sys/power/pm_async allowing the user space to\ndisable/enable asynchronous suspend/resume of devices.\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": "8cc6b39ff36b4bbce2d7471da088df122b0e9033",
      "tree": "e4abc6059ecf560f8fb363226a35fb981b0f0313",
      "parents": [
        "971cb7fba0c84dd74c39020f4596b08398f58199"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 23 22:03:29 2010 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 26 20:39:09 2010 +0100"
      },
      "message": "PM: Add parent information to timing messages\n\nAdd parent information to the messages printed by the suspend/resume\ncore when initcall_debug is set.\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": "0a88422312f5bf7b9e3450e27d8ddc385af38789",
      "tree": "6980d6971b0fbd9a0444e89beb1b2e61e4ec243c",
      "parents": [
        "1306d603fcf1f6682f8575d1ff23631a24184b21"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Jan 08 14:42:57 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 11 09:34:06 2010 -0800"
      },
      "message": "power: fix kernel-doc notation\n\nWarning(drivers/base/power/main.c:453): No description found for parameter \u0027dev\u0027\nWarning(drivers/base/power/main.c:453): No description found for parameter \u0027cb\u0027\nWarning(drivers/base/power/main.c:719): No description found for parameter \u0027dev\u0027\nWarning(drivers/base/power/main.c:719): No description found for parameter \u0027state\u0027\nWarning(drivers/base/power/main.c:719): No description found for parameter \u0027cb\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6ab7aa9f432f722808c6fea5a8b7f5f229de031",
      "tree": "94cc8cddba15a02c4dd3989fbcebb0be1542d586",
      "parents": [
        "aa0baaef97c89de2ef216fcc017215ee01662a10"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 22 20:43:17 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 22 20:43:17 2009 +0100"
      },
      "message": "PM / Runtime: Use device type and device class callbacks\n\nThe power management of some devices is handled through device types\nand device classes rather than through bus types.  Since these\ndevices may also benefit from using the run-time power management\ncore, extend it so that the device type and device class run-time PM\ncallbacks can be taken into consideration by it if the bus type\ncallback is not defined.\n\nUpdate the run-time PM core documentation to reflect this change.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "aa0baaef97c89de2ef216fcc017215ee01662a10",
      "tree": "522e5cbe200ba5ddcaf905a826b2a58159a441eb",
      "parents": [
        "ecf762b2581e12ac761d12a6e4e297c2224aa899"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Dec 21 02:46:11 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Dec 21 02:46:11 2009 +0100"
      },
      "message": "PM: Use pm_runtime_put_sync in system resume\n\nThis patch (as1317) fixes a bug in the PM core.  When a device is\nresumed following a system sleep, the core decrements the device\u0027s\nruntime PM usage counter but doesn\u0027t issue an idle notification if the\ncounter reaches 0.  This could prevent an otherwise unused device from\nbeing runtime-suspended again after the system sleep.\n\nThe fix is to call pm_runtime_put_sync() instead of\npm_runtime_put_noidle().\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "ecf762b2581e12ac761d12a6e4e297c2224aa899",
      "tree": "272bcdc3576d64d6b0f3131c245770a7137a77e7",
      "parents": [
        "875ab0b74e85d6801a49392447d26e0b28688d86"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 18 01:57:47 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 18 01:57:47 2009 +0100"
      },
      "message": "PM: Measure device suspend and resume times\n\nMeasure and print the time of suspending and resuming all devices.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "875ab0b74e85d6801a49392447d26e0b28688d86",
      "tree": "03762971d57d0657a12a99f1a73473878c2c7ada",
      "parents": [
        "b8a7f3cd7e8212e5c572178ff3b5a514861036a5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 18 01:57:31 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 18 01:57:31 2009 +0100"
      },
      "message": "PM: Make the initcall_debug style timing for suspend/resume complete\n\nCommit f2511774863487e61b56a97da07ebf8dd61d7836\n(PM: Add initcall_debug style timing for suspend/resume) introduced\nbasic timing instrumentation, needed for a scritps/bootgraph.pl\nequivalent or humans, but it missed the fact that bus types and\ndevice classes which haven\u0027t been switched to using struct dev_pm_ops\nobjects yet need special handling.  As a result, the suspend/resume\ntiming information is only available for devices whose bus types or\ndevice classes use struct dev_pm_ops objects, so the majority of\ndevices is not covered.\n\nFix this by adding basic suspend/resume timing instrumentation for\ndevices whose bus types and device classes still don\u0027t use struct\ndev_pm_ops objects for power management.  To reduce code duplication\nmove the timing code to helper functions.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d8bed5a4f343d1826153ecf8e7932126c757a21d",
      "tree": "6fab621d5005ed847b24962eb2ca707225ac870b",
      "parents": [
        "33c3374031facf7599c30a1548dfa4c83da87da3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 13 20:48:54 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 15 20:42:06 2009 +0100"
      },
      "message": "PM: rwsem.h need not be included into main.c\n\nIt is not necessary to include \u003clinux/rwsem.h\u003e into\ndrivers/base/power/main.c, so don\u0027t do that.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "33c3374031facf7599c30a1548dfa4c83da87da3",
      "tree": "a13c07cf40f4a6d26236c4ec97420f4854f91fca",
      "parents": [
        "f2511774863487e61b56a97da07ebf8dd61d7836"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 13 20:31:12 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 15 20:42:06 2009 +0100"
      },
      "message": "PM: Remove unnecessary goto from device_resume_noirq()\n\nIn device_resume_noirq() there is the \u0027End\u0027 label and the associated\ngoto statement that aren\u0027t strictly necessary, so rework the code to\nget rid of them.  Also modify device_suspend_noirq() so that it looks\ncompletely analogous to device_resume_noirq().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "f2511774863487e61b56a97da07ebf8dd61d7836",
      "tree": "892a238299f4e69e120b037310623e4bae5b690f",
      "parents": [
        "1d531c14d2ed4b24472a4d773f00ed6d1cd34ee7"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sun Dec 13 20:29:01 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 15 20:42:06 2009 +0100"
      },
      "message": "PM: Add initcall_debug style timing for suspend/resume\n\nIn order to diagnose overall suspend/resume times, we need\nbasic instrumentation to break down the total time into per\ndevice timing, similar to initcall_debug.\n\nThis patch adds the basic timing instrumentation, needed\nfor a scritps/bootgraph.pl equivalent or humans.\nThe bootgraph.pl program is still a work in progress, but\nis far enough along to know that this patch is sufficient.\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": "1d531c14d2ed4b24472a4d773f00ed6d1cd34ee7",
      "tree": "a61fd40d1104c9a02e15baa4496c11e148f20804",
      "parents": [
        "8bea8672edfca7ec5f661cafb218f1205863b343"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sun Dec 13 20:28:30 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 15 20:42:06 2009 +0100"
      },
      "message": "PM: allow for usage_count \u003e 0 in pm_runtime_get()\n\nThis patch (as1308c) fixes __pm_runtime_get().  Currently the routine\nwill resume a device if the prior usage count was 0.  But this isn\u0027t\nright; thanks to pm_runtime_get_noresume() the usage count can be\npositive even while the device is suspended.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "965c4ac0613b071d6f035334c5d9d942013df4f9",
      "tree": "6108441b938fe0c309a09e96784edcc91d9b8b3f",
      "parents": [
        "e1b1903eee71c5fa6063bbf713cfc947e76c4e04"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 03 21:04:41 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 06 16:17:57 2009 +0100"
      },
      "message": "PM / Runtime: Remove unnecessary braces in __pm_runtime_set_status()\n\nSome braces in __pm_runtime_set_status() are not necessary, so\nremove them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0ddf0ed1d47e2d4170fa2989273886a1df66a862",
      "tree": "179d0f0de4ef726209c068ea9616f5ccd6a73173",
      "parents": [
        "63c94801701abfea21570d3302687ec027ed33e8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 03 21:03:57 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 06 16:17:56 2009 +0100"
      },
      "message": "PM / Runtime: Ensure timer_expires is nonzero in pm_schedule_suspend()\n\nThe runtime PM core code assumes that dev-\u003epower.timer_expires is\nnonzero when the timer is scheduled, but it may become zero\nincidentally in pm_schedule_suspend().  Prevent this from happening\nby bumping dev-\u003epower.timer_expires up to 1 if it\u0027s 0 before calling\nmod_timer().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\n"
    },
    {
      "commit": "63c94801701abfea21570d3302687ec027ed33e8",
      "tree": "4806596c35a8c92640e26fe66394b775dca2208c",
      "parents": [
        "7b199ca2025f4756daceec8802f07da636c524c9"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Dec 03 20:22:34 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 06 16:17:56 2009 +0100"
      },
      "message": "PM / Runtime: Use deferred_resume flag in pm_request_resume\n\nThis patch (as1307) adds a small optimization to\n__pm_request_resume().  If the device is currently being suspended,\nthere\u0027s no need to queue a work routine to resume it.  Setting the\ndeferred_resume flag will suffice.  (There\u0027s also a minor improvement\nto the function\u0027s code layout: An unnecessary \"else\" is removed.)\n\nAlso, the patch clarifies the usage of the deferred_resume flag.  It\nis meaningful only while a suspend is in progress, so it should be\ncleared just before a suspend starts, not just after one ends.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "bab636b921017f0db6e0c2979438f50b898a9808",
      "tree": "c220981cad0f886c0a7e34f54735e7bf384ff462",
      "parents": [
        "66d0ae4d6ffa45b8e6d8bdbf85f8f1b285c8152d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 03 20:21:21 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 06 16:17:56 2009 +0100"
      },
      "message": "PM / Runtime: Fix lockdep warning in __pm_runtime_set_status()\n\nLockdep complains about taking the parent lock in\n__pm_runtime_set_status(), so mark it as nested.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "862f89b3d4c6bf3caab7fc69661fc6e725edd00a",
      "tree": "65d29f636f8c0f488524220b5accea674b5101cf",
      "parents": [
        "a8a8a669ea13d792296737505adc43ccacf3a648"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Nov 25 01:06:37 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Nov 29 16:51:27 2009 +0100"
      },
      "message": "PM: fix irq enable/disable in runtime PM code\n\nThis patch (as1305) fixes a bug in the irq-enable settings and removes\nsome related overhead in the runtime PM code.\n\n\tIn __pm_runtime_resume(), within the scope of the original\n\tspin_lock_irq(), we know that irqs are disabled.  There\u0027s no\n\treason to go through a pair of enable/disable cycles when\n\tacquiring and releasing the parent\u0027s lock.\n\n\tIn __pm_runtime_set_status(), irqs are already disabled when\n\tthe parent\u0027s lock is acquired, and they must remain disabled\n\twhen it is released.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "2ddac2a6a8f13e95664fe7ad1b728ac84fb1bd07",
      "tree": "c6634784c63a0c11b50c60fba24f288b684fe159",
      "parents": [
        "e528e876897217465d5cd7cb28130d8489596e34"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Wed Oct 28 22:56:10 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Nov 03 11:18:18 2009 +0100"
      },
      "message": "PM: Remove some debug messages producing too much noise\n\npm_runtime_idle() is somewhat noisy. Remove debug prints.\n\nSigned-off-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e528e876897217465d5cd7cb28130d8489596e34",
      "tree": "23426f3bfa55e9cf046087e28bed83d9ce678027",
      "parents": [
        "bf9fd67a0328d56eff6022f80d4eb88ba6614119"
      ],
      "author": {
        "name": "Romit Dasgupta",
        "email": "romit@ti.com",
        "time": "Wed Oct 28 22:56:02 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Nov 03 11:03:33 2009 +0100"
      },
      "message": "PM: Fix warning on suspend errors\n\nFixes the point where we need to complete the power transition when\ndevice suspend fails, so that we don\u0027t print warnings about devices\nadded to the device hierarchy after a failing suspend.\n\n[rjw: Modified changelog.]\n\nSigned-off-by: Romit Dasgupta \u003cromit@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "3eb132c986f04f64b9c360abd67a1e0d18d6d5b4",
      "tree": "d51e8e2d3d9de0ad365f1f0c4cdcc02aa72b1aaa",
      "parents": [
        "20d652d7d1c2f202215ecf0306ccecc3569df9ba"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "dfeng@redhat.com",
        "time": "Thu Aug 20 20:28:33 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 14 20:27:00 2009 +0200"
      },
      "message": "PM: Reset transition_started at dpm_resume_noirq\n\ntransition_started should be set once the preparation of devices for\na PM has started, reset before starting to resume devices. When\nresuming devices, kernel calls dpm_resume_noirq then\ndpm_resume_end(dpm_resume).  Thus we should reset transition_started\nat dpm_resume_noirq.\n\nThis patch fixes ACPI warning when resuming from suspend/hibernate:\n\nACPI: \\_SB_.PCI0.IDE1.PRI1.MAS1 - docking\n------------[ cut here ]------------\nWARNING: at drivers/base/power/main.c:87 device_pm_add+0x8b/0xcc()\nHardware name: OptiPlex 760\nDevice: acpi\nParentless device registered during a PM transaction\n\n[rjw: Fixed up the changelog.]\n\nSigned-off-by: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "20d652d7d1c2f202215ecf0306ccecc3569df9ba",
      "tree": "f08619cec4964478d764477ca45931f7d49401a3",
      "parents": [
        "9d62ec6ca71d71c8a0d2cb1004f476d33f668955"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 20 20:25:52 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 14 20:27:00 2009 +0200"
      },
      "message": "PM: Update kerneldoc comments in drivers/base/power/main.c\n\nThe kerneldoc comments in drivers/base/power/main.c are generally\noutdated and some of them don\u0027t describe the functions very\naccurately.  Update them and standardize the format to use spaces\ninstead of tabs.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\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": "d9ab77161d811ffb0bccf396f7155cc905c1b9e1",
      "tree": "6d055acd69351a56b7014388e24d33199139d79c",
      "parents": [
        "511647ff58fd0f1c1f415d2c757d841650edac91"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Wed Jul 22 00:37:25 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 24 00:17:28 2009 +0200"
      },
      "message": "Driver Core: Make PM operations a const pointer\n\nThey are not supposed to be modified by drivers, so make them const.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "886a7a3371da8ee46a13f8e598a536bd8765b837",
      "tree": "5b6b9fb297cc3f59cd1777548e2fa82d4e1bb5f9",
      "parents": [
        "00024be9689963c55cf2ab10ce3fb4502016c09a"
      ],
      "author": {
        "name": "Sebastian Ott",
        "email": "sebott@linux.vnet.ibm.com",
        "time": "Wed Jul 08 13:26:05 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 08 13:26:05 2009 +0200"
      },
      "message": "PM: Clear -EAGAIN in dpm_prepare\n\nWhen the last device in the dpm list is unregistered directly after its\nprepare() callback returned with -EAGAIN, the return code is passed to\nthe calling function, resulting in a suspend failure. Prevent this by\nclearing the return code after -EAGAIN.\n\nSigned-off-by: Sebastian Ott \u003csebott@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "00725787511e20dbd1fdc1fb233606120ae5c8cf",
      "tree": "82fa3c48aca074a993a122751a2333000e1668a3",
      "parents": [
        "fe419535d82724314bbf1244a0e740e4ea1bd3ae"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Thu Jun 04 22:13:25 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 12 21:32:32 2009 +0200"
      },
      "message": "PM: Remove device_type suspend()/resume()\n\nThis patch removes the legacy callbacks -\u003esuspend() and\n-\u003eresume() from struct device_type. These callbacks seem\nunused, and new code should instead make use of struct\ndev_pm_ops.\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e240b58c79144708530138e05f17c6d0d8d744a8",
      "tree": "c42553ae8ffb034a767cebb0b4876db3528a2e11",
      "parents": [
        "d161630297a20802d01c55847bfcba85d2118a9f"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@igel.co.jp",
        "time": "Sun May 24 22:05:54 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jun 12 21:32:31 2009 +0200"
      },
      "message": "PM: Remove bus_type suspend_late()/resume_early() V2\n\nRemove the -\u003esuspend_late() and -\u003eresume_early() callbacks\nfrom struct bus_type V2. These callbacks are legacy stuff\nat this point and since there seem to be no in-tree users\nwe may as well remove them. New users should use dev_pm_ops.\n\nSigned-off-by: Magnus Damm \u003cdamm@igel.co.jp\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\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": "32bdfac5462d777f35b00838893c4f87baf23efe",
      "tree": "92e4ef3af7b68007e8004eaca978865a29e543b0",
      "parents": [
        "59a3759d0fe8d969888c741bb33f4946e4d3750d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 24 21:15:07 2009 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun May 24 21:15:07 2009 +0200"
      },
      "message": "PM: Do not hold dpm_list_mtx while disabling/enabling nonboot CPUs\n\nWe shouldn\u0027t hold dpm_list_mtx while executing\n[disable|enable]_nonboot_cpus(), because theoretically this may lead\nto a deadlock as shown by the following example (provided by Johannes\nBerg):\n\nCPU 3       CPU 2                     CPU 1\n                                      suspend/hibernate\n            something:\n            rtnl_lock()               device_pm_lock()\n                                       -\u003e mutex_lock(\u0026dpm_list_mtx)\n\n            mutex_lock(\u0026dpm_list_mtx)\n\nlinkwatch_work\n -\u003e rtnl_lock()\n                                      disable_nonboot_cpus()\n                                       -\u003e flush CPU 3 workqueue\n\nFortunately, device drivers are supposed to stop any activities that\nmight lead to the registration of new device objects way before\ndisable_nonboot_cpus() is called, so it shouldn\u0027t be necessary to\nhold dpm_list_mtx over the entire late part of device suspend and\nearly part of device resume.\n\nThus, during the late suspend and the early resume of devices acquire\ndpm_list_mtx only when dpm_list is going to be traversed and release\nit right after that.\n\nThis patch is reported to fix the regressions tracked as\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d13245.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nReported-by: Miles Lane \u003cmiles.lane@gmail.com\u003e\nTested-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\n"
    },
    {
      "commit": "2ed8d2b3a81bdbb0418301628ccdb008ac9f40b7",
      "tree": "54ab0cd7aa7db73151533b463bd490b62a29c462",
      "parents": [
        "0a0c5168df270a50e3518e4f12bddb31f8f5f38f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 16 22:34:06 2009 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 30 21:46:54 2009 +0200"
      },
      "message": "PM: Rework handling of interrupts during suspend-resume\n\nUse the functions introduced in by the previous patch,\nsuspend_device_irqs(), resume_device_irqs() and check_wakeup_irqs(),\nto rework the handling of interrupts during suspend (hibernation) and\nresume.  Namely, interrupts will only be disabled on the CPU right\nbefore suspending sysdevs, while device drivers will be prevented\nfrom receiving interrupts, with the help of the new helper function,\nbefore their \"late\" suspend callbacks run (and analogously during\nresume).\n\nIn addition, since the device interrups are now disabled before the\nCPU has turned all interrupts off and the CPU will ACK the interrupts\nsetting the IRQ_PENDING bit for them, check in sysdev_suspend() if\nany wake-up interrupts are pending and abort suspend if that\u0027s the\ncase.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\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": "1e0b2cf933ebf32494eba3f668859ba57f06a951",
      "tree": "b8d9a3b41a452fb922cd3425e67ea8278c128c70",
      "parents": [
        "210272a28465a7a31bcd580d2f9529f924965aa5"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Oct 30 01:36:48 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Jan 06 10:44:31 2009 -0800"
      },
      "message": "driver core: struct device - replace bus_id with dev_name(), dev_set_name()\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\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": "c813b4e16ead3c3df98ac84419d4df2adf33fe01",
      "tree": "2ca4a5b6966d833b6149e3dda7a4e85d1255779c",
      "parents": [
        "c8d8a2321f9c4ee18fbcc399fdc2a77e580a03b9",
        "02683ffdf655b4ae15245376ba6fea6d9e5829a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 12:40:26 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (46 commits)\n  UIO: Fix mapping of logical and virtual memory\n  UIO: add automata sercos3 pci card support\n  UIO: Change driver name of uio_pdrv\n  UIO: Add alignment warnings for uio-mem\n  Driver core: add bus_sort_breadthfirst() function\n  NET: convert the phy_device file to use bus_find_device_by_name\n  kobject: Cleanup kobject_rename and !CONFIG_SYSFS\n  kobject: Fix kobject_rename and !CONFIG_SYSFS\n  sysfs: Make dir and name args to sysfs_notify() const\n  platform: add new device registration helper\n  sysfs: use ilookup5() instead of ilookup5_nowait()\n  PNP: create device attributes via default device attributes\n  Driver core: make bus_find_device_by_name() more robust\n  usb: turn dev_warn+WARN_ON combos into dev_WARN\n  debug: use dev_WARN() rather than WARN_ON() in device_pm_add()\n  debug: Introduce a dev_WARN() function\n  sysfs: fix deadlock\n  device model: Do a quickcheck for driver binding before doing an expensive check\n  Driver core: Fix cleanup in device_create_vargs().\n  Driver core: Clarify device cleanup.\n  ...\n"
    },
    {
      "commit": "c80cfb0406c01bb5da91bfe30f5cb1fd96831138",
      "tree": "9f9d382c30457f8553bcd3e4ae5cc03dc2dc120b",
      "parents": [
        "404d0ae289f7a76ff233e8fbfde8b1e7b6e62ae3"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bjorn.helgaas@hp.com",
        "time": "Wed Oct 15 22:01:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 16 11:21:31 2008 -0700"
      },
      "message": "vsprintf: use new vsprintf symbolic function pointer format\n\nUse the \u0027%pF\u0027 format to get rid of an \"#ifdef DEBUG\" and make some printks\natomic.\n\nThis removes the last in-tree uses of print_fn_descriptor_symbol().  I\nmarked print_fn_descriptor_symbol() deprecated and scheduled it for\nremoval next year to give time for out-of-tree modules to be updated.\n\nparisc\u0027s print_fn_descriptor_symbol() is currently broken there (it needs\nto dereference the function pointer similar to ia64 and power).  This\npatch shouldn\u0027t make anything worse, but it means we need to fix\ndereference_function_descriptor() instead of print_fn_descriptor_symbol()\nto get meaningful initcall_debug output.\n\nSigned-off-by: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nCc: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.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": "728f08934b087b96aacb00467f5551e0a5593fca",
      "tree": "94342640e5bca8b8c350fecbd05ff4e9bef0f8d0",
      "parents": [
        "e61396627f91abb855ddd8925be9172fb5871944"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Sep 20 19:09:00 2008 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Oct 16 09:24:50 2008 -0700"
      },
      "message": "debug: use dev_WARN() rather than WARN_ON() in device_pm_add()\n\ndevice_pm_add() has a WARN_ON that is showing relatively high on\nkerneloops.org, but unfortunately the WARN_ON is less than useful\nin that it doesn\u0027t print any information about what device is causing\nthe issue.\n\nThis patch fixes this by turning the WARN_ON() into the newly\nintroduces dev_WARN() which will print information about the\ndevice in question.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f5a6d958b5d0a10e7e7a9dee1862fb31d08c6d26",
      "tree": "9d5eb758a374684a53f1b55a560d728d3213d2d3",
      "parents": [
        "c906a48adc74fc455378137ac5124b13e7030a15"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Aug 09 01:05:13 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 21 10:15:37 2008 -0700"
      },
      "message": "PM: Remove WARN_ON from device_pm_add\n\nPM: Remove WARN_ON from device_pm_add\n\nFix message in device_pm_add() saying that the device will not be\nadded to dpm_list, although in fact the device is going to be added\nto the list regardless of the ordering violation.\n\nRemove the WARN_ON(true) triggered in that situation, because it is\nhit by USB very often and spams the users\u0027 logs.\n\nThis patch fixes bug #11263\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "3b98aeaf3a75f544dc945694f4fcf6e1c4bab89d",
      "tree": "bebaa8c3353ba9e7d5142dc73c767dc030bca7e3",
      "parents": [
        "7c2250352e11bf956c4cfa20b01ae6ba72882788"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Aug 07 13:06:12 2008 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Aug 21 10:15:36 2008 -0700"
      },
      "message": "PM: don\u0027t skip device PM init when CONFIG_PM_SLEEP isn\u0027t set and CONFIG_PM is set\n\nThis patch (as1124) fixes a couple of bugs in the PM core.  The new\ndev-\u003epower.status field should be initialized regardless of whether\nCONFIG_PM_SLEEP is enabled, and similarly dpm_sysfs_add() should be\ncalled whenever CONFIG_PM is enabled.\n\nThe patch separates out the call to dpm_sysfs_add() from the call to\ndevice_pm_add().  As a result device_pm_add() can no longer return an\nerror, so its return type is changed to void.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nTested-by: Romit Dasgupta \u003cromit@ti.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "fc3a8828b139c24aade3f9d608775e36c248f8f5",
      "tree": "e995fdb99868b96e6c51c100fe9270a79323fd83",
      "parents": [
        "b98cb4b7fe0e83238501b48489e46b3e0dce9aaf"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri May 02 06:02:41 2008 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jul 21 21:54:53 2008 -0700"
      },
      "message": "driver core: fix a lot of printk usages of bus_id\n\nWe have the dev_printk() variants for this kind of thing, use them\ninstead of directly trying to access the bus_id field of struct device.\n\nThis is done in order to remove bus_id entirely.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "dc7c65db2845a8d17432d89252c4227a9a7cb15f",
      "tree": "79030b0aaaafc04bc4303c21495134e744afc058",
      "parents": [
        "8a0ca91e1db5de5eb5b18cfa919d52ff8be375af",
        "58b6e5538460be358fdf1286d9a2fbcfcc2cfaba"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 16 17:25:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 16 17:25:46 2008 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (72 commits)\n  Revert \"x86/PCI: ACPI based PCI gap calculation\"\n  PCI: remove unnecessary volatile in PCIe hotplug struct controller\n  x86/PCI: ACPI based PCI gap calculation\n  PCI: include linux/pm_wakeup.h for device_set_wakeup_capable\n  PCI PM: Fix pci_prepare_to_sleep\n  x86/PCI: Fix PCI config space for domains \u003e 0\n  Fix acpi_pm_device_sleep_wake() by providing a stub for CONFIG_PM_SLEEP\u003dn\n  PCI: Simplify PCI device PM code\n  PCI PM: Introduce pci_prepare_to_sleep and pci_back_from_sleep\n  PCI ACPI: Rework PCI handling of wake-up\n  ACPI: Introduce new device wakeup flag \u0027prepared\u0027\n  ACPI: Introduce acpi_device_sleep_wake function\n  PCI: rework pci_set_power_state function to call platform first\n  PCI: Introduce platform_pci_power_manageable function\n  ACPI: Introduce acpi_bus_power_manageable function\n  PCI: make pci_name use dev_name\n  PCI: handle pci_name() being const\n  PCI: add stub for pci_set_consistent_dma_mask()\n  PCI: remove unused arch pcibios_update_resource() functions\n  PCI: fix pci_setup_device()\u0027s sprinting into a const buffer\n  ...\n\nFixed up conflicts in various files (arch/x86/kernel/setup_64.c,\narch/x86/pci/irq.c, arch/x86/pci/pci.h, drivers/acpi/sleep/main.c,\ndrivers/pci/pci.c, drivers/pci/pci.h, include/acpi/acpi_bus.h) from x86\nand ACPI updates manually.\n"
    },
    {
      "commit": "eb9d0fe40e313c0a74115ef456a2e43a6c8da72f",
      "tree": "7a90a68b8dc152d49a38469fd6a6a7840954bac2",
      "parents": [
        "0af4b8c4fb31193dc666f4893107a18fef82baab"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jul 07 03:34:48 2008 +0200"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Mon Jul 07 16:26:28 2008 -0700"
      },
      "message": "PCI ACPI: Rework PCI handling of wake-up\n\n* Introduce function acpi_pm_device_sleep_wake() for enabling and\n  disabling the system wake-up capability of devices that are power\n  manageable by ACPI.\n\n* Introduce function acpi_bus_can_wakeup() allowing other (dependent)\n  subsystems to check if ACPI is able to enable the system wake-up\n  capability of given device.\n\n* Introduce callback .sleep_wake() in struct pci_platform_pm_ops and\n  for the ACPI PCI \u0027driver\u0027 make it use acpi_pm_device_sleep_wake().\n\n* Introduce callback .can_wakeup() in struct pci_platform_pm_ops and\n  for the ACPI \u0027driver\u0027 make it use acpi_bus_can_wakeup().\n\n* Move the PME# handlig code out of pci_enable_wake() and split it\n  into two functions, pci_pme_capable() and pci_pme_active(),\n  allowing the caller to check if given device is capable of\n  generating PME# from given power state and to enable/disable the\n  device\u0027s PME# functionality, respectively.\n\n* Modify pci_enable_wake() to use the new ACPI callbacks and the new\n  PME#-related functions.\n\n* Drop the generic .platform_enable_wakeup() callback that is not\n  used any more.\n\n* Introduce device_set_wakeup_capable() that will set the\n  power.can_wakeup flag of given device.\n\n* Rework PCI device PM initialization so that, if given device is\n  capable of generating wake-up events, either natively through the\n  PME# mechanism, or with the help of the platform, its\n  power.can_wakeup flag is set and its power.should_wakeup flag is\n  unset as appropriate.\n\n* Make ACPI set the power.can_wakeup flag for devices found to be\n  wake-up capable by it.\n\n* Make the ACPI wake-up code enable/disable GPEs for devices that\n  have the wakeup.flags.prepared flag set (which means that their\n  wake-up power has been enabled).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\n"
    },
    {
      "commit": "d8f3de0d2412bb91639cfefc5b3c79dbf3812212",
      "tree": "05d0530d06e898b7eeac5c781ee9f00972a7f67a",
      "parents": [
        "53eb2fbeb9e68e1a9a23945de8450999c46270ce"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jun 12 23:24:06 2008 +0200"
      },
      "committer": {
        "name": "Jesse Barnes",
        "email": "jbarnes@virtuousgeek.org",
        "time": "Thu Jun 12 14:25:09 2008 -0700"
      },
      "message": "Suspend-related patches for 2.6.27\n\nACPI PM: Add possibility to change suspend sequence\n\nThere are some systems out there that don\u0027t work correctly with\nour current suspend/hibernation code ordering.  Provide a workaround\nfor these systems allowing them to pass \u0027acpi_sleep\u003dold_ordering\u0027 in\nthe kernel command line so that it will use the pre-ACPI 2.0 (\"old\")\nsuspend code ordering.\n\nUnfortunately, this requires us to add a platform hook to the\nresuming of devices for recovering the platform in case one of the\ndevice drivers\u0027 .suspend() routines returns error code.  Namely,\nACPI 1.0 specifies that _PTS should be called before suspending\ndevices, but _WAK still should be called before resuming them in\norder to undo the changes made by _PTS.  However, if there is an\nerror during suspending devices, they are automatically resumed\nwithout returning control to the PM core, so the _WAK has to be\ncalled from within device_resume() in that cases.\n\nThe patch also reorders and refactors the ACPI suspend/hibernation\ncode to avoid duplication as far as reasonably possible.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Jesse Barnes \u003cjbarnes@virtuousgeek.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": "63687a528c39a67c1a213cdffa09feb0e6af9dbe",
      "tree": "0a21067f84d2495d37cc6fe864675db53ca56630",
      "parents": [
        "75d3bce2fc0a80f435fe12f2c9ed2632c8ac29e4"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Mon May 12 15:44:41 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun May 25 07:09:47 2008 +0200"
      },
      "message": "x86: move tracedata to RODATA\n\n.. allowing it to be write-protected just as other read-only data\nunder CONFIG_DEBUG_RODATA.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a442ac512f36981182e66a427ad05f449ff6593b",
      "tree": "8a99f2f4cb7f66e816163068c0c2c709c1852ac6",
      "parents": [
        "7371fd11a6e2aed99895db4f100940fa5022f7fe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 15 17:50:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 15 17:50:37 2008 -0700"
      },
      "message": "Clean up \u0027print_fn_descriptor_symbol()\u0027 types\n\nEverybody wants to pass it a function pointer, and in fact, that is what\nyou _must_ pass it for it to make sense (since it knows that ia64 and\nppc64 use descriptors for function pointers and fetches the actual\naddress from there).\n\nSo don\u0027t make the argument be a \u0027unsigned long\u0027 and force everybody to\nadd a cast.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08119e8966e993993d0ba92b2fba38c582c8f787",
      "tree": "5e82f0011af9cb34534d54056113f6deb4917ed4",
      "parents": [
        "aca239b793a4006db0d92ad0e43846ab6b54d816"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Apr 23 00:48:23 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 22 17:19:11 2008 -0700"
      },
      "message": "Relax check on adding children of suspended devices\n\nDo not refuse to actually register children of suspended devices,\nbut still warn about attempts to do that.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b844eba292b477cda14582bfc6f535deed57a82d",
      "tree": "b2418a9a4fc672654f4592ae0a3e2853d82271c3",
      "parents": [
        "138fe4e069798d9aa948a5402ff15e58f483ee4e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Mar 23 20:28:24 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:28 2008 -0700"
      },
      "message": "PM: Remove destroy_suspended_device()\n\nAfter 2.6.24 there was a plan to make the PM core acquire all device\nsemaphores during a suspend/hibernation to protect itself from\nconcurrent operations involving device objects.  That proved to be\ntoo heavy-handed and we found a better way to achieve the goal, but\nbefore it happened, we had introduced the functions\ndevice_pm_schedule_removal() and destroy_suspended_device() to allow\ndrivers to \"safely\" destroy a suspended device and we had adapted some\ndrivers to use them.  Now that these functions are no longer necessary,\nit seems reasonable to remove them and modify their users to use the\nnormal device unregistration instead.\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": "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": "57eee3d23e8833ca18708b374c648235691942ba",
      "tree": "59dc775f05ba7896663e0ab2262f4739f95d22f5",
      "parents": [
        "58aca23226a19983571bd3b65167521fc64f5869"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Mar 12 00:59:38 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:24 2008 -0700"
      },
      "message": "Driver core: Call device_pm_add() after bus_add_device() in device_add()\n\nInclude dpm_sysfs_add() into device_pm_add(), in analogy with\ndevice_pm_remove(), and modify device_add() to call the latter after\nbus_add_device(), to avoid situations in which the PM core may\nattempt to suspend a device the registration of which has not been\nsuccessful.\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": "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": "35d313b8744dc64c31b9cfcdb083112937643b45",
      "tree": "a991c16469ca5cbbf044f99a878092de434c6974",
      "parents": [
        "0c81eed4b9d6273124c7ab5eb99760b4d3a3cb9e"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Thu Feb 21 13:58:10 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Apr 19 19:10:23 2008 -0700"
      },
      "message": "power_state: remove it from driver core\n\npower_state is scheduled for removal, and it is used only for debug\nprints by driver core. Remove it.\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1b3cbec1dcb6747b587b40335f5de1d9e035063c",
      "tree": "7e24a74ac0c8082581335c764b184e0ae027804e",
      "parents": [
        "7a8d37a37380e2b1500592d40b7ec384dbebe7a0"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Fri Feb 29 11:50:22 2008 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 04 14:47:05 2008 -0800"
      },
      "message": "PM: fix new mutex-locking bug in the PM core\n\nThis patch (as1041) fixes a bug introduced by the\nacquire-all-device-semaphores reversion.  The error pathway of\ndpm_suspend() fails to reacquire a mutex it should be holding.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7a8d37a37380e2b1500592d40b7ec384dbebe7a0",
      "tree": "9a23b48e49ffc3303e5998f20498c994da2788c1",
      "parents": [
        "a4573c488dd531c6e2d308ce8a7413c4a2646207"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Feb 25 00:35:04 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Mar 04 14:47:05 2008 -0800"
      },
      "message": "PM: Do not acquire device semaphores upfront during suspend\n\nRemove the code that acquires all device semaphores from the suspend\ncode path as it causes multiple problems to appear (most notably,\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10030) and revert the\nchange introduced by commit 4145ed6dc597a9bea5f6ae8c574653b2de10620f\ndepending on the code being removed.\n\nRemove pm_sleep_lock()/pm_sleep_unlock() from device_add() to avoid\nthe issue reported at http://bugzilla.kernel.org/show_bug.cgi?id\u003d9874.\n\nIt should fix the regreesions reported at:\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d9874\n\thttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10030\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "20f8d2a49360980f1dc0afe2ea227e3ba887e575",
      "tree": "d2891d4604d3fd40da7a21650d07f83e73ae8d8e",
      "parents": [
        "e6364cd3a1a3e7c3e9a80bad15698afe6cc7ee75",
        "1f1519ef597ae4628dbd47244f0f68d700231523"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 21 16:33:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 21 16:33:19 2008 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (26 commits)\n  PM: Make suspend_device() static\n  PCI ACPI: Fix comment describing acpi_pci_choose_state\n  Hibernation: Handle DEBUG_PAGEALLOC on x86\n  ACPI: fix build warning\n  ACPI: TSC breaks atkbd suspend\n  ACPI: remove is_processor_present prototype\n  acer-wmi: Add DMI match for mail LED on Acer TravelMate 4200 series\n  ACPI: sparse fix, replace macro with static function\n  ACPI: thinkpad-acpi: add tablet-mode reporting\n  ACPI: thinkpad-acpi: minor hotkey_radio_sw fixes\n  ACPI: thinkpad-acpi: improve thinkpad-acpi input device documentation\n  ACPI: thinkpad-acpi: issue input events for tablet swivel events\n  ACPI: thinkpad-acpi: make the video output feature optional\n  ACPI: thinkpad-acpi: synchronize input device switches\n  ACPI: thinkpad-acpi: always track input device open/close\n  ACPI: thinkpad-acpi: trivial fix to documentation\n  ACPI: thinkpad-acpi: trivial fix to module_desc typo\n  intel_menlo: extract return values using PTR_ERR\n  ACPI video: check for error from thermal_cooling_device_register\n  ACPI thermal: extract return values using PTR_ERR\n  ...\n"
    },
    {
      "commit": "ec5a42465abc585a7f8117be5eecc361490e48ce",
      "tree": "c7ee96e891378b348171bea39210e50cbe18366b",
      "parents": [
        "4f808bcdf8dcf1f1ecd028f6d5c5347db4cddc54"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Feb 20 02:01:41 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Feb 21 15:27:08 2008 -0800"
      },
      "message": "PM: Remove unbalanced mutex_unlock() from dpm_resume()\n\nRemove an unnecessary unlocking of dpm_list_mtx in the error path\nin drivers/base/power/main.c:dpm_suspend() .\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "7199677d2e919edc75d1fb8856c98cd0c1bbcfc5",
      "tree": "b2a71619e54164cfad1e1fda266afa13ea5a0af3",
      "parents": [
        "7ab47050453c10da13940114dea9c7f1c6ad323f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Feb 18 13:09:03 2008 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Feb 21 15:27:07 2008 -0800"
      },
      "message": "driver-core: fix kernel-doc function parameters\n\nFix drivers/base/ missing kernel-doc parameters:\nWarning(linux-2.6.24-git12//drivers/base/driver.c:133): No description found for parameter \u0027drv\u0027\nWarning(linux-2.6.24-git12//drivers/base/driver.c:133): No description found for parameter \u0027kobj\u0027\nWarning(linux-2.6.24-git12//drivers/base/driver.c:133): No description found for parameter \u0027fmt\u0027\nWarning(linux-2.6.24-git12//drivers/base/power/main.c:530): No description found for parameter \u0027state\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "19e20c913bae2dd458b9fc42afab0c53f16562d1",
      "tree": "3d81eb99f4a220727cafb44f1e2c1631d892e179",
      "parents": [
        "c6868ea00bdebe5762fa59e54b74b4cd4e3b4e6e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sun Feb 03 22:55:18 2008 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 21 02:15:52 2008 -0500"
      },
      "message": "PM: Make suspend_device() static\n\nsuspend_device() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "9617c3e460bbccb6d9496a1f1e6903eb81f336e9",
      "tree": "b77a19e6b082365c74bf0f1b3ee3909bbbf7f4cc",
      "parents": [
        "18bbe0c26ccb7445d19465b0d3585d23445307f1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jan 25 01:30:25 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Sat Feb 02 15:14:48 2008 -0800"
      },
      "message": "PM: Export device_pm_schedule_removal\n\nMove the declaration of device_pm_schedule_removal() to device.h\nand make it exported, as it will be used directly by some drivers\nfor unregistering device objects during suspend/resume cycles in a\nsafe way.\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": "90dda1cb6ace6abd777f84bf051c4f86fa58986a",
      "tree": "b53a566118e5e130a55707bea6d01e112508c8df",
      "parents": [
        "ce2b7147bb83b7d729b17c1638f092a1bcba4981"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Mon Nov 19 23:46:16 2007 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Feb 01 18:30:54 2008 -0500"
      },
      "message": "PM: Make PM_TRACE more architecture independent\n\nWhen trying to debug a suspend failure I started implementing\nPM_TRACE for powerpc. I then noticed that I\u0027m debugging a suspend\nfailure and so PM_TRACE isn\u0027t useful at all, but thought that\nnonetheless this could be useful in the future.\n\nBasically, to support PM_TRACE, you add a Kconfig option that\nselects PM_TRACE and provides the infrastructure as per the\nhelp text of PM_TRACE.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "9e233625fbee1f977929a5406533b96011f1a06b",
      "tree": "ab3d3f6a9f4aa8839a3cabfee5052dfd07545669",
      "parents": [
        "800074345544ae6ec06c77b1a3f7ba032f84bd10"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Thu Nov 08 12:59:13 2007 +0100"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Jan 28 23:14:35 2008 +0100"
      },
      "message": "convert drivers/base/power/Makefile to ccflags\n\nThis patch converts drivers/base/power/Makefile to use ccflags instead\nof EXTRA_CFLAGS.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "37b0c020343080241984d978981d6caf877b278a",
      "tree": "6a602f153ac0713cdecd4f8b355844387fba90bf",
      "parents": [
        "822a89ed1ea0f7a2d8079307426fbeeac0370138"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Nov 26 22:11:55 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:25 2008 -0800"
      },
      "message": "driver core: clean up device_shutdown\n\ndevice_shutdown does not need to be in a separate file.  Move it into\nthe driver core file where it belongs.\n\nThis also moves us one more step closer to making devices_kset static,\nnow only the crazy sysdevs are keeping that from happening...\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "822a89ed1ea0f7a2d8079307426fbeeac0370138",
      "tree": "c49ec709a4f279885506eeebb46afaf555019a86",
      "parents": [
        "c829a5b49858a83cc7bb5e1e730796575f5bb261"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Tue Nov 20 13:56:21 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:25 2008 -0800"
      },
      "message": "driver core: clean up shutdown.c\n\nshutdown.c had some stuff it did not need, including a duplicate extern\nin the power.h file.  This cleans up all of that.\n\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "881c6cfd7c5edfe6129006e2404654bfe5911050",
      "tree": "cb8fa388d2b7c833d77e6ac4957310844a4e96af",
      "parents": [
        "b0d78e5549b44b3d64bf8b3ffe95280025ed102e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Nov 01 09:29:06 2007 -0600"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:15 2008 -0800"
      },
      "message": "kset: convert /sys/devices to use kset_create\n\nDynamically create the kset instead of declaring it statically.  We also\nrename devices_subsys to devices_kset to catch all users of the\nvariable.\n\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "775b64d2b6ca37697de925f70799c710aab5849a",
      "tree": "09e91c89228c8d3c6928a1b2ef56711190c69836",
      "parents": [
        "7a83d456a86d559a6347115d206d23774bc152d9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 12 20:40:46 2008 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Jan 24 20:40:04 2008 -0800"
      },
      "message": "PM: Acquire device locks on suspend\n\nThis patch reorganizes the way suspend and resume notifications are\nsent to drivers.  The major changes are that now the PM core acquires\nevery device semaphore before calling the methods, and calls to\ndevice_add() during suspends will fail, while calls to device_del()\nduring suspends will block.\n\nIt also provides a way to safely remove a suspended device with the\nhelp of the PM core, by using the device_pm_schedule_removal() callback\nintroduced specifically for this purpose, and updates two drivers (msr\nand cpuid) that need to use it.\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": "dec13c15445fec29ca9087890895718450e80b95",
      "tree": "cac4cfb2d665344973cb4d953d3d7785ae612a0d",
      "parents": [
        "345ee8392dc149ca529f80e40583928977ad592e"
      ],
      "author": {
        "name": "Daniel Drake",
        "email": "dsd@gentoo.org",
        "time": "Wed Nov 21 14:55:18 2007 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Nov 28 13:53:53 2007 -0800"
      },
      "message": "create /sys/.../power when CONFIG_PM is set\n\nThe CONFIG_SUSPEND changes in 2.6.23 caused a regression under certain\nconfiguration conditions (SUSPEND\u003dn, USB_AUTOSUSPEND\u003dy) where all USB\ndevice attributes in sysfs (idVendor, idProduct, ...) silently disappeared,\ncausing udev breakage and more.\n\nThe cause of this is that the /sys/.../power subdirectory is now only\ncreated when CONFIG_PM_SLEEP is set, however, it should be created whenever\nCONFIG_PM is set to handle the above situation.  The following patch fixes\nthe regression.\n\nSigned-off-by: Daniel Drake \u003cdsd@gentoo.org\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: stable \u003cstable@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": "f059bca1c57f665211dc23de1fb31c1849b65c7b",
      "tree": "d959dd156176baba33b02f9a947fda5d1e5fe5ca",
      "parents": [
        "c3d42d75270e9c259b75f814ccad2a88ab310665"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Oct 18 03:04:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Oct 18 14:37:19 2007 -0700"
      },
      "message": "pm_trace displays the wrong time from the RTC\n\nThe way in which read_magic_time() displays the date read from the RTC is\napparently confusing to the users (cf.\nhttps://bugzilla.redhat.com/bugzilla/show_bug.cgi?id\u003d250238).  Make it\nprint dates in the standard way.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd59abfcc441b2abb4cf2cd62c1eb0f02a60e8dd",
      "tree": "35b31fd683115cc7bc7dfcb2a7867469193cb17b",
      "parents": [
        "6d66f5cd26e4c482e986130b7572f2735a0f7e8b"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Fri Sep 21 15:36:56 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:12 2007 -0700"
      },
      "message": "PM: merge device power-management source files\n\nThis patch (as993) merges the suspend.c and resume.c files in\ndrivers/base/power into main.c, making some public symbols private.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "b4d1eb2ccecb76bce4c2125c5a3e77753fcfaeb0",
      "tree": "305103e5b12edfca76015222620dcd70fbcb757e",
      "parents": [
        "109f0e93b6b728f03c1eb4af02bc25d71b646c59"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Aug 10 13:51:09 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Oct 12 14:51:06 2007 -0700"
      },
      "message": "drivers/base/power/: make 2 functions static\n\nsuspend_device() and resume_device() can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\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": "58b3b71dfaaecbf7cff1fe10c049d663f0313e5f",
      "tree": "38f34ce39e1c93d6d54730ead4e414a5070e3b45",
      "parents": [
        "602033ed5907a59ce86f709082a35be047743a86"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 26 16:29:55 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 26 12:13:06 2007 -0700"
      },
      "message": "Fix ThinkPad T42 poweroff failure introduced by by \"PM: Introduce pm_power_off_prepare\"\n\nCommit bd804eba1c8597cbb7cd5a5f9fe886aae16a079a (\"PM: Introduce\npm_power_off_prepare\") caused problems in the poweroff path, as reported by\nYOSHIFUJI Hideaki / 吉藤英明.\n\nGenerally, sysdev_shutdown() should be called after the ACPI preparation for\npowering the system off.  To make it happen, we can separate sysdev_shutdown()\nfrom device_shutdown() and call it directly wherever necessary.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: YOSHIFUJI Hideaki / 吉藤英明 \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44bf4cea43816d43deab73c1c16361e899996eaa",
      "tree": "7ed3e6672f6abe3a68a79c77a7af125d0e0dab21",
      "parents": [
        "9ef231a436fddb34d806f599c97b479691b3c38b"
      ],
      "author": {
        "name": "Nigel Cunningham",
        "email": "nigel@nigel.suspend2.net",
        "time": "Sat Jul 21 17:10:41 2007 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jul 21 18:37:10 2007 -0700"
      },
      "message": "x86: PM_TRACE support\n\nSigned-off-by: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0349828d6d6f95c445674c2953ee9db75c11f8f",
      "tree": "1b511d59de0b437aa2724adfc403fb36ff1e2dfd",
      "parents": [
        "328616e3b76859f1abdd08a8df1ddbb7bb81f807"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@ubuntu.com",
        "time": "Thu Jul 19 01:47:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:42 2007 -0700"
      },
      "message": "PM: Do not require dev spew to get PM_DEBUG\n\nIn order to enable things like PM_TRACE, you\u0027re required to enable\nPM_DEBUG, which sends a large spew of messages on boot, and often times can\noverflow dmesg buffer.\n\nCreate new PM_VERBOSE and shift that to be the option that enables\ndrivers/base/power\u0027s messages.\n\nSigned-off-by: Ben Collins \u003cbcollins@ubuntu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\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": "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": "471d0558045fe35f8c5f291c1ee63815eb9c2dcd",
      "tree": "2be31d11ecc97f0ff537d62b3239e33300ccedae",
      "parents": [
        "60a96a59569bab85571d0089682109bd3324e896"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Jul 12 16:55:07 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 18 15:49:49 2007 -0700"
      },
      "message": "PM: Remove deprecated sysfs files\n\nThis patch (as932) removes the deprecated sysfs .../power/state\nattribute files.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "43a49f8baa6b0e7e5b68ed0ee141e1efacfd9ae6",
      "tree": "2759e89c277a3fa9dcb4d5787375356fad29ecc7",
      "parents": [
        "1c3f7d1c79425dd8f627b8da139fd1855f096b6e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jun 17 19:50:51 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:02 2007 -0700"
      },
      "message": "PM: Do not check parent state in suspend and resume core code\n\nThe checks if the device\u0027s parent is in the right state done in\ndrivers/base/power/suspend.c and drivers/base/power/resume.c serve no particular\npurpose, since if the parent is in a wrong power state, the device\u0027s suspend or\nresume callbacks are supposed to return an error anyway.  Moreover, they are\nalso useless from the sanity checking point of view, because they rely on the\ncode being checked to set dev-\u003eparent-\u003epower.power_state.event appropriately,\nwhich need not happen if that code is buggy.  For these reasons they can be\nremoved.\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": "1c3f7d1c79425dd8f627b8da139fd1855f096b6e",
      "tree": "36c39ee526bcefc6119b36798635db23cf467e1c",
      "parents": [
        "515c53576299e32d6bdb6295cfa2fe1307516eb4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jun 17 19:49:20 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:02 2007 -0700"
      },
      "message": "PM: Remove power_state.event checks from suspend core code\n\nThe suspend routines should be called for every device during a system sleep\ntransition, regardless of the device\u0027s state, so that drivers can regard these\nmethod calls as notifications that the system is about to go to sleep, rather\nthan as directives to put their devices into the \u0027off\u0027 state.\n\nThis is documented in Documentation/power/devices.txt and is already done in\nthe core resume code, so it seems reasonable to make the core suspend code\nbehave accordingly.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\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": "9e584a4fe58881e2dc8f09bdf8444b199ab5ecaf",
      "tree": "fc35a8a1c25182499b20c2416ac0225ba7829138",
      "parents": [
        "cc4900690bf77257996e90f0059eb074b8db52e6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jun 13 16:19:27 2007 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:01 2007 -0700"
      },
      "message": "PM: Simplify suspend_device\n\nReduce code duplication in drivers/base/suspend.c by introducing a separate\nfunction for printing diagnostic messages.\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": "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": "11048dcf333c414f237bb713c422e68f67b115a3",
      "tree": "3a42905f9b946e5614568568c4ee1f8f54f54e86",
      "parents": [
        "9f3f776bd9e3d52f0204db1df0914b50d6a2372e"
      ],
      "author": {
        "name": "Matthias Kaehlcke",
        "email": "matthias.kaehlcke@gmail.com",
        "time": "Wed May 23 14:19:41 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Jul 11 16:09:01 2007 -0700"
      },
      "message": "Power Management: use mutexes instead of semaphores\n\nThe Power Management code uses semaphores as mutexes.  Use the mutex API\ninstead of the (binary) semaphores.\n\nSigned-off-by: Matthias Kaehlcke \u003cmatthias.kaehlcke@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "823bccfc4002296ba88c3ad0f049e1abd8108d30",
      "tree": "5338ae0b32409446af4cd00c5107d9405d5bf0b6",
      "parents": [
        "2609e7b9bebfd433254c02538ba803dc516ff674"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 13 13:15:19 2007 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed May 02 18:57:59 2007 -0700"
      },
      "message": "remove \"struct subsystem\" as it is no longer needed\n\nWe need to work on cleaning up the relationship between kobjects, ksets and\nktypes.  The removal of \u0027struct subsystem\u0027 is the first step of this,\nespecially as it is not really needed at all.\n\nThanks to Kay for fixing the bugs in this patch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\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": "49f019d66d056ebb261d261d7c89cb698f5eec18",
      "tree": "7d71f5d169ae2f37e2929c0cb504b12955783eef",
      "parents": [
        "88db4721d47bc59b92d46de04e21c7975ea983f2"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Apr 09 11:52:31 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:30 2007 -0700"
      },
      "message": "Driver core: remove use of rwsem\n\nThis lock is never used by the rest of the driver core, so the fact that\nwe are grabbing it here means it isn\u0027t correct...\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "f89cbc399ecd924c4bd879344e662aace2274b4f",
      "tree": "d44c6c9952e1433566a3e6a4eb0123e33d10d97d",
      "parents": [
        "bf62456eb91f3d2ef0736081583d09b0b3c8b7ea"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Tue Apr 03 01:08:40 2007 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 27 10:57:29 2007 -0700"
      },
      "message": "Driver core: add suspend() and resume() to struct device_type\n\nDriver core: add suspend() and resume() to struct device_type\n\nIn cases when there are devices of different types in the same class\nwe can\u0027t use class\u0027s implementation of suspend and resume methods and\nwe need to add them to struct device_type instead.\n\nAlso fix error handling in resume code (we should not try to call\nclass\u0027s resume method iof bus\u0027s resume method for the device failed.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "c48ea60359a303f3faf5991205b0cdb58dfe6eed",
      "tree": "ccccfdc5ff0b88d83d7b4047d819fba2d41b6d4b",
      "parents": [
        "5ab7ffea520948115a51a9931e1bb4c818aa8e35"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dtor@insightbb.com",
        "time": "Wed Apr 11 01:37:18 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Apr 11 15:39:39 2007 -0700"
      },
      "message": "[PATCH] PM: use kobject_name() to access kobject names\n\nNoone should use kobj.name directly since it may contain garbage.\nObjects with longer names have them stored in separately allocated\nmemory pointed to by kobj-\u003ek_name.\n\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "9de72ee59029087fc8300633113c75a5fe73a7b8"
}
