)]}'
{
  "log": [
    {
      "commit": "8b258cc8ac229aa7d5dcb7cc34cb35d9124498ac",
      "tree": "9615636b05b04035af0c8eb11ee9711aa2b868a6",
      "parents": [
        "af8db1508f2c9f3b6e633e2d2d906c6557c617f9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Nov 17 21:39:33 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Nov 17 21:39:33 2011 +0100"
      },
      "message": "PM Sleep: Do not extend wakeup paths to devices with ignore_children set\n\nCommit 4ca46ff3e0d8c234cb40ebb6457653b59584426c (PM / Sleep: Mark\ndevices involved in wakeup signaling during suspend) introduced\nthe power.wakeup_path field in struct dev_pm_info to mark devices\nwhose children are enabled to wake up the system from sleep states,\nso that power domains containing the parents that provide their\nchildren with wakeup power and/or relay their wakeup signals are not\nturned off.  Unfortunately, that introduced a PM regression on SH7372\nwhose power consumption in the system \"memory sleep\" state increased\nas a result of it, because it prevented the power domain containing\nthe I2C controller from being turned off when some children of that\ncontroller were enabled to wake up the system, although the\ncontroller was not necessary for them to signal wakeup.\n\nTo fix this issue use the observation that devices whose\npower.ignore_children flag is set for runtime PM should be treated\nanalogously during system suspend.  Namely, they shouldn\u0027t be\nincluded in wakeup paths going through their children.  Since the\nSH7372 I2C controller\u0027s power.ignore_children flag is set, doing so\nwill restore the previous behavior of that SOC.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "af4c720efc0507e01b89774fed936087baac4107",
      "tree": "673f6421d814937b7cb274bbf6b2fa20c48d2b1d",
      "parents": [
        "24050956e029a9ecff096e1992869ada4492963c"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Thu Nov 10 00:44:18 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Nov 10 00:44:18 2011 +0100"
      },
      "message": "PM / QoS: Properly use the WARN() macro in dev_pm_qos_add_request()\n\nMake dev_pm_qos_add_request() use WARN() in a better way and do not hardcode\nthe function\u0027s name into the message (use __func__ instead).\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "24050956e029a9ecff096e1992869ada4492963c",
      "tree": "096341c4741fcc967645578af0acb277f9754501",
      "parents": [
        "056879d2f244001b2888cdc8cf868c33ca8b23a0"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@opensource.se",
        "time": "Thu Nov 10 00:44:10 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Nov 10 00:44:10 2011 +0100"
      },
      "message": "PM / Clocks: Only disable enabled clocks in pm_clk_suspend()\n\nRefrain from running clk_disable() on clocks that\nhave not been enabled. A typical case when this can\nhappen is during Suspend-to-RAM for devices that have\nno driver associated with them. In such case the clock\nmay be in default ACQUIRED state.\n\nWithout this patch the sh7372 Mackerel board crashes\nin __clk_disable() during Suspend-to-RAM with:\n\"Trying to disable clock 0xdeadbeef with 0 usecount\"\nThis happens for the CEU device which is added during\nboot. The test case has no CEU driver included in the\nkernel configuration. Needed for v3.2-rc1.\n\nSigned-off-by: Magnus Damm \u003cdamm@opensource.se\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "156acb166ea9a43d7fcdf9b8051694ce4e91dbfc",
      "tree": "944ba8516cb681decf943c34b7ba4f872991eaaa",
      "parents": [
        "1a51cfdc4516a6e1f2c1f8a579630a027c30331a"
      ],
      "author": {
        "name": "Thomas Meyer",
        "email": "thomas@m3y3r.de",
        "time": "Tue Nov 08 22:34:00 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Nov 08 22:34:00 2011 +0100"
      },
      "message": "PM / OPP: Use ERR_CAST instead of ERR_PTR(PTR_ERR())\n\nUse ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...))\n\n[The semantic patch that makes this change is available\n in scripts/coccinelle/api/err_cast.cocci.\n\n More information about semantic patching is available at\n http://coccinelle.lip6.fr/]\n\nSigned-off-by: Thomas Meyer \u003cthomas@m3y3r.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "886486b792e4f6f96d4fbe8ec5bf20811cab7d6a",
      "tree": "1c638e14492c16f8f69ca71fa93b2d81d8e4eeb6",
      "parents": [
        "6513fd6972f725291ee8ce62c7a39fb8a6c7391e"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Nov 03 23:39:18 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Nov 04 22:28:14 2011 +0100"
      },
      "message": "PM / Runtime: Automatically retry failed autosuspends\n\nOriginally, the runtime PM core would send an idle notification\nwhenever a suspend attempt failed.  The idle callback routine could\nthen schedule a delayed suspend for some time later.\n\nHowever this behavior was changed by commit\nf71648d73c1650b8b4aceb3856bebbde6daa3b86 (PM / Runtime: Remove idle\nnotification after failing suspend).  No notifications were sent, and\nthere was no clear mechanism to retry failed suspends.\n\nThis caused problems for the usbhid driver, because it fails\nautosuspend attempts as long as a key is being held down.  Therefore\nthis patch (as1492) adds a mechanism for retrying failed\nautosuspends.  If the callback routine updates the last_busy field so\nthat the next autosuspend expiration time is in the future, the\nautosuspend will automatically be rescheduled.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nTested-by: Henrik Rydberg \u003crydberg@euromail.se\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "def0c0a37d02820497fcd5a74b6cc93dbce5dc06",
      "tree": "4bfa6ef68b49887f3948abffbbd49d3175b16727",
      "parents": [
        "e9db50b839c592fcd22952d7f1dccbd0a56da57d"
      ],
      "author": {
        "name": "venu byravarasu",
        "email": "vbyravarasu@nvidia.com",
        "time": "Thu Nov 03 10:12:14 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Nov 04 22:28:10 2011 +0100"
      },
      "message": "PM / Runtime: Fix runtime accounting calculation error\n\nWith delta type being int, its value is made zero\nfor all values of now \u003e 0x80000000.\nHence fixing it.\n\nSigned-off-by: venu byravarasu \u003cvbyravarasu@nvidia.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "aaf195444be47aa3d3776825b3b384a61f40dca4",
      "tree": "3752d08fe46febc140874a2cf8f8004df93529f1",
      "parents": [
        "ba33162a2c3c847c02e42b9193b250217fdbbd9d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Sep 28 18:23:03 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:39 2011 -0400"
      },
      "message": "drivers/base: change module.h -\u003e export.h in power/common.c\n\nThis file isn\u0027t using full modular functionality, and hence\ncan be \"downgraded\" to just using export.h\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "1b6bc32f0a7380102499deb6aa99a59e789efb33",
      "tree": "283ef829016d671e7be5a6f72c00fa59fbc9f842",
      "parents": [
        "bff7832dd6670dd0e215ce32d60b18f3825a6555"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri May 27 07:12:15 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:38 2011 -0400"
      },
      "message": "drivers/base: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required.\n\nMost of these files were implicitly getting EXPORT_SYMBOL via\ndevice.h which was including module.h, but that path will be broken\nsoon.\n\n[ with input from Stephen Rothwell \u003csfr@canb.auug.org.au\u003e ]\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "0ab1e79b825a5cd8aeb3b34d89c9a89dea900056",
      "tree": "b30ea644d376fa9e80d25933b2257d7adee1eeb2",
      "parents": [
        "7fef9fc83fbd7293ea9fe665d14046422ebf4219"
      ],
      "author": {
        "name": "Jonghwan Choi",
        "email": "jhbird.choi@samsung.com",
        "time": "Sat Oct 22 00:22:54 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Oct 22 00:22:54 2011 +0200"
      },
      "message": "PM / Clocks: Remove redundant NULL checks before kfree()\n\nSince kfree() checks it its argument is not NULL, it is not necessary\nto duplicate this check in __pm_clk_remove().\n\n[rjw: Added the changelog.]\n\nSigned-off-by: Jonghwan Choi \u003cjhbird.choi@samsung.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d033e078566faed8c8f59baf97ee57ce2524ef5c",
      "tree": "46a98bf6a555ecbc8178baf6dd3a81553c3c3654",
      "parents": [
        "081a9d043c983f161b78fdc4671324d1342b86bc",
        "382414b93ac1e8ee7693be710e60c83eacc97c6f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Oct 22 00:21:52 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Oct 22 00:21:52 2011 +0200"
      },
      "message": "Merge branch \u0027pm-domains\u0027 into pm-for-linus\n\n* pm-domains:\n  ARM: mach-shmobile: sh7372 A4R support (v4)\n  ARM: mach-shmobile: sh7372 A3SP support (v4)\n  PM / Sleep: Mark devices involved in wakeup signaling during suspend\n"
    },
    {
      "commit": "4ca46ff3e0d8c234cb40ebb6457653b59584426c",
      "tree": "b929bbc30d5e08b1ba4be980c473f9d594a42b58",
      "parents": [
        "cd0ea672f58d5cfdea271c45cec0c897f2b792aa"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:34:36 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Oct 22 00:19:29 2011 +0200"
      },
      "message": "PM / Sleep: Mark devices involved in wakeup signaling during suspend\n\nThe generic PM domains code in drivers/base/power/domain.c has\nto avoid powering off domains that provide power to wakeup devices\nduring system suspend.  Currently, however, this only works for\nwakeup devices directly belonging to the given domain and not for\ntheir children (or the children of their children and so on).\nThus, if there\u0027s a wakeup device whose parent belongs to a power\ndomain handled by the generic PM domains code, the domain will be\npowered off during system suspend preventing the device from\nsignaling wakeup.\n\nTo address this problem introduce a device flag, power.wakeup_path,\nthat will be set during system suspend for all wakeup devices,\ntheir parents, the parents of their parents and so on.  This way,\nall wakeup paths in the device hierarchy will be marked and the\ngeneric PM domains code will only need to avoid powering off\ndomains containing devices whose power.wakeup_path is set.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8f88893c05f2f677f18f2ce5591b4bed5d4a7535",
      "tree": "4368e42a2c35ee018f7cd91b8fa6643f6ff2b852",
      "parents": [
        "37cce26b32142f09a8967f6d238178af654b20de"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Sep 26 17:38:50 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:28:51 2011 +0200"
      },
      "message": "PM: Update the policy on default wakeup settings\n\nThis patch (as1485) documents a change to the kernel\u0027s default wakeup\npolicy.  Devices that forward wakeup requests between buses should be\nenabled for wakeup by default.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "2a77c46de1e3dace73745015635ebbc648eca69c",
      "tree": "a801ed6ba5623c7d963377906776ade6f02eea0a",
      "parents": [
        "9bd717c0dc8224cadfd66df7eeff98c987711d98"
      ],
      "author": {
        "name": "ShuoX Liu",
        "email": "shuox.liu@intel.com",
        "time": "Wed Aug 10 23:01:26 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:27:45 2011 +0200"
      },
      "message": "PM / Suspend: Add statistics debugfs file for suspend to RAM\n\nRecord S3 failure time about each reason and the latest two failed\ndevices\u0027 names in S3 progress.\nWe can check it through \u0027suspend_stats\u0027 entry in debugfs.\n\nThe motivation of the patch:\n\nWe are enabling power features on Medfield. Comparing with PC/notebook,\na mobile enters/exits suspend-2-ram (we call it s3 on Medfield) far\nmore frequently. If it can\u0027t enter suspend-2-ram in time, the power\nmight be used up soon.\n\nWe often find sometimes, a device suspend fails. Then, system retries\ns3 over and over again. As display is off, testers and developers\ndon\u0027t know what happens.\n\nSome testers and developers complain they don\u0027t know if system\ntries suspend-2-ram, and what device fails to suspend. They need\nsuch info for a quick check. The patch adds suspend_stats under\ndebugfs for users to check suspend to RAM statistics quickly.\n\nIf not using this patch, we have other methods to get info about\nwhat device fails. One is to turn on  CONFIG_PM_DEBUG, but users\nwould get too much info and testers need recompile the system.\n\nIn addition, dynamic debug is another good tool to dump debug info.\nBut it still doesn\u0027t match our utilization scenario closely.\n1) user need write a user space parser to process the syslog output;\n2) Our testing scenario is we leave the mobile for at least hours.\n   Then, check its status. No serial console available during the\n   testing. One is because console would be suspended, and the other\n   is serial console connecting with spi or HSU devices would consume\n   power. These devices are powered off at suspend-2-ram.\n\nSigned-off-by: ShuoX Liu \u003cshuox.liu@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "9bd717c0dc8224cadfd66df7eeff98c987711d98",
      "tree": "bca8a9232d457d984d87da53b5ffadcb7dcd46be",
      "parents": [
        "7811ac276bb9f77aa6475110ef340c1bc3090def",
        "857b36c7b038ac56a882ee914df93e5985443074"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:26:49 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:26:49 2011 +0200"
      },
      "message": "Merge branch \u0027pm-runtime\u0027 into pm-for-linus\n\n* pm-runtime:\n  PM / Runtime: Handle .runtime_suspend() failure correctly\n  PM / Runtime: Fix kerneldoc comment for rpm_suspend()\n  PM / Runtime: Update document about callbacks\n"
    },
    {
      "commit": "857b36c7b038ac56a882ee914df93e5985443074",
      "tree": "04af09cacf24cde80659c810c66bc89c6fcf84c9",
      "parents": [
        "47d8f0bac0fda4c15a030f92cd6da6c6bed87459"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Wed Oct 12 22:59:33 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:25:23 2011 +0200"
      },
      "message": "PM / Runtime: Handle .runtime_suspend() failure correctly\n\nIf .runtime_suspend() returns -EAGAIN or -EBUSY, the device should\nstill be in ACTIVE state, so it is not necessary to send an idle\nnotification to its parent.  If .runtime_suspend() returns other\nfatal failure, it doesn\u0027t make sense to send idle notification to\nits parent.\n\nSkip parent idle notification when failure is returned from\n.runtime_suspend() and update comments in rpm_suspend() to reflect\nthat change.\n\n[rjw: Modified the subject and changelog slightly.]\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "47d8f0bac0fda4c15a030f92cd6da6c6bed87459",
      "tree": "57b4078eac2bd58b412ca09bc47f2827050cf47e",
      "parents": [
        "2fb242adcaab5defa2f208775ac4f181ac998fdd"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Wed Oct 12 11:53:32 2011 +0800"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 16 23:25:08 2011 +0200"
      },
      "message": "PM / Runtime: Fix kerneldoc comment for rpm_suspend()\n\nThis patch fix kerneldoc comments for rpm_suspend():\n\n - \u0027Cancel a pending idle notification\u0027 should be put before, also\n   should be changed to \u0027Cancel a pending idle notification,\n   autosuspend or suspend\u0027.\n\n - idle notification for the device after succeeding suspend has\n   been removed, so update the comment accordingly.\n\n[rjw: Modified the subject and changelog slightly.]\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "7811ac276bb9f77aa6475110ef340c1bc3090def",
      "tree": "5c8b9d6033b7a52f0cd67394c20e437001f577a7",
      "parents": [
        "9696cc90071e3660ec02a3728acdedb68afdce4c",
        "ce26c5bb9569d8b826f01b8620fc16d8da6821e9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:18 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:18 2011 +0200"
      },
      "message": "Merge branch \u0027pm-devfreq\u0027 into pm-for-linus\n\n* pm-devfreq:\n  PM / devfreq: Add basic governors\n  PM / devfreq: Add common sysfs interfaces\n  PM: Introduce devfreq: generic DVFS framework with device-specific OPPs\n  PM / OPP: Add OPP availability change notifier.\n"
    },
    {
      "commit": "9696cc90071e3660ec02a3728acdedb68afdce4c",
      "tree": "99783d31dd42262c29346c92760f7896c3d81cb6",
      "parents": [
        "c28b56b1d46b1bbb1be33c8f2632a88b0de1ef68",
        "e3cba3243eb853a052613c804dea033bc4c9cf2d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:07 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:07 2011 +0200"
      },
      "message": "Merge branch \u0027pm-qos\u0027 into pm-for-linus\n\n* pm-qos:\n  PM / QoS: Update Documentation for the pm_qos and dev_pm_qos frameworks\n  PM / QoS: Add function dev_pm_qos_read_value() (v3)\n  PM QoS: Add global notification mechanism for device constraints\n  PM QoS: Implement per-device PM QoS constraints\n  PM QoS: Generalize and export constraints management code\n  PM QoS: Reorganize data structs\n  PM QoS: Code reorganization\n  PM QoS: Minor clean-ups\n  PM QoS: Move and rename the implementation files\n"
    },
    {
      "commit": "c28b56b1d46b1bbb1be33c8f2632a88b0de1ef68",
      "tree": "a7caddb9f58c968f6e77f36d2d398ec06983509e",
      "parents": [
        "d727b60659a1173eb4142a5fc521ce67c28b34e1",
        "cd0ea672f58d5cfdea271c45cec0c897f2b792aa"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:02 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:17:02 2011 +0200"
      },
      "message": "Merge branch \u0027pm-domains\u0027 into pm-for-linus\n\n* pm-domains:\n  PM / Domains: Split device PM domain data into base and need_restore\n  ARM: mach-shmobile: sh7372 sleep warning fixes\n  ARM: mach-shmobile: sh7372 A3SM support\n  ARM: mach-shmobile: sh7372 generic suspend/resume support\n  PM / Domains: Preliminary support for devices with power.irq_safe set\n  PM: Move clock-related definitions and headers to separate file\n  PM / Domains: Use power.sybsys_data to reduce overhead\n  PM: Reference counting of power.subsys_data\n  PM: Introduce struct pm_subsys_data\n  ARM / shmobile: Make A3RV be a subdomain of A4LC on SH7372\n  PM / Domains: Rename argument of pm_genpd_add_subdomain()\n  PM / Domains: Rename GPD_STATE_WAIT_PARENT to GPD_STATE_WAIT_MASTER\n  PM / Domains: Allow generic PM domains to have multiple masters\n  PM / Domains: Add \"wait for parent\" status for generic PM domains\n  PM / Domains: Make pm_genpd_poweron() always survive parent removal\n  PM / Domains: Do not take parent locks to modify subdomain counters\n  PM / Domains: Implement subdomain counters as atomic fields\n"
    },
    {
      "commit": "d727b60659a1173eb4142a5fc521ce67c28b34e1",
      "tree": "793d0fc86ecf98331024db5c86bc271cc72aa2d2",
      "parents": [
        "3ee72ca99288f1de95ec9c570e43f531c8799f06",
        "2a5306cc5f383b0e7414c75e458111afd4a563a4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:16:55 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Oct 07 23:16:55 2011 +0200"
      },
      "message": "Merge branch \u0027pm-runtime\u0027 into pm-for-linus\n\n* pm-runtime:\n  PM / Tracing: build rpm-traces.c only if CONFIG_PM_RUNTIME is set\n  PM / Runtime: Replace dev_dbg() with trace_rpm_*()\n  PM / Runtime: Introduce trace points for tracing rpm_* functions\n  PM / Runtime: Don\u0027t run callbacks under lock for power.irq_safe set\n  USB: Add wakeup info to debugging messages\n  PM / Runtime: pm_runtime_idle() can be called in atomic context\n  PM / Runtime: Add macro to test for runtime PM events\n  PM / Runtime: Add might_sleep() to runtime PM functions\n"
    },
    {
      "commit": "1a9a91525d806f2b3bd8b57b963755a96fd36ce2",
      "tree": "511db2ab0871872bce759d35b7ffd22b9d7fc3f5",
      "parents": [
        "b66213cdb002b08b29603d488c451dfe25e2ca20"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Sep 29 22:29:44 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Oct 04 21:54:26 2011 +0200"
      },
      "message": "PM / QoS: Add function dev_pm_qos_read_value() (v3)\n\nTo read the current PM QoS value for a given device we need to\nmake sure that the device\u0027s power.constraints object won\u0027t be\nremoved while we\u0027re doing that.  For this reason, put the\noperation under dev-\u003epower.lock and acquire the lock\naround the initialization and removal of power.constraints.\n\nMoreover, since we\u0027re using the value of power.constraints to\ndetermine whether or not the object is present, the\npower.constraints_state field isn\u0027t necessary any more and may be\nremoved.  However, dev_pm_qos_add_request() needs to check if the\ndevice is being removed from the system before allocating a new\nPM QoS constraints object for it, so make it use the\npower.power_state field of struct device for this purpose.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "03ca370fbf7b76d6d002380dbdc2cdc2319f9c80",
      "tree": "d6978f3139f109755e0b2966995527a44c2e4681",
      "parents": [
        "a102a9ece5489e1718cd7543aa079082450ac3a2"
      ],
      "author": {
        "name": "MyungJoo Ham",
        "email": "myungjoo.ham@samsung.com",
        "time": "Fri Sep 30 22:35:12 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Sep 30 22:35:12 2011 +0200"
      },
      "message": "PM / OPP: Add OPP availability change notifier.\n\nThe patch enables to register notifier_block for an OPP-device in order\nto get notified for any changes in the availability of OPPs of the\ndevice. For example, if a new OPP is inserted or enable/disable status\nof an OPP is changed, the notifier is executed.\n\nThis enables the usage of opp_add, opp_enable, and opp_disable to\ndirectly take effect with any connected entities such as cpufreq or\ndevfreq.\n\nSigned-off-by: MyungJoo Ham \u003cmyungjoo.ham@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nReviewed-by: Mike Turquette \u003cmturquette@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "c3dc2f14622a06488f11452b6efd1e02c5a8548b",
      "tree": "d1fc5bc15c8fc593457fffd9e90e66498c14e196",
      "parents": [
        "53b615ccca567ada1931eb04ad0614ac150c14a3"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Tue Sep 27 22:54:41 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 22:54:41 2011 +0200"
      },
      "message": "PM / Runtime: Replace dev_dbg() with trace_rpm_*()\n\nThis patch replaces dev_dbg with trace_rpm_* inside\nthe three important functions:\n\n\trpm_idle\n\trpm_suspend\n\trpm_resume\n\nTrace points have the below advantages compared with dev_dbg:\n\n\t- trace points include much runtime information(such as\n\trunning cpu, current task, ...)\n\n\t- most of linux distributions may disable \"verbose debug\"\n\tdriver debug compile switch, so it is very difficult to\n\treport/debug runtime pm related problems from distribution\n\tusers without this kind of debug information.\n\n\t- for upstream kernel users, enableing the debug switch will\n\tproduce many useless \"rpm_resume\" output, and it is very noise.\n\n\t- dev_dbg inside rpm_suspend/rpm_resume may have some effects\n\ton runtime pm behaviour of console devicer\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "ad3c36a534bc7b945d7bffdda1c62e13bf93489a",
      "tree": "5f7520f575891716577de33176713b8cb13a22d5",
      "parents": [
        "30b1a7a32ca48fd8758f8ca44d60deebc0aa3d72"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 21:54:52 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 21:54:52 2011 +0200"
      },
      "message": "PM / Runtime: Don\u0027t run callbacks under lock for power.irq_safe set\n\nThe rpm_suspend() and rpm_resume() routines execute subsystem or PM\ndomain callbacks under power.lock if power.irq_safe is set for the\ngiven device.  This is inconsistent with that rpm_idle() does after\ncommit 02b2677 (PM / Runtime: Allow _put_sync() from\ninterrupts-disabled context) and is problematic for subsystems and PM\ndomains wanting to use power.lock for synchronization in their\nruntime PM callbacks.\n\nThis change requires the code checking if the device\u0027s runtime PM\nstatus is RPM_SUSPENDING or RPM_RESUMING to be modified too, to take\nthe power.irq_safe set case into account (that code wasn\u0027t reachable\nbefore with power.irq_safe set, because it\u0027s executed with the\ndevice\u0027s power.lock held).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Ming Lei \u003ctom.leiming@gmail.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "cd0ea672f58d5cfdea271c45cec0c897f2b792aa",
      "tree": "96596cf00fd4fd84b1eb76626f7cc2e1e05e6a18",
      "parents": [
        "0d41da2e31e81f5c8aaabe17f769de4304b2d4c8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 20:22:02 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 20:22:02 2011 +0200"
      },
      "message": "PM / Domains: Split device PM domain data into base and need_restore\n\nThe struct pm_domain_data data type is defined in such a way that\nadding new fields specific to the generic PM domains code will\nrequire include/linux/pm.h to be modified.  As a result, data types\nused only by the generic PM domains code will be defined in two\nheaders, although they all should be defined in pm_domain.h and\npm.h will need to include more headers, which won\u0027t be very nice.\n\nFor this reason change the definition of struct pm_subsys_data\nso that its domain_data member is a pointer, which will allow\nstruct pm_domain_data to be subclassed by various PM domains\nimplementations.  Remove the need_restore member from\nstruct pm_domain_data and make the generic PM domains code\nsubclass it by adding the need_restore member to the new data type.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0d41da2e31e81f5c8aaabe17f769de4304b2d4c8",
      "tree": "540acefba9bf01d3880d7bacb767fbf9b1fe80b4",
      "parents": [
        "a0089bd617adea27ebc352e1e0871649ab1dbaa6",
        "e8b364b88cc4001b21c28c1ecf1e1e3ffbe162e6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 20:12:45 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 20:12:45 2011 +0200"
      },
      "message": "Merge branch \u0027pm-fixes\u0027 into pm-domains\n\nMerge commit e8b364b88cc4001b21c28c1ecf1e1e3ffbe162e6\n(PM / Clocks: Do not acquire a mutex under a spinlock) fixing\na regression in drivers/base/power/clock_ops.c.\n\nConflicts:\n\tdrivers/base/power/clock_ops.c\n"
    },
    {
      "commit": "e8b364b88cc4001b21c28c1ecf1e1e3ffbe162e6",
      "tree": "980f84081c2278ff2b6bb4a113d949a1730759a8",
      "parents": [
        "f9d81f61c84aca693bc353dfef4b8c36c2e5e1b5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 19:40:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 26 19:40:23 2011 +0200"
      },
      "message": "PM / Clocks: Do not acquire a mutex under a spinlock\n\nCommit b7ab83e (PM: Use spinlock instead of mutex in clock\nmanagement functions) introduced a regression causing clocks_mutex\nto be acquired under a spinlock.  This happens because\npm_clk_suspend() and pm_clk_resume() call pm_clk_acquire() under\npcd-\u003elock, but pm_clk_acquire() executes clk_get() which causes\nclocks_mutex to be acquired.  Similarly, __pm_clk_remove(),\nexecuted under pcd-\u003elock, calls clk_put(), which also causes\nclocks_mutex to be acquired.\n\nTo fix those problems make pm_clk_add() call pm_clk_acquire(), so\nthat pm_clk_suspend() and pm_clk_resume() don\u0027t have to do that.\nChange pm_clk_remove() and pm_clk_destroy() to separate\nmodifications of the pcd-\u003eclock_list list from the actual removal of\nPM clock entry objects done by __pm_clk_remove().\n\nReported-and-tested-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "0aa2a221696cc8ea20a4cdca01315d3b6b4ecc4d",
      "tree": "e2af809c44ff7ec93299170fc7ee6871be25108e",
      "parents": [
        "b5e8d269d814763d597ccc0108d1fa6639ad35a1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:37:04 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:37:04 2011 +0200"
      },
      "message": "PM / Domains: Preliminary support for devices with power.irq_safe set\n\nThe generic PM domains framework currently doesn\u0027t work with devices\nwhose power.irq_safe flag is set, because runtime PM callbacks for\nsuch devices are run with interrupts disabled and the callbacks\nprovided by the generic PM domains framework use domain mutexes\nand may sleep.  However, such devices very well may belong to\npower domains on some systems, so the generic PM domains framework\nshould take them into account.\n\nFor this reason, modify the generic PM domains framework so that the\ndomain .power_off() and .power_on() callbacks are never executed for\na domain containing devices with power.irq_safe set, although the\n.stop_device() and .start_device() callbacks are still run for them.\n\nAdditionally, introduce a flag allowing the creator of a\nstruct generic_pm_domain object to indicate that its .stop_device()\nand .start_device() callbacks may be run in interrupt context\n(might_sleep_if() triggers if that flag is not set and one of those\ncallbacks is run in interrupt context).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b66213cdb002b08b29603d488c451dfe25e2ca20",
      "tree": "eebdfa34524d5cd40f30c722098e8c51457a15e0",
      "parents": [
        "91ff4cb803df6de9114351b9f2f0f39f397ee03e"
      ],
      "author": {
        "name": "Jean Pihet",
        "email": "j-pihet@ti.com",
        "time": "Thu Aug 25 15:35:47 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:35:47 2011 +0200"
      },
      "message": "PM QoS: Add global notification mechanism for device constraints\n\nAdd a global notification chain that gets called upon changes to the\naggregated constraint value for any device.\nThe notification callbacks are passing the full constraint request data\nin order for the callees to have access to it. The current use is for the\nplatform low-level code to access the target device of the constraint.\n\nSigned-off-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "91ff4cb803df6de9114351b9f2f0f39f397ee03e",
      "tree": "eb24c7df28d0f93557ac1d9e7d72a79fc3556b97",
      "parents": [
        "abe98ec2d86279fe821c9051003a0abc43444f15"
      ],
      "author": {
        "name": "Jean Pihet",
        "email": "j-pihet@ti.com",
        "time": "Thu Aug 25 15:35:41 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:35:41 2011 +0200"
      },
      "message": "PM QoS: Implement per-device PM QoS constraints\n\nImplement the per-device PM QoS constraints by creating a device\nPM QoS API, which calls the PM QoS constraints management core code.\n\nThe per-device latency constraints data strctures are stored\nin the device dev_pm_info struct.\n\nThe device PM code calls the init and destroy of the per-device constraints\ndata struct in order to support the dynamic insertion and removal of the\ndevices in the system.\n\nTo minimize the data usage by the per-device constraints, the data struct\nis only allocated at the first call to dev_pm_qos_add_request.\nThe data is later free\u0027d when the device is removed from the system.\nA global mutex protects the constraints users from the data being\nallocated and free\u0027d.\n\nSigned-off-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b5e8d269d814763d597ccc0108d1fa6639ad35a1",
      "tree": "9c401a279d38e977e7208debc74b7ce2708d3498",
      "parents": [
        "4605ab653c1f9d7cc2dda8033de215c9cee325f4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:19 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:19 2011 +0200"
      },
      "message": "PM: Move clock-related definitions and headers to separate file\n\nSince the PM clock management code in drivers/base/power/clock_ops.c\nis used for both runtime PM and system suspend/hibernation, the\ndefinitions of data structures and headers related to it should not\nbe located in include/linux/pm_rumtime.h.  Move them to a separate\nheader file.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4605ab653c1f9d7cc2dda8033de215c9cee325f4",
      "tree": "8f55aa3137973ce2a3ef0ed49c44304e148d50fe",
      "parents": [
        "ef27bed1870dbd5fd363ff5ec51eebd5a695e277"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:12 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:12 2011 +0200"
      },
      "message": "PM / Domains: Use power.sybsys_data to reduce overhead\n\nCurrently pm_genpd_runtime_resume() has to walk the list of devices\nfrom the device\u0027s PM domain to find the corresponding device list\nobject containing the need_restore field to check if the driver\u0027s\n.runtime_resume() callback should be executed for the device.\nThis is suboptimal and can be simplified by using power.sybsys_data\nto store device information used by the generic PM domains code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "ef27bed1870dbd5fd363ff5ec51eebd5a695e277",
      "tree": "ef563bb07f259386fbe2477ec9a01e7ead011bcc",
      "parents": [
        "5c095a0e0d600d5a5a4207eaadabd18db46395ce"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:01 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:34:01 2011 +0200"
      },
      "message": "PM: Reference counting of power.subsys_data\n\nSince the power.subsys_data device field will be used by multiple\nfilesystems, introduce a reference counting mechanism for it to avoid\nfreeing it prematurely or changing its value at a wrong time.\n\nMake the PM clocks management code that currently is the only user of\npower.subsys_data use the new reference counting.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5c095a0e0d600d5a5a4207eaadabd18db46395ce",
      "tree": "18163d773234898e71c22d83b265a1eccfba11d9",
      "parents": [
        "111058c3ff29a6a25216b31789046c2a330baa7d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:50 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:50 2011 +0200"
      },
      "message": "PM: Introduce struct pm_subsys_data\n\nIntroduce struct pm_subsys_data that may be subclassed by subsystems\nto store subsystem-specific information related to the device.  Move\nthe clock management fields accessed through the power.subsys_data\npointer in struct device to the new strucutre.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "bc0403ff16e5305c3a14c2b0826616ceaabbf058",
      "tree": "709b4e1c2cdbb33c075fc06d0598161952ab71d8",
      "parents": [
        "17877eb5a900f32bb5827a7b2109b6c9adff5fc3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 08 23:43:59 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:45 2011 +0200"
      },
      "message": "PM / Domains: Rename argument of pm_genpd_add_subdomain()\n\nChange the name of the second argument of pm_genpd_add_subdomain()\nso that it is (a) shorter and (b) in agreement with the name of\nthe second argument of pm_genpd_add_subdomain().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "17877eb5a900f32bb5827a7b2109b6c9adff5fc3",
      "tree": "40071b242874b486e8a5fdc36b0bdf0ba9ccbe00",
      "parents": [
        "5063ce1571b73865cbdcd92db002e85809750c97"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 08 23:43:50 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:45 2011 +0200"
      },
      "message": "PM / Domains: Rename GPD_STATE_WAIT_PARENT to GPD_STATE_WAIT_MASTER\n\nSince it is now possible for a PM domain to have multiple masters\ninstead of one parent, rename the \"wait for parent\" status to reflect\nthe new situation.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "5063ce1571b73865cbdcd92db002e85809750c97",
      "tree": "0c844d3e9c61768492c1e87d4df78c44d7f4ed1e",
      "parents": [
        "3f241775c30365c33a0d2f6d40f4cf12470f48c6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 08 23:43:40 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:44 2011 +0200"
      },
      "message": "PM / Domains: Allow generic PM domains to have multiple masters\n\nCurrently, for a given generic PM domain there may be only one parent\ndomain (i.e. a PM domain it depends on).  However, there is at least\none real-life case in which there should be two parents (masters) for\none PM domain (the A3RV domain on SH7372 turns out to depend on the\nA4LC domain and it depends on the A4R domain and the same time). For\nthis reason, allow a PM domain to have multiple parents (masters) by\nintroducing objects representing links between PM domains.\n\nThe (logical) links between PM domains represent relationships in\nwhich one domain is a master (i.e. it is depended on) and another\ndomain is a slave (i.e. it depends on the master) with the rule that\nthe slave cannot be powered on if the master is not powered on and\nthe master cannot be powered off if the slave is not powered off.\nEach struct generic_pm_domain object representing a PM domain has\ntwo lists of links, a list of links in which it is a master and\na list of links in which it is a slave.  The first of these lists\nreplaces the list of subdomains and the second one is used in place\nof the parent pointer.\n\nEach link is represented by struct gpd_link object containing\npointers to the master and the slave and two struct list_head\nmembers allowing it to hook into two lists (the master\u0027s list\nof \"master\" links and the slave\u0027s list of \"slave\" links).  This\nallows the code to get to the link from each side (either from\nthe master or from the slave) and follow it in each direction.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "3f241775c30365c33a0d2f6d40f4cf12470f48c6",
      "tree": "45b3fa3b5da4d9cbb006762118dcd0f8837434ff",
      "parents": [
        "9e08cf429697090d0fac57d493dc7b6de17a5eee"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 08 23:43:29 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:44 2011 +0200"
      },
      "message": "PM / Domains: Add \"wait for parent\" status for generic PM domains\n\nThe next patch will make it possible for a generic PM domain to have\nmultiple parents (i.e. multiple PM domains it depends on).  To\nprepare for that change it is necessary to change pm_genpd_poweron()\nso that it doesn\u0027t jump to the start label after running itself\nrecursively for the parent domain.  For this purpose, introduce a new\nPM domain status value GPD_STATE_WAIT_PARENT that will be set by\npm_genpd_poweron() before calling itself recursively for the parent\ndomain and modify the code in drivers/base/power/domain.c so that\nthe GPD_STATE_WAIT_PARENT status is guaranteed to be preserved during\nthe execution of pm_genpd_poweron() for the parent.\n\nThis change also causes pm_genpd_add_subdomain() and\npm_genpd_remove_subdomain() to wait for started pm_genpd_poweron() to\ncomplete and allows pm_genpd_runtime_resume() to avoid dropping the\nlock after powering on the PM domain.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "9e08cf429697090d0fac57d493dc7b6de17a5eee",
      "tree": "70b18a96a5510bdec9bd35307bbf9d3b3e57981d",
      "parents": [
        "3c07cbc488bfd1ad1abf64d09cc692339b5f8a83"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 08 23:43:22 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:44 2011 +0200"
      },
      "message": "PM / Domains: Make pm_genpd_poweron() always survive parent removal\n\nIf pm_genpd_remove_subdomain() is called to remove a PM domain\u0027s\nsubdomain and pm_genpd_poweron() is called for that subdomain at\nthe same time, and the pm_genpd_poweron() called by it recursively\nfor the parent returns an error, the first pm_genpd_poweron()\u0027s\nerror code path will attempt to decrement the subdomain counter of\na PM domain that it\u0027s not a subdomain of any more.\n\nRearrange the code in pm_genpd_poweron() to prevent this from\nhappening.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "3c07cbc488bfd1ad1abf64d09cc692339b5f8a83",
      "tree": "d53a2a9a3635092f289b66dabcbac0fbcefe8d50",
      "parents": [
        "c4bb3160c8823d3a1e581d7e05fb8b343097e7c8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 08 23:43:14 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:43 2011 +0200"
      },
      "message": "PM / Domains: Do not take parent locks to modify subdomain counters\n\nAfter the subdomain counter in struct generic_pm_domain has been\nchanged into an atomic_t field, it is possible to modify\npm_genpd_poweron() and pm_genpd_poweroff() so that they don\u0027t take\nthe parents locks.  This requires pm_genpd_poweron() to increment\nthe parent\u0027s subdomain counter before calling itself recursively\nfor the parent and to decrement it if an error is to be returned.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "c4bb3160c8823d3a1e581d7e05fb8b343097e7c8",
      "tree": "550ba22e33176d4e5116a50cb8789ababe6dd09d",
      "parents": [
        "ff35336d3efd1ec4015b56f690191ed69730cbb0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 08 23:43:04 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:33:43 2011 +0200"
      },
      "message": "PM / Domains: Implement subdomain counters as atomic fields\n\nCurrently, pm_genpd_poweron() and pm_genpd_poweroff() need to take\nthe parent PM domain\u0027s lock in order to modify the parent\u0027s counter\nof active subdomains in a nonracy way.  This causes the locking to be\nconsiderably complex and in fact is not necessary, because the\nsubdomain counters may be implemented as atomic fields and they\nwon\u0027t have to be modified under a lock.\n\nReplace the unsigned in sd_count field in struct generic_pm_domain\nby an atomic_t one and modify the code in drivers/base/power/domain.c\nto take this change into account.\n\nThis patch doesn\u0027t change the locking yet, that is going to be done\nin a separate subsequent patch.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b7ab83edba2d50583bc9520431618489379718b2",
      "tree": "25b780542b1b58451345a1352d221a32a3b86e9a",
      "parents": [
        "a53e77fa57145cef6e2a63925db3d426128b2335"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Aug 24 21:40:56 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Aug 24 21:40:56 2011 +0200"
      },
      "message": "PM: Use spinlock instead of mutex in clock management functions\n\nThe lock member of struct pm_clk_data is of type struct mutex,\nwhich is a problem, because the suspend and resume routines\ndefined in drivers/base/power/clock_ops.c cannot be executed\nwith interrupts disabled for this reason.  Modify\nstruct pm_clk_data so that its lock member is a spinlock.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "311aab73d273eb22be976055f6cab224f7279d5e",
      "tree": "14ef310eb77cac8d85c85b3ed006713e4602ec8f",
      "parents": [
        "17f2ae7f677f023997e02fd2ebabd90ea2a0390d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Aug 08 23:39:36 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Aug 14 13:35:52 2011 +0200"
      },
      "message": "PM / Runtime: Add might_sleep() to runtime PM functions\n\nSome of the entry points to pm runtime are not safe to\ncall in atomic context unless pm_runtime_irq_safe() has\nbeen called.  Inspecting the code, it is not immediately\nobvious that the functions sleep at all, as they run\ninside a spin_lock_irqsave, but under some conditions\nthey can drop the lock and turn on irqs.\n\nIf a driver incorrectly calls the pm_runtime apis, it can\ncause sleeping and irq processing when it expects to stay\nin atomic context.\n\nAdd might_sleep_if to the majority of the __pm_runtime_* entry points\nto enforce correct usage.\n\nAdd pm_runtime_put_sync_autosuspend to the list of\nfunctions that can be called in atomic context.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "17f2ae7f677f023997e02fd2ebabd90ea2a0390d",
      "tree": "9f333057d8771adc432687417c2bfe28164f1e48",
      "parents": [
        "91d85ea6786107aa2837bef3e957165ad7c8b823"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Aug 14 13:34:31 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Aug 14 13:34:31 2011 +0200"
      },
      "message": "PM / Domains: Fix build for CONFIG_PM_RUNTIME unset\n\nFunction genpd_queue_power_off_work() is not defined for\nCONFIG_PM_RUNTIME, so pm_genpd_poweroff_unused() causes a build\nerror to happen in that case.  Fix the problem by making\npm_genpd_poweroff_unused() depend on CONFIG_PM_RUNTIME too.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "02b26774afebb2d62695ba3230319d70d8c6cc2d",
      "tree": "956c4056fcb42d2c2b2a75e20d3ad98f148865fc",
      "parents": [
        "fe202fde50a986a8510c62a76dc8733c1a8fac86"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@ti.com",
        "time": "Fri Aug 05 21:45:20 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 05 21:45:20 2011 +0200"
      },
      "message": "PM / Runtime: Allow _put_sync() from interrupts-disabled context\n\nCurrently the use of pm_runtime_put_sync() is not safe from\ninterrupts-disabled context because rpm_idle() will release the\nspinlock and enable interrupts for the idle callbacks.  This enables\ninterrupts during a time where interrupts were expected to be\ndisabled, and can have strange side effects on drivers that expected\ninterrupts to be disabled.\n\nThis is not a bug since the documentation clearly states that only\n_put_sync_suspend() is safe in IRQ-safe mode.\n\nHowever, pm_runtime_put_sync() could be made safe when in IRQ-safe\nmode by releasing the spinlock but not re-enabling interrupts, which\nis what this patch aims to do.\n\nProblem was found when using some buggy drivers that set\npm_runtime_irq_safe() and used _put_sync() in interrupts-disabled\ncontext.\n\nReported-by: Colin Cross \u003cccross@google.com\u003e\nTested-by: Nishanth Menon \u003cnm@ti.com\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "fe202fde50a986a8510c62a76dc8733c1a8fac86",
      "tree": "055cb487668446bcf184650039ac8a12268a6b81",
      "parents": [
        "de96355c111679dd6e2c5c73e25e814c72510c58"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 05 21:45:11 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 05 21:45:11 2011 +0200"
      },
      "message": "PM / Domains: Fix pm_genpd_poweron()\n\nThe local variable ret is defined twice in pm_genpd_poweron(), which\ncauses this function to always return 0, even if the PM domain\u0027s\n.power_on() callback fails, in which case an error code should be\nreturned.\n\nRemove the wrong second definition of ret and additionally remove an\nunnecessary definition of wait from pm_genpd_poweron().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc92805a8e25e5e2b0ba7c413cc15d9f05962ee8",
      "tree": "841ba603726e0168d0cddaf528e9e5c472a7fed1",
      "parents": [
        "adc400f69053b16756ff3b00daa64884c8df0787"
      ],
      "author": {
        "name": "Jonghwan Choi",
        "email": "jhbird.choi@samsung.com",
        "time": "Tue Jul 26 16:08:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:41 2011 -0700"
      },
      "message": "drivers/base/power/opp.c: fix dev_opp initial value\n\nDev_opp initial value shoule be ERR_PTR(), IS_ERR() is used to check\nerror.\n\nSigned-off-by: Jonghwan Choi \u003cjhbird.choi@samsung.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\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": "7ae033cc0dfce68d8e0c83aca60837cf2bf0d2e6",
      "tree": "91bb3b8ae2790c7fef06b1832a7df61ae496a77a",
      "parents": [
        "ba1389d74f34c0c6e95cc135a332cd29c29d9c20",
        "c8c9fda5069456eb9e0e403c19764b2e257802e1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:59:25 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:59:25 2011 +0200"
      },
      "message": "Merge branch \u0027pm-runtime\u0027 into for-linus\n\n* pm-runtime:\n  OMAP: PM: disable idle on suspend for GPIO and UART\n  OMAP: PM: omap_device: add API to disable idle on suspend\n  OMAP: PM: omap_device: add system PM methods for PM domain handling\n  OMAP: PM: omap_device: conditionally use PM domain runtime helpers\n  PM / Runtime: Add new helper function: pm_runtime_status_suspended()\n  PM / Runtime: Consistent utilization of deferred_resume\n  PM / Runtime: Prevent runtime_resume from racing with probe\n  PM / Runtime: Replace \"run-time\" with \"runtime\" in documentation\n  PM / Runtime: Improve documentation of enable, disable and barrier\n  PM: Limit race conditions between runtime PM and system sleep (v2)\n  PCI / PM: Detect early wakeup in pci_pm_prepare()\n  PM / Runtime: Return special error code if runtime PM is disabled\n  PM / Runtime: Update documentation of interactions with system sleep\n"
    },
    {
      "commit": "ba1389d74f34c0c6e95cc135a332cd29c29d9c20",
      "tree": "53813843d22cfcfe6d466a5daa44c646f8157980",
      "parents": [
        "f0c077a8b7f9dce590c760a7b2f3c417dffa52d1",
        "5ca80817e231723f1399bff495854ba2171103ca"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:59:09 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:59:09 2011 +0200"
      },
      "message": "Merge branch \u0027pm-domains\u0027 into for-linus\n\n* pm-domains: (33 commits)\n  ARM / shmobile: Return -EBUSY from A4LC power off if A3RV is active\n  PM / Domains: Take .power_off() error code into account\n  ARM / shmobile: Use genpd_queue_power_off_work()\n  ARM / shmobile: Use pm_genpd_poweroff_unused()\n  PM / Domains: Introduce function to power off all unused PM domains\n  PM / Domains: Queue up power off work only if it is not pending\n  PM / Domains: Improve handling of wakeup devices during system suspend\n  PM / Domains: Do not restore all devices on power off error\n  PM / Domains: Allow callbacks to execute all runtime PM helpers\n  PM / Domains: Do not execute device callbacks under locks\n  PM / Domains: Make failing pm_genpd_prepare() clean up properly\n  PM / Domains: Set device state to \"active\" during system resume\n  ARM: mach-shmobile: sh7372 A3RV requires A4LC\n  PM / Domains: Export pm_genpd_poweron() in header\n  ARM: mach-shmobile: sh7372 late pm domain off\n  ARM: mach-shmobile: Runtime PM late init callback\n  ARM: mach-shmobile: sh7372 D4 support\n  ARM: mach-shmobile: sh7372 A4MP support\n  ARM: mach-shmobile: sh7372: make sure that fsi is peripheral of spu2\n  ARM: mach-shmobile: sh7372 A3SG support\n  ...\n"
    },
    {
      "commit": "1d8047a6f7973470bb1de4606a6e00c0bbee3cc6",
      "tree": "eeac09edbc2b43d912a7c100f9acd6882207788a",
      "parents": [
        "a5e4fd8783a2bec861ecf1138cdc042269ff59aa"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Jun 27 01:01:16 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:58:19 2011 +0200"
      },
      "message": "PM: Add \"RTC\" to PM trace time stamps to avoid confusion\n\nSome users are apparently confused by dmesg output from\nread_magic_time(), which looks like \"real\" time and date.\nAdd the \"RTC\" string to time stamps printed by read_magic_time() to\navoid that confusion.\n\nReported-by: Justin P. Mattock \u003cjustinmattock@gmail.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "99f381d3549432a250fe846a2a82d61a032804b0",
      "tree": "c267e27c99d0609732e54fb7e7fda9fef2a7e8c0",
      "parents": [
        "3110df800c4de2724624d46e6bed27efc5e9a707"
      ],
      "author": {
        "name": "Nishanth Menon",
        "email": "nm@ti.com",
        "time": "Fri Jun 10 20:24:57 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 15 23:58:18 2011 +0200"
      },
      "message": "PM / OPP: Introduce function to free cpufreq table\n\ncpufreq table allocated by opp_init_cpufreq_table is better\nfreed by OPP layer itself. This allows future modifications to\nthe table handling to be transparent to the users.\n\nSigned-off-by: Nishanth Menon \u003cnm@ti.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d28054020f97c7c9f15327a53945f0f40ffc5d7a",
      "tree": "0c1d4dcef6eca9c5fe6a435d8a86d51c373d90c8",
      "parents": [
        "0bc5b2debb832191a42baea7ff59d2ca6ce9f7d5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 14 20:59:20 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 14 20:59:20 2011 +0200"
      },
      "message": "PM / Domains: Take .power_off() error code into account\n\nCurrently pm_genpd_poweroff() discards error codes returned by\nthe PM domain\u0027s .power_off() callback, because it\u0027s safer to always\nregard the domain as inaccessible to drivers after a failing\n.power_off().  Still, there are situations in which the low-level\ncode may want to indicate that it doesn\u0027t want to power off the\ndomain, so allow it to do that by returning -EBUSY from .power_off().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "0bc5b2debb832191a42baea7ff59d2ca6ce9f7d5",
      "tree": "cb7f1f7a20fb9a9d2483714a8e9f0a3a84862245",
      "parents": [
        "796204142a98b6e0e71b494e808d1b6ee62cc75f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 14 20:59:07 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 14 20:59:07 2011 +0200"
      },
      "message": "ARM / shmobile: Use genpd_queue_power_off_work()\n\nMake pd_power_down_a3rv() use genpd_queue_power_off_work() to queue\nup the powering off of the A4LC domain to avoid queuing it up when\nit is pending.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "5125bbf3880755419eff68672623cde49c4f31e8",
      "tree": "50c4bfa1745e6d30ca16652a4d2ea848c568eb31",
      "parents": [
        "56375fd420f851944960bd53dbb08d674f4d9406"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 13 12:31:52 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 13 12:31:52 2011 +0200"
      },
      "message": "PM / Domains: Introduce function to power off all unused PM domains\n\nAdd a new function pm_genpd_poweroff_unused() queuing up the\nexecution of pm_genpd_poweroff() for every initialized generic PM\ndomain.  Calling it will cause every generic PM domain without\ndevices in use to be powered off.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "56375fd420f851944960bd53dbb08d674f4d9406",
      "tree": "634fc52ba88aad057cbd2175d9a2b91d5dee4f01",
      "parents": [
        "4ecd6e651dd25ebbf0cc53c68162c0ab08641725"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:40:03 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:40:03 2011 +0200"
      },
      "message": "PM / Domains: Queue up power off work only if it is not pending\n\nIn theory it is possible that pm_genpd_poweroff() for two different\nsubdomains of the same parent domain will attempt to queue up the\nexecution of pm_genpd_poweroff() for the parent twice in a row.  This\nwould lead to unpleasant consequences, so prevent it from happening\nby checking if genpd-\u003epower_off_work is pending before attempting to\nqueue it up.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4ecd6e651dd25ebbf0cc53c68162c0ab08641725",
      "tree": "6a9a77fde53b096432f28a691889d9f79112eec3",
      "parents": [
        "697a7f3727b53c7d4c927948bbe1f6afc4fabfde"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:57 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:57 2011 +0200"
      },
      "message": "PM / Domains: Improve handling of wakeup devices during system suspend\n\nKevin points out that if there\u0027s a device that can wake up the system\nfrom sleep states, but it doesn\u0027t generate wakeup signals by itself\n(they are generated on its behalf by other parts of the system) and\nit currently is not enabled to wake up the system (that is,\ndevice_may_wakeup() returns \"false\" for it), we may need to change\nits wakeup settings during system suspend (for example, the device\nmight have been configured to signal remote wakeup from the system\u0027s\nworking state, as needed by runtime PM).  Therefore the generic PM\ndomains code should invoke the system suspend callbacks provided by\nthe device\u0027s driver, which it doesn\u0027t do if the PM domain is powered\noff during the system suspend\u0027s \"prepare\" stage.  This is a valid\npoint.  Moreover, this code also should make sure that system wakeup\ndevices that are enabled to wake up the system from sleep states and\nhave to remain active for this purpose are not suspended while the\nsystem is in a sleep state.\n\nTo avoid the above issues, make the generic PM domains\u0027 .prepare()\nroutine, pm_genpd_prepare(), force runtime resume of devices whose\nsystem wakeup settings may need to be changed during system suspend\nor that should remain active while the system is in a sleep state to\nbe able to wake it up from that state.\n\nReported-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "697a7f3727b53c7d4c927948bbe1f6afc4fabfde",
      "tree": "d57da1cbcc7d0c72d1549aba1a19def94141773d",
      "parents": [
        "c6d22b37263607ba5aeeb2e11169fa65caa29bee"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:48 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:48 2011 +0200"
      },
      "message": "PM / Domains: Do not restore all devices on power off error\n\nSince every device in a PM domain has its own need_restore\nflag, which is set by __pm_genpd_save_device(), there\u0027s no need to\nwalk the domain\u0027s device list and restore all devices on an error\nfrom one of the drivers\u0027 .runtime_suspend() callbacks.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "c6d22b37263607ba5aeeb2e11169fa65caa29bee",
      "tree": "890d56f9559a93be0d09b77b54cf1b6a80fd34f4",
      "parents": [
        "17b75eca7683d4942f4d8d00563fd15f37c39589"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:36 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:36 2011 +0200"
      },
      "message": "PM / Domains: Allow callbacks to execute all runtime PM helpers\n\nA deadlock may occur if one of the PM domains\u0027 .start_device() or\n.stop_device() callbacks or a device driver\u0027s .runtime_suspend() or\n.runtime_resume() callback executed by the core generic PM domain\ncode uses a \"wrong\" runtime PM helper function.  This happens, for\nexample, if .runtime_resume() from one device\u0027s driver calls\npm_runtime_resume() for another device in the same PM domain.\nA similar situation may take place if a device\u0027s parent is in the\nsame PM domain, in which case the runtime PM framework may execute\npm_genpd_runtime_resume() automatically for the parent (if it is\nsuspended at the moment).  This, of course, is undesirable, so\nthe generic PM domains code should be modified to prevent it from\nhappening.\n\nThe runtime PM framework guarantees that pm_genpd_runtime_suspend()\nand pm_genpd_runtime_resume() won\u0027t be executed in parallel for\nthe same device, so the generic PM domains code need not worry\nabout those cases.  Still, it needs to prevent the other possible\nrace conditions between pm_genpd_runtime_suspend(),\npm_genpd_runtime_resume(), pm_genpd_poweron() and pm_genpd_poweroff()\nfrom happening and it needs to avoid deadlocks at the same time.\nTo this end, modify the generic PM domains code to relax\nsynchronization rules so that:\n\n* pm_genpd_poweron() doesn\u0027t wait for the PM domain status to\n  change from GPD_STATE_BUSY.  If it finds that the status is\n  not GPD_STATE_POWER_OFF, it returns without powering the domain on\n  (it may modify the status depending on the circumstances).\n\n* pm_genpd_poweroff() returns as soon as it finds that the PM\n  domain\u0027s status changed from GPD_STATE_BUSY after it\u0027s released\n  the PM domain\u0027s lock.\n\n* pm_genpd_runtime_suspend() doesn\u0027t wait for the PM domain status\n  to change from GPD_STATE_BUSY after executing the domain\u0027s\n  .stop_device() callback and executes pm_genpd_poweroff() only\n  if pm_genpd_runtime_resume() is not executed in parallel.\n\n* pm_genpd_runtime_resume() doesn\u0027t wait for the PM domain status\n  to change from GPD_STATE_BUSY after executing pm_genpd_poweron()\n  and sets the domain\u0027s status to GPD_STATE_BUSY and increments its\n  counter of resuming devices (introduced by this change) immediately\n  after acquiring the lock.  The counter of resuming devices is then\n  decremented after executing __pm_genpd_runtime_resume() for the\n  device and the domain\u0027s status is reset to GPD_STATE_ACTIVE (unless\n  there are more resuming devices in the domain, in which case the\n  status remains GPD_STATE_BUSY).\n\nThis way, for example, if a device driver\u0027s .runtime_resume()\ncallback executes pm_runtime_resume() for another device in the same\nPM domain, pm_genpd_poweron() called by pm_genpd_runtime_resume()\ninvoked by the runtime PM framework will not block and it will see\nthat there\u0027s nothing to do for it.  Next, the PM domain\u0027s lock will\nbe acquired without waiting for its status to change from\nGPD_STATE_BUSY and the device driver\u0027s .runtime_resume() callback\nwill be executed.  In turn, if pm_runtime_suspend() is executed by\none device driver\u0027s .runtime_resume() callback for another device in\nthe same PM domain, pm_genpd_poweroff() executed by\npm_genpd_runtime_suspend() invoked by the runtime PM framework as a\nresult will notice that one of the devices in the domain is being\nresumed, so it will return immediately.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "17b75eca7683d4942f4d8d00563fd15f37c39589",
      "tree": "539ee88f2c4008eec206ca98cec54263deeae708",
      "parents": [
        "b6c10c84665912985d0bf9b6ae8ce19fc4298d9f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:29 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:29 2011 +0200"
      },
      "message": "PM / Domains: Do not execute device callbacks under locks\n\nCurrently, the .start_device() and .stop_device() callbacks from\nstruct generic_pm_domain() as well as the device drivers\u0027 runtime PM\ncallbacks used by the generic PM domains code are executed under\nthe generic PM domain lock.  This, unfortunately, is prone to\ndeadlocks, for example if a device and its parent are boths members\nof the same PM domain.  For this reason, it would be better if the\nPM domains code didn\u0027t execute device callbacks under the lock.\n\nRework the locking in the generic PM domains code so that the lock\nis dropped for the execution of device callbacks.  To this end,\nintroduce PM domains states reflecting the current status of a PM\ndomain and such that the PM domain lock cannot be acquired if the\nstatus is GPD_STATE_BUSY.  Make threads attempting to acquire a PM\ndomain\u0027s lock wait until the status changes to either\nGPD_STATE_ACTIVE or GPD_STATE_POWER_OFF.\n\nThis change by itself doesn\u0027t fix the deadlock problem mentioned\nabove, but the mechanism introduced by it will be used for for this\npurpose by a subsequent patch.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b6c10c84665912985d0bf9b6ae8ce19fc4298d9f",
      "tree": "6dd76693427b432646c05633090f390dcc74e2c3",
      "parents": [
        "6f00ff78278fd5d6ac110b6903ee042af2d6af91"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:21 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:21 2011 +0200"
      },
      "message": "PM / Domains: Make failing pm_genpd_prepare() clean up properly\n\nIf pm_generic_prepare() in pm_genpd_prepare() returns error code,\nthe PM domains counter of \"prepared\" devices should be decremented\nand its suspend_power_off flag should be reset if this counter drops\ndown to zero.  Otherwise, the PM domain runtime PM code will not\nhandle the domain correctly (it will permanently think that system\nsuspend is in progress).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "6f00ff78278fd5d6ac110b6903ee042af2d6af91",
      "tree": "e466b608591a916ed3a6faace59a47065a2a6f4f",
      "parents": [
        "775b8ae8707592af9275b8b216c2bf056b3f5d82"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:10 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 12 00:39:10 2011 +0200"
      },
      "message": "PM / Domains: Set device state to \"active\" during system resume\n\nThe runtime PM status of devices in a power domain that is not\npowered off in pm_genpd_complete() should be set to \"active\", because\nthose devices are operational at this point.  Some of them may not be\nin use, though, so make pm_genpd_complete() call pm_runtime_idle()\nin addition to pm_runtime_set_active() for each of them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "18b4f3f5d058b590e7189027eeb5d897742ade0a",
      "tree": "8cc1c52f77e218593fc8cea275f57b6ba5e4076b",
      "parents": [
        "b9416f03fd9f809225a90f63b2fbc86f90010eab"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@opensource.se",
        "time": "Sun Jul 10 10:39:14 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 10 10:39:14 2011 +0200"
      },
      "message": "PM / Domains: Export pm_genpd_poweron() in header\n\nAllow SoC-specific code to call pm_genpd_poweron().\n\nSigned-off-by: Magnus Damm \u003cdamm@opensource.se\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "2cffff1281a74714c9e035322077ec52ffb1f838",
      "tree": "a0321ea7466987e6e860fc4e05633ac64b8120c9",
      "parents": [
        "69c843b45eb3b8f267019e6a05860c9c48337419"
      ],
      "author": {
        "name": "ShuoX Liu",
        "email": "shuox.liu@intel.com",
        "time": "Fri Jul 08 20:53:55 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 08 20:53:55 2011 +0200"
      },
      "message": "PM / Runtime: Consistent utilization of deferred_resume\n\ndev-\u003epower.deferred_resume is used as a bool typically, so change\none assignment to false from 0, like other places.\n\nSigned-off-by: ShuoX Liu \u003cshuox.liu@intel.com\u003e\n"
    },
    {
      "commit": "69c843b45eb3b8f267019e6a05860c9c48337419",
      "tree": "11a797e0cfa0dee3e0f790123a687f9daa2789bb",
      "parents": [
        "62052ab1d1a456f5f62f8b753e12d10ca1a83604"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Jul 06 10:52:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 10:52:23 2011 +0200"
      },
      "message": "PM / Runtime: Prevent runtime_resume from racing with probe\n\nThis patch (as1475) adds device_lock() and device_unlock() calls to\nthe store methods for the power/control and power/autosuspend_delay_ms\nsysfs attribute files.  We don\u0027t want badly timed writes to these\nfiles to cause runtime_resume callbacks to occur while a driver is\nbeing probed for a device.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "62052ab1d1a456f5f62f8b753e12d10ca1a83604",
      "tree": "0a4bca617dbec22b82f9261c0b99ff40ef7fc5b9",
      "parents": [
        "e358bad75ff13210f5211cac9f93d76170d43f89"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 10:52:13 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 10:52:13 2011 +0200"
      },
      "message": "PM / Runtime: Replace \"run-time\" with \"runtime\" in documentation\n\nThe runtime PM documentation and kerneldoc comments sometimes spell\n\"runtime\" with a dash (i.e. \"run-time\").  Replace all of those\ninstances with \"runtime\" to make the naming consistent.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "1e2ef05bb8cf851a694d38e9170c89e7ff052741",
      "tree": "ff1dfccc622374f9039d342cc48d16d6636740ae",
      "parents": [
        "eea3fc0357eb89d0b2d1af37bdfb83eb4076a542"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 10:51:58 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 06 10:51:58 2011 +0200"
      },
      "message": "PM: Limit race conditions between runtime PM and system sleep (v2)\n\nOne of the roles of the PM core is to prevent different PM callbacks\nexecuted for the same device object from racing with each other.\nUnfortunately, after commit e8665002477f0278f84f898145b1f141ba26ee26\n(PM: Allow pm_runtime_suspend() to succeed during system suspend)\nruntime PM callbacks may be executed concurrently with system\nsuspend/resume callbacks for the same device.\n\nThe main reason for commit e8665002477f0278f84f898145b1f141ba26ee26\nwas that some subsystems and device drivers wanted to use runtime PM\nhelpers, pm_runtime_suspend() and pm_runtime_put_sync() in\nparticular, for carrying out the suspend of devices in their\n.suspend() callbacks.  However, as it\u0027s been determined recently,\nthere are multiple reasons not to do so, inlcuding:\n\n * The caller really doesn\u0027t control the runtime PM usage counters,\n   because user space can access them through sysfs and effectively\n   block runtime PM.  That means using pm_runtime_suspend() or\n   pm_runtime_get_sync() to suspend devices during system suspend\n   may or may not work.\n\n * If a driver calls pm_runtime_suspend() from its .suspend()\n   callback, it causes the subsystem\u0027s .runtime_suspend() callback to\n   be executed, which leads to the call sequence:\n\n   subsys-\u003esuspend(dev)\n      driver-\u003esuspend(dev)\n         pm_runtime_suspend(dev)\n            subsys-\u003eruntime_suspend(dev)\n\n   recursive from the subsystem\u0027s point of view.  For some subsystems\n   that may actually work (e.g. the platform bus type), but for some\n   it will fail in a rather spectacular fashion (e.g. PCI).  In each\n   case it means a layering violation.\n\n * Both the subsystem and the driver can provide .suspend_noirq()\n   callbacks for system suspend that can do whatever the\n   .runtime_suspend() callbacks do just fine, so it really isn\u0027t\n   necessary to call pm_runtime_suspend() during system suspend.\n\n * The runtime PM\u0027s handling of wakeup devices is usually different\n   from the system suspend\u0027s one, so .runtime_suspend() may simply be\n   inappropriate for system suspend.\n\n * System suspend is supposed to work even if CONFIG_PM_RUNTIME is\n   unset.\n\n * The runtime PM workqueue is frozen before system suspend, so if\n   whatever the driver is going to do during system suspend depends\n   on it, that simply won\u0027t work.\n\nStill, there is a good reason to allow pm_runtime_resume() to\nsucceed during system suspend and resume (for instance, some\nsubsystems and device drivers may legitimately use it to ensure that\ntheir devices are in full-power states before suspending them).\nMoreover, there is no reason to prevent runtime PM callbacks from\nbeing executed in parallel with the system suspend/resume .prepare()\nand .complete() callbacks and the code removed by commit\ne8665002477f0278f84f898145b1f141ba26ee26 went too far in this\nrespect.  On the other hand, runtime PM callbacks, including\n.runtime_resume(), must not be executed during system suspend\u0027s\n\"late\" stage of suspending devices and during system resume\u0027s \"early\"\ndevice resume stage.\n\nTaking all of the above into consideration, make the PM core\nacquire a runtime PM reference to every device and resume it if\nthere\u0027s a runtime PM resume request pending right before executing\nthe subsystem-level .suspend() callback for it.  Make the PM core\ndrop references to all devices right after executing the\nsubsystem-level .resume() callbacks for them.  Additionally,\nmake the PM core disable the runtime PM framework for all devices\nduring system suspend, after executing the subsystem-level .suspend()\ncallbacks for them, and enable the runtime PM framework for all\ndevices during system resume, right before executing the\nsubsystem-level .resume() callbacks for them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "632e270e01d8a1ee9e8ea56c83028727f17b1d17",
      "tree": "58cbc127f9f173409f40bbaf27f8ea85c185c52d",
      "parents": [
        "455716e9b12ba93e93181ac88bef62e4eb5ac66c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:29:15 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:30:10 2011 +0200"
      },
      "message": "PM / Runtime: Return special error code if runtime PM is disabled\n\nSome callers of pm_runtime_get_sync() and other runtime PM helper\nfunctions, scsi_autopm_get_host() and scsi_autopm_get_device() in\nparticular, need to distinguish error codes returned when runtime PM\nis disabled (i.e. power.disable_depth is nonzero for the given\ndevice) from error codes returned in other situations.  For this\nreason, make the runtime PM helper functions return -EACCES when\npower.disable_depth is nonzero and ensure that this error code\nwon\u0027t be returned by them in any other circumstances.  Modify\nscsi_autopm_get_host() and scsi_autopm_get_device() to check the\nerror code returned by pm_runtime_get_sync() and ignore -EACCES.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "3d5c30367cbc0c55c93bb158e824e00badc7ddc4",
      "tree": "073ab59dfbf0514e9ba5eb37431a337c5511af33",
      "parents": [
        "b7b95920aa2e89e655afe9913ee0e55855ceda90"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:13:44 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:57 2011 +0200"
      },
      "message": "PM: Rename clock management functions\n\nThe common PM clock management functions may be used for system\nsuspend/resume as well as for runtime PM, so rename them\naccordingly.  Modify kerneldoc comments describing these functions\nand kernel messages printed by them, so that they refer to power\nmanagement in general rather that to runtime PM.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "b7b95920aa2e89e655afe9913ee0e55855ceda90",
      "tree": "6f7f30252e2b4b518d76906706a745107288a701",
      "parents": [
        "d4f2d87a8b46c14c4307c690c92bd08229f66ecf"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:13:37 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:56 2011 +0200"
      },
      "message": "PM: Allow the clocks management code to be used during system suspend\n\nThe common clocks management code in drivers/base/power/clock_ops.c\nis going to be used during system-wide power transitions as well as\nfor runtime PM, so it shouldn\u0027t depend on CONFIG_PM_RUNTIME.\nHowever, the suspend/resume functions provided by it for\nCONFIG_PM_RUNTIME unset, to be used during system-wide power\ntransitions, should not behave in the same way as their counterparts\ndefined for CONFIG_PM_RUNTIME set, because in that case the clocks\nare managed differently at run time.\n\nThe names of the functions still contain the word \"runtime\" after\nthis change, but that is going to be modified by a separate patch\nlater.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "d4f2d87a8b46c14c4307c690c92bd08229f66ecf",
      "tree": "6560c88f024f9972936cfd4dabc1685e00baee8b",
      "parents": [
        "596ba34bcd2978ee9823cc1d84df230576f8ffb9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:13:29 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:56 2011 +0200"
      },
      "message": "PM / Domains: Wakeup devices support for system sleep transitions\n\nThere is the problem how to handle devices set up to wake up the\nsystem from sleep states during system-wide power transitions.\nIn some cases, those devices can be turned off entirely, because the\nwakeup signals will be generated on their behalf anyway.  In some\nother cases, they will generate wakeup signals if their clocks are\nstopped, but only if power is not removed from them.  Finally, in\nsome cases, they can only generate wakeup signals if power is not\nremoved from them and their clocks are enabled.\n\nTo allow platform-specific code to decide whether or not to put\nwakeup devices (and their PM domains) into low-power state during\nsystem-wide transitions, such as system suspend, introduce a new\ngeneric PM domain callback, .active_wakeup(), that will be used\nduring the \"noirq\" phase of system suspend and hibernation (after\nimage creation) to decide what to do with wakeup devices.\nSpecifically, if this callback is present and returns \"true\", the\ngeneric PM domain code will not execute .stop_device() for the\ngiven wakeup device and its PM domain won\u0027t be powered off.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "596ba34bcd2978ee9823cc1d84df230576f8ffb9",
      "tree": "ef118fc94c08730c7e82a58c2e7f70cb781d17c2",
      "parents": [
        "5248051b9afb6684cd817b2fbdaefa5063761dab"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:13:19 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:56 2011 +0200"
      },
      "message": "PM / Domains: System-wide transitions support for generic domains (v5)\n\nMake generic PM domains support system-wide power transitions\n(system suspend and hibernation).  Add suspend, resume, freeze, thaw,\npoweroff and restore callbacks to be associated with struct\ngeneric_pm_domain objects and make pm_genpd_init() use them as\nappropriate.\n\nThe new callbacks do nothing for devices belonging to power domains\nthat were powered down at run time (before the transition).  For the\nother devices the action carried out depends on the type of the\ntransition.  During system suspend the power domain .suspend()\ncallback executes pm_generic_suspend() for the device, while the\nPM domain .suspend_noirq() callback runs pm_generic_suspend_noirq()\nfor it, stops it and eventually removes power from the PM domain it\nbelongs to (after all devices in the domain have been stopped and its\nsubdomains have been powered off).\n\nDuring system resume the PM domain .resume_noirq() callback\nrestores power to the PM domain (when executed for it first time),\nstarts the device and executes pm_generic_resume_noirq() for it,\nwhile the .resume() callback executes pm_generic_resume() for the\ndevice.  Finally, the .complete() callback executes pm_runtime_idle()\nfor the device which should put it back into the suspended state if\nits runtime PM usage count is equal to zero at that time.\n\nThe actions carried out during hibernation and resume from it are\nanalogous to the ones described above.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "5248051b9afb6684cd817b2fbdaefa5063761dab",
      "tree": "44782bb3ae2330f676e053d1b3a8aad4d2abb6e7",
      "parents": [
        "e5291928839877f8e73c2643ee1d3fe0bcdcaf5c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:13:10 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:55 2011 +0200"
      },
      "message": "PM / Domains: Move code from under #ifdef CONFIG_PM_RUNTIME (v2)\n\nThere is some code in drivers/base/power/domain.c that will be useful\nfor both runtime PM and system-wide power transitions, so make it\ndepend on CONFIG_PM instead of CONFIG_PM_RUNTIME.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "e5291928839877f8e73c2643ee1d3fe0bcdcaf5c",
      "tree": "df733cad71610a2f5ce283dcca5f2ad1d83bdf1f",
      "parents": [
        "f721889ff65afa6243c463832c74dee3bed418d5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:12:59 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:55 2011 +0200"
      },
      "message": "PM: Introduce generic \"noirq\" callback routines for subsystems (v2)\n\nIntroduce generic \"noirq\" power management callback routines for\nsubsystems in addition to the \"regular\" generic PM callback routines.\n\nThe new routines will be used, among other things, for implementing\nsystem-wide PM transitions support for generic PM domains.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "f721889ff65afa6243c463832c74dee3bed418d5",
      "tree": "350bcb4fd7964167189fce93d0a9352f2958b1a4",
      "parents": [
        "dc6e4e56e6ef473a696a1ab24f80b79b9aceb92d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Jul 01 22:12:45 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:55 2011 +0200"
      },
      "message": "PM / Domains: Support for generic I/O PM domains (v8)\n\nIntroduce common headers, helper functions and callbacks allowing\nplatforms to use simple generic power domains for runtime power\nmanagement.\n\nIntroduce struct generic_pm_domain to be used for representing\npower domains that each contain a number of devices and may be\nparent domains or subdomains with respect to other power domains.\nAmong other things, this structure includes callbacks to be\nprovided by platforms for performing specific tasks related to\npower management (i.e. -\u003estop_device() may disable a device\u0027s\nclocks, while -\u003estart_device() may enable them, -\u003epower_off() is\nsupposed to remove power from the entire power domain\nand -\u003epower_on() is supposed to restore it).\n\nIntroduce functions that can be used as power domain runtime PM\ncallbacks, pm_genpd_runtime_suspend() and pm_genpd_runtime_resume(),\nas well as helper functions for the initialization of a power\ndomain represented by a struct generic_power_domain object,\nadding a device to or removing a device from it and adding or\nremoving subdomains.\n\nIntroduce configuration option CONFIG_PM_GENERIC_DOMAINS to be\nselected by the platforms that want to use the new code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "564b905ab10d17fb42f86aa8b7b9b796276d1336",
      "tree": "b191c000e55ae1a354bd67876ca6945d2ad87c93",
      "parents": [
        "f5da24dbed213d103f00aa9ef26e010b50d2db24"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jun 23 01:52:55 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jul 02 14:29:54 2011 +0200"
      },
      "message": "PM / Domains: Rename struct dev_power_domain to struct dev_pm_domain\n\nThe naming convention used by commit 7538e3db6e015e890825fbd9f86599b\n(PM: Add support for device power domains), which introduced the\nstruct dev_power_domain type for representing device power domains,\nevidently confuses some developers who tend to think that objects\nof this type must correspond to \"power domains\" as defined by\nhardware, which is not the case.  Namely, at the kernel level, a\nstruct dev_power_domain object can represent arbitrary set of devices\nthat are mutually dependent power management-wise and need not belong\nto one hardware power domain.  To avoid that confusion, rename struct\ndev_power_domain to struct dev_pm_domain and rename the related\npointers in struct device and struct pm_clk_notifier_block from\npwr_domain to pm_domain.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "4d1518f5668ef1b3dff6c3b30fa761fe5573cdaa",
      "tree": "9e9c6d6b4c8d241ce392d31c2fb8ca07f9c9b753",
      "parents": [
        "6d0e0e84f66d32c33511984dd3badd32364b863c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:24:33 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:24:33 2011 +0200"
      },
      "message": "PM / Runtime: Handle clocks correctly if CONFIG_PM_RUNTIME is unset\n\nCommit 85eb8c8d0b0900c073b0e6f89979ac9c439ade1a (PM / Runtime:\nGeneric clock manipulation rountines for runtime PM (v6)) converted\nthe shmobile platform to using generic code for runtime PM clock\nmanagement, but it changed the behavior for CONFIG_PM_RUNTIME unset\nincorrectly.\n\nSpecifically, for CONFIG_PM_RUNTIME unset pm_runtime_clk_notify()\nshould enable clocks for action equal to BUS_NOTIFY_BIND_DRIVER and\nit should disable them for action equal to BUS_NOTIFY_UNBOUND_DRIVER\n(instead of BUS_NOTIFY_ADD_DEVICE and BUS_NOTIFY_DEL_DEVICE,\nrespectively).  Make this function behave as appropriate.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "6d0e0e84f66d32c33511984dd3badd32364b863c",
      "tree": "215916af1632fbaff9d46676d14dafd52143d578",
      "parents": [
        "8440f4b19494467883f8541b7aa28c7bbf6ac92b"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sat Jun 18 22:42:09 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:20:20 2011 +0200"
      },
      "message": "PM: Fix async resume following suspend failure\n\nThe PM core doesn\u0027t handle suspend failures correctly when it comes to\nasynchronously suspended devices.  These devices are moved onto the\ndpm_suspended_list as soon as the corresponding async thread is\nstarted up, and they remain on the list even if they fail to suspend\nor the sleep transition is cancelled before they get suspended.  As a\nresult, when the PM core unwinds the transition, it tries to resume\nthe devices even though they were never suspended.\n\nThis patch (as1474) fixes the problem by adding a new \"is_suspended\"\nflag to dev_pm_info.  Devices are resumed only if the flag is set.\n\n[rjw:\n * Moved the dev-\u003epower.is_suspended check into device_resume(),\n   because we need to complete dev-\u003epower.completion and clear\n   dev-\u003epower.is_prepared too for devices whose\n   dev-\u003epower.is_suspended flags are unset.\n * Fixed __device_suspend() to avoid setting dev-\u003epower.is_suspended\n   if async_error is different from zero.]\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "f76b168b6f117a49d36307053e1acbe30580ea5b",
      "tree": "2aa0cc19b27764d8eb55ce85eaf226a60ce27756",
      "parents": [
        "78420884e680da8fbc3240de2d3106437042381e"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sat Jun 18 20:22:23 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 21 23:19:50 2011 +0200"
      },
      "message": "PM: Rename dev_pm_info.in_suspend to is_prepared\n\nThis patch (as1473) renames the \"in_suspend\" field in struct\ndev_pm_info to \"is_prepared\", in preparation for an upcoming change.\nThe new name is more descriptive of what the field really means.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "3b3eca3116861113ccc0e1ca3b98cb43598f46a7",
      "tree": "958427e5260ec95b04faaef18b5c08249ce8dfda",
      "parents": [
        "99592ba4a80edb84938e7e0cf71fdecff1ce67fd"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 07 23:34:58 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jun 07 23:34:58 2011 +0200"
      },
      "message": "PM / Runtime: Fix loops in pm_runtime_clk_notify()\n\nThe loops over connection ID strings in pm_runtime_clk_notify()\nshould actually iterate over the strings and not over the elements\nof the first of them, so make them behave as appropriate.\n\nThis fixes a regression introduced by commit 600b776eb39a13a28b090\n(OMAP1 / PM: Use generic clock manipulation routines for runtime PM).\n\nReported-and-tested-by: Janusz Krzysztofik \u003cjkrzyszt@tis.icnet.pl\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "6538df80194e305f1b78cafb556f4bb442f808b3",
      "tree": "72927d33d82f0e9502811abfc10d722a7423fff2",
      "parents": [
        "91e7c75ba93c48a82670d630b9daac92ff70095d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:21 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:21 2011 +0200"
      },
      "message": "PM: Introduce generic prepare and complete callbacks for subsystems\n\nIntroduce generic .prepare() and .complete() power management\ncallbacks, currently missing, that can be used by subsystems and\npower domains and export them.  Provide NULL definitions of all\nthe generic system sleep callbacks for CONFIG_PM_SLEEP unset.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "91e7c75ba93c48a82670d630b9daac92ff70095d",
      "tree": "b44ac3dca1d03cce99cccc3f4ce55d4b5475d373",
      "parents": [
        "c650da23d59d2c82307380414606774c6d49b8bd"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:00 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:26:00 2011 +0200"
      },
      "message": "PM: Allow drivers to allocate memory from .prepare() callbacks safely\n\nIf device drivers allocate substantial amounts of memory (above 1 MB)\nin their hibernate .freeze() callbacks (or in their legacy suspend\ncallbcks during hibernation), the subsequent creation of hibernate\nimage may fail due to the lack of memory.  This is the case, because\nthe drivers\u0027 .freeze() callbacks are executed after the hibernate\nmemory preallocation has been carried out and the preallocated amount\nof memory may be too small to cover the new driver allocations.\nUnfortunately, the drivers\u0027 .prepare() callbacks also are executed\nafter the hibernate memory preallocation has completed, so they are\nnot suitable for allocating additional memory either.  Thus the only\nway a driver can safely allocate memory during hibernation is to use\na hibernate/suspend notifier.  However, the notifiers are called\nbefore the freezing of user space and the drivers wanting to use them\nfor allocating additional memory may not know how much memory needs\nto be allocated at that point.\n\nTo let device drivers overcome this difficulty rework the hibernation\nsequence so that the memory preallocation is carried out after the\ndrivers\u0027 .prepare() callbacks have been executed, so that the\n.prepare() callbacks can be used for allocating additional memory\nto be used by the drivers\u0027 .freeze() callbacks.  Update documentation\nto match the new behavior of the code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "c650da23d59d2c82307380414606774c6d49b8bd",
      "tree": "b511dc2cda05ff910c745d49a309dc33445dc592",
      "parents": [
        "290c748725c170ed9a02522959ae67f528eefe98"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:25:10 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:25:10 2011 +0200"
      },
      "message": "PM: Remove CONFIG_PM_VERBOSE\n\nNow that we have CONFIG_DYNAMIC_DEBUG there is no need for yet\nanother flag causing dev_dbg() and pr_debug() statements in the\ncore PM code to produce output.  Moreover, CONFIG_PM_VERBOSE\ncauses so much output to be generated that it\u0027s not really useful\nand almost no one sets it.\n\nReferences: https://bugzilla.kernel.org/show_bug.cgi?id\u003d23182\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "290c748725c170ed9a02522959ae67f528eefe98",
      "tree": "a920190b75c7e054af24d850e79cc54f5cf53263",
      "parents": [
        "2d2a9163bd4f3ba301f8138c32e4790edc30156c",
        "72874daa5e9064c4e8d689e6a04b1e96f687f872"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:23:46 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:23:46 2011 +0200"
      },
      "message": "Merge branch \u0027power-domains\u0027 into for-linus\n\n* power-domains:\n  PM: Fix build issue in clock_ops.c for CONFIG_PM_RUNTIME unset\n  PM: Revert \"driver core: platform_bus: allow runtime override of dev_pm_ops\"\n  OMAP1 / PM: Use generic clock manipulation routines for runtime PM\n  PM / Runtime: Generic clock manipulation rountines for runtime PM (v6)\n  PM / Runtime: Add subsystem data field to struct dev_pm_info\n  OMAP2+ / PM: move runtime PM implementation to use device power domains\n  PM / Platform: Use generic runtime PM callbacks directly\n  shmobile: Use power domains for platform runtime PM\n  PM: Export platform bus type\u0027s default PM callbacks\n  PM: Make power domain callbacks take precedence over subsystem ones\n"
    },
    {
      "commit": "13e381365614855bf14c8ad68f9b65e3afd3dd2c",
      "tree": "b51f9b4eda56b768f2cc8f5646dd02a8d49d900c",
      "parents": [
        "13d53f8775c6a00b070a3eef6833795412eb7fcd"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed May 11 22:40:45 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:19:19 2011 +0200"
      },
      "message": "PM / Wakeup: Remove useless synchronize_rcu() call\n\nwakeup_source_add() adds an item into wakeup_sources list.\n\nThere is no need to call synchronize_rcu() at this point.\n\nIts only needed in wakeup_source_remove()\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e762318baae3002944d68220910aef7caffcd065",
      "tree": "01da9af1ae09f6723a3a5da06e452aba4c364817",
      "parents": [
        "a144c6a6c924aa1da04dd77fb84b89927354fdff"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat May 07 18:11:52 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 17 23:19:18 2011 +0200"
      },
      "message": "PM / Wakeup: Fix build warning related to the \"wakeup\" sysfs file\n\nThe \"wakeup\" device sysfs file is only created if CONFIG_PM_SLEEP\nis set, so put it under CONFIG_PM_SLEEP and make a build warning\nrelated to it go away.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "72874daa5e9064c4e8d689e6a04b1e96f687f872",
      "tree": "dd6b6926f8349845144a82ae5318d516431edfbd",
      "parents": [
        "2064af917b3ba7589070064ca4ed12cecd99a63c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 03 19:45:32 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon May 16 20:17:48 2011 +0200"
      },
      "message": "PM: Fix build issue in clock_ops.c for CONFIG_PM_RUNTIME unset\n\nFix a build issue in drivers/base/power/clock_ops.c occuring when\nCONFIG_PM_RUNTIME is not set.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "85eb8c8d0b0900c073b0e6f89979ac9c439ade1a",
      "tree": "ff3486424b60bb8de28ef76655d65cd0c1180449",
      "parents": [
        "1d2b71f61b6a10216274e27b717becf9ae101fc7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Apr 30 00:25:44 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Apr 30 00:25:44 2011 +0200"
      },
      "message": "PM / Runtime: Generic clock manipulation rountines for runtime PM (v6)\n\nMany different platforms and subsystems may want to disable device\nclocks during suspend and enable them during resume which is going to\nbe done in a very similar way in all those cases.  For this reason,\nprovide generic routines for the manipulation of device clocks during\nsuspend and resume.\n\nConvert the ARM shmobile platform to using the new routines.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4d27e9dcff00a6425d779b065ec8892e4f391661",
      "tree": "6602f1dcfad3e3065a1c081cf89f2d020976600d",
      "parents": [
        "fafc9929c668f8bae6dd1f109f33a86d2cb3c460"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Apr 29 00:35:50 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Apr 29 00:35:50 2011 +0200"
      },
      "message": "PM: Make power domain callbacks take precedence over subsystem ones\n\nChange the PM core\u0027s behavior related to power domains in such a way\nthat, if a power domain is defined for a given device, its callbacks\nwill be executed instead of and not in addition to the device\nsubsystem\u0027s PM callbacks.\n\nThe idea behind the initial implementation of power domains handling\nby the PM core was that power domain callbacks would be executed in\naddition to subsystem callbacks, so that it would be possible to\nextend the subsystem callbacks by using power domains.  It turns out,\nhowever, that this wouldn\u0027t be really convenient in some important\nsituations.\n\nFor example, there are systems in which power can only be removed\nfrom entire power domains.  On those systems it is not desirable to\nexecute device drivers\u0027 PM callbacks until it is known that power is\ngoing to be removed from the devices in question, which means that\nthey should be executed by power domain callbacks rather then by\nsubsystem (e.g. bus type) PM callbacks, because subsystems generally\nhave no information about what devices belong to which power domain.\nThus, for instance, if the bus type in question is the platform bus\ntype, its PM callbacks generally should not be called in addition to\npower domain callbacks, because they run device drivers\u0027 callbacks\nunconditionally if defined.\n\nWhile in principle the default subsystem PM callbacks, or a subset of\nthem, may be replaced with different functions, it doesn\u0027t seem\ncorrect to do so, because that would change the subsystem\u0027s behavior\nwith respect to all devices in the system, regardless of whether or\nnot they belong to any power domains.  Thus, the only remaining\noption is to make power domain callbacks take precedence over\nsubsystem callbacks.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "22110faf8c8e980013790e6a5214de32b3303730",
      "tree": "fb8239c3e4969cd43981eb10846802ca89b09224",
      "parents": [
        "5dd12af05ca6b7d052c06a9ca4ff755fdfa25ae4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Apr 26 11:33:09 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Apr 26 11:33:09 2011 +0200"
      },
      "message": "PM / Wakeup: Fix initialization of wakeup-related device sysfs files\n\nIt turns out that some PCI devices are only found to be\nwakeup-capable during registration, in which case, when\ndevice_set_wakeup_capable() is called, device_is_registered() already\nreturns \u0027true\u0027 for the given device, but dpm_sysfs_add() hasn\u0027t been\ncalled for it yet.  This leads to situations in which the device\u0027s\npower.can_wakeup flag is not set as requested because of failing\nwakeup_sysfs_add() and its wakeup-related sysfs files are not\ncreated, although they should be present.  This is a post-2.6.38\nregression introduced by commit cb8f51bdadb7969139c2e39c2defd4cde98c1\n(PM: Do not create wakeup sysfs files for devices that cannot wake\nup).\n\nTo work around this problem initialize the device\u0027s power.entry\nfield to an empty list head and make device_set_wakeup_capable()\ncheck if it is still empty before attempting to add the devices\nwakeup-related sysfs files with wakeup_sysfs_add().  Namely, if\npower.entry is still empty at this point, device_pm_add() hasn\u0027t been\ncalled yet for the device and its wakeup-related files will be\ncreated later, so device_set_wakeup_capable() doesn\u0027t have to create\nthem.\n\nReported-and-tested-by: Tino Keitel \u003ctino.keitel@tikei.de\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "1f112cee07b314e244ee9e71d9c1e6950dc13327",
      "tree": "e089e646c78701e37b4ebe00db36082e47cab2d5",
      "parents": [
        "b42282e5a05018ecdc0d63a4ad530b0999785912"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Apr 11 22:54:42 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Apr 11 22:54:42 2011 +0200"
      },
      "message": "PM / Hibernate: Introduce CONFIG_HIBERNATE_CALLBACKS\n\nXen save/restore is going to use hibernate device callbacks for\nquiescing devices and putting them back to normal operations and it\nwould need to select CONFIG_HIBERNATION for this purpose.  However,\nthat also would cause the hibernate interfaces for user space to be\nenabled, which might confuse user space, because the Xen kernels\ndon\u0027t support hibernation.  Moreover, it would be wasteful, as it\nwould make the Xen kernels include a substantial amount of code that\nthey would never use.\n\nTo address this issue introduce new power management Kconfig option\nCONFIG_HIBERNATE_CALLBACKS, such that it will only select the code\nthat is necessary for the hibernate device callbacks to work and make\nCONFIG_HIBERNATION select it.  Then, Xen save/restore will be able to\nselect CONFIG_HIBERNATE_CALLBACKS without dragging the entire\nhibernate code along with it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: Shriram Rajagopalan \u003crshriram@cs.ubc.ca\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "7ae496187876d264c712d7c102c45edb8eb41363",
      "tree": "b444c78a2104467259bb6ec34cc4a7815fa68185",
      "parents": [
        "a8b7228cdce9937ebc302a28db8599035e7b3c86"
      ],
      "author": {
        "name": "Nishanth Menon",
        "email": "nm@ti.com",
        "time": "Fri Feb 25 23:46:18 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:17 2011 +0100"
      },
      "message": "PM / OPP: opp_find_freq_exact() documentation fix\n\nopp_find_freq_exact() documentation has is_available instead\nof available. This also fixes warning with the kernel-doc:\nscripts/kernel-doc drivers/base/power/opp.c \u003e/dev/null\nWarning(drivers/base/power/opp.c:246): No description found for parameter \u0027available\u0027\nWarning(drivers/base/power/opp.c:246): Excess function parameter \u0027is_available\u0027 description in \u0027opp_find_freq_exact\u0027\n\nSigned-off-by: Nishanth Menon \u003cnm@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "9659cc0678b954f187290c6e8b247a673c5d37e1",
      "tree": "b9b391d2397b0583757dd1529a85d714dbb81697",
      "parents": [
        "cf4fb80ca3d591cae366ae8364e3c3f7a68bd249"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 18 23:20:21 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:17 2011 +0100"
      },
      "message": "PM: Make system-wide PM and runtime PM treat subsystems consistently\n\nThe code handling system-wide power transitions (eg. suspend-to-RAM)\ncan in theory execute callbacks provided by the device\u0027s bus type,\ndevice type and class in each phase of the power transition.  In\nturn, the runtime PM core code only calls one of those callbacks at\na time, preferring bus type callbacks to device type or class\ncallbacks and device type callbacks to class callbacks.\n\nIt seems reasonable to make them both behave in the same way in that\nrespect.  Moreover, even though a device may belong to two subsystems\n(eg. bus type and device class) simultaneously, in practice power\nmanagement callbacks for system-wide power transitions are always\nprovided by only one of them (ie. if the bus type callbacks are\ndefined, the device class ones are not and vice versa).  Thus it is\npossible to modify the code handling system-wide power transitions\nso that it follows the core runtime PM code (ie. treats the\nsubsystem callbacks as mutually exclusive).\n\nOn the other hand, the core runtime PM code will choose to execute,\nfor example, a runtime suspend callback provided by the device type\neven if the bus type\u0027s struct dev_pm_ops object exists, but the\nruntime_suspend pointer in it happens to be NULL.  This is confusing,\nbecause it may lead to the execution of callbacks from different\nsubsystems during different operations (eg. the bus type suspend\ncallback may be executed during runtime suspend of the device, while\nthe device type callback will be executed during system suspend).\n\nMake all of the power management code treat subsystem callbacks in\na consistent way, such that:\n(1) If the device\u0027s type is defined (eg. dev-\u003etype is not NULL)\n    and its pm pointer is not NULL, the callbacks from dev-\u003etype-\u003epm\n    will be used.\n(2) If dev-\u003etype is NULL or dev-\u003etype-\u003epm is NULL, but the device\u0027s\n    class is defined (eg. dev-\u003eclass is not NULL) and its pm pointer\n    is not NULL, the callbacks from dev-\u003eclass-\u003epm will be used.\n(3) If dev-\u003etype is NULL or dev-\u003etype-\u003epm is NULL and dev-\u003eclass is\n    NULL or dev-\u003eclass-\u003epm is NULL, the callbacks from dev-\u003ebus-\u003epm\n    will be used provided that both dev-\u003ebus and dev-\u003ebus-\u003epm are\n    not NULL.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nReasoning-sounds-sane-to: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "7538e3db6e015e890825fbd9f8659952896ddd5b",
      "tree": "01a6d8c97599474d9c5fc1ed0eb6f0addaec5652",
      "parents": [
        "6831c6edc7b272a08dd2a6c71bb183a48fe98ae6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Feb 16 21:53:17 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:16 2011 +0100"
      },
      "message": "PM: Add support for device power domains\n\nThe platform bus type is often used to handle Systems-on-a-Chip (SoC)\nwhere all devices are represented by objects of type struct\nplatform_device.  In those cases the same \"platform\" device driver\nmay be used with multiple different system configurations, but the\nactions needed to put the devices it handles into a low-power state\nand back into the full-power state may depend on the design of the\ngiven SoC.  The driver, however, cannot possibly include all the\ninformation necessary for the power management of its device on all\nthe systems it is used with.  Moreover, the device hierarchy in its\ncurrent form also is not suitable for representing this kind of\ninformation.\n\nThe patch below attempts to address this problem by introducing\nobjects of type struct dev_power_domain that can be used for\nrepresenting power domains within a SoC.  Every struct\ndev_power_domain object provides a sets of device power\nmanagement callbacks that can be used to perform what\u0027s needed for\ndevice power management in addition to the operations carried out by\nthe device\u0027s driver and subsystem.\n\nNamely, if a struct dev_power_domain object is pointed to by the\npwr_domain field in a struct device, the callbacks provided by its\nops member will be executed in addition to the corresponding\ncallbacks provided by the device\u0027s subsystem and driver during all\npower transitions.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-and-acked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "e8665002477f0278f84f898145b1f141ba26ee26",
      "tree": "f22348cc3c0cf341216d422e01d2ac033973a0a5",
      "parents": [
        "88a6f33e4d7143f94f8e787fa4065ac873507984"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Feb 12 01:42:41 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:16 2011 +0100"
      },
      "message": "PM: Allow pm_runtime_suspend() to succeed during system suspend\n\nThe dpm_prepare() function increments the runtime PM reference\ncounters of all devices to prevent pm_runtime_suspend() from\nexecuting subsystem-level callbacks.  However, this was supposed to\nguard against a specific race condition that cannot happen, because\nthe power management workqueue is freezable, so pm_runtime_suspend()\ncan only be called synchronously during system suspend and we can\nrely on subsystems and device drivers to avoid doing that\nunnecessarily.\n\nMake dpm_prepare() drop the runtime PM reference to each device\nafter making sure that runtime resume is not pending for it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "aa33860158114d0df3c7997bc1dd41c0168e1c2a",
      "tree": "a1ae98c42232835780618b0a5dea78c5478ed58c",
      "parents": [
        "196ec243224bb38fc5c41d9fa4050f70708b7fb4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 11 00:06:54 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:15 2011 +0100"
      },
      "message": "PM: Remove CONFIG_PM_OPS\n\nAfter redefining CONFIG_PM to depend on (CONFIG_PM_SLEEP ||\nCONFIG_PM_RUNTIME) the CONFIG_PM_OPS option is redundant and can be\nreplaced with CONFIG_PM.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "cb8f51bdadb7969139c2e39c2defd4cde98c1ea8",
      "tree": "a6d6e20878460d50b8f61d5fe3237818c54065eb",
      "parents": [
        "4681b17154b3fd81f898802262985f662344e6ed"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Feb 08 23:26:02 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:14 2011 +0100"
      },
      "message": "PM: Do not create wakeup sysfs files for devices that cannot wake up\n\nCurrently, wakeup sysfs attributes are created for all devices,\nregardless of whether or not they are wakeup-capable.  This is\nexcessive and complicates wakeup device identification from user\nspace (i.e. to identify wakeup-capable devices user space has to read\n/sys/devices/.../power/wakeup for all devices and see if they are not\nempty).\n\nFix this issue by avoiding to create wakeup sysfs files for devices\nthat cannot wake up the system from sleep states (i.e. whose\npower.can_wakeup flags are unset during registration) and modify\ndevice_set_wakeup_capable() so that it adds (or removes) the relevant\nsysfs attributes if a device\u0027s wakeup capability status is changed.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0295a34d61f14522fddb26856191520d2e1d7e77",
      "tree": "6ad5f6f7c467f512d36f3955f629aef1fa667c11",
      "parents": [
        "790c7885a4b2105e41f7a80b035fdb78e406154f"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Mon Jan 31 11:07:14 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 15 00:43:14 2011 +0100"
      },
      "message": "PM: Use appropriate printk() priority level in trace.c\n\nprintk()s without a priority level default to KERN_WARNING. To reduce\nnoise at KERN_WARNING, this patch sets the priority level appriopriately\nfor unleveled printks()s. This should be useful to folks that look at\ndmesg warnings closely.\n\nChanged these messages to pr_info().\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    }
  ],
  "next": "790c7885a4b2105e41f7a80b035fdb78e406154f"
}
