)]}'
{
  "log": [
    {
      "commit": "d33ac60beaf2c7dee5cd90aba7c1eb385dd70937",
      "tree": "7393c5f323433f39d2c64e7d9990aa7565397214",
      "parents": [
        "2ac21c6bc4249ee6d922f18dbec7266377592c32"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james@albanarts.com",
        "time": "Tue Oct 12 00:00:25 2010 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 17 01:57:50 2010 +0200"
      },
      "message": "PM: Add sysfs attr for rechecking dev hash from PM trace\n\nIf the device which fails to resume is part of a loadable kernel module\nit won\u0027t be checked at startup against the magic number stored in the\nRTC.\n\nAdd a read-only sysfs attribute /sys/power/pm_trace_dev_match which\ncontains a list of newline separated devices (usually just the one)\nwhich currently match the last magic number. This allows the device\nwhich is failing to resume to be found after the modules are loaded\nagain.\n\nSigned-off-by: James Hogan \u003cjames@albanarts.com\u003e\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": "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": "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": "c5c6ba4e08ab9c9e390a0f3a7d9a5c332f5cc6ef",
      "tree": "4e13a9eebd8f3901dcc187c585369ef843d1e1a7",
      "parents": [
        "7d145aa3abf4d96c91f37c012facd5cfbb9010d1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 25 23:32:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:49:04 2006 -0700"
      },
      "message": "[PATCH] PM: Add pm_trace switch\n\nAdd the pm_trace attribute in /sys/power which has to be explicitly set to\none to really enable the \"PM tracing\" code compiled in when CONFIG_PM_TRACE\nis set (which modifies the machine\u0027s CMOS clock in unpredictable ways).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eb71c87a492b7090ff9e8ac46912c480a1687e38",
      "tree": "1136213dee0f942866b6c2c65de7e7c63ca94fda",
      "parents": [
        "d384ea691fe4ea8c2dd5b9b8d9042eb181776f18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jun 24 14:27:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Jun 24 14:44:01 2006 -0700"
      },
      "message": "Add some basic resume trace facilities\n\nConsidering that there isn\u0027t a lot of hw we can depend on during resume,\nthis is about as good as it gets.\n\nThis is x86-only for now, although the basic concept (and most of the\ncode) will certainly work on almost any platform.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
