)]}'
{
  "log": [
    {
      "commit": "250f6715a4112d6686670c5a62ceb9305da94616",
      "tree": "ee1c9b41ed1fed8174efb312421902f19c877e8c",
      "parents": [
        "11bcb32848ddb5ab28f09f142b625e2ba4d55c4c",
        "313162d0b83836e2f57e51b9b8650fb4b9c396ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "message": "Merge tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/device.h\u003e avoidance patches from Paul Gortmaker:\n \"Nearly every subsystem has some kind of header with a proto like:\n\n\tvoid foo(struct device *dev);\n\n  and yet there is no reason for most of these guys to care about the\n  sub fields within the device struct.  This allows us to significantly\n  reduce the scope of headers including headers.  For this instance, a\n  reduction of about 40% is achieved by replacing the include with the\n  simple fact that the device is some kind of a struct.\n\n  Unlike the much larger module.h cleanup, this one is simply two\n  commits.  One to fix the implicit \u003clinux/device.h\u003e users, and then one\n  to delete the device.h includes from the linux/include/ dir wherever\n  possible.\"\n\n* tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  device.h: audit and cleanup users in main include dir\n  device.h: cleanup users outside of linux/include (C files)\n"
    },
    {
      "commit": "98e8bdafeb4728a6af7bbcbcc3984967d1cf2bc1",
      "tree": "8c8df356d14b88998d20a32b5fee225c958cd95a",
      "parents": [
        "0f0cc1687d7e41ac59e4eaf057aa2fb9e48a9dd3",
        "18dd2ece3cde14cfd42e95a89eb14016699a5f15"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 19 10:39:04 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 19 10:39:04 2012 +0100"
      },
      "message": "Merge branch \u0027pm-domains\u0027\n\n* pm-domains:\n  PM / Domains: Check domain status during hibernation restore of devices\n"
    },
    {
      "commit": "18dd2ece3cde14cfd42e95a89eb14016699a5f15",
      "tree": "1897c7ac0337254058e4bfc7709bb8b19996da24",
      "parents": [
        "57d13370cfaf6017c68981e66ff5b3bf20a2705c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 19 10:38:14 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 19 10:38:14 2012 +0100"
      },
      "message": "PM / Domains: Check domain status during hibernation restore of devices\n\nPower domains that were off before hibernation shouldn\u0027t be turned on\nduring device restore, so prevent that from happening.\n\nThis change fixes up commit 65533bbf63b4f37723fdfedc73d0653958973323\n\n    PM / Domains: Fix hibernation restore of devices, v2\n\nthat didn\u0027t include it by mistake.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "62dc7c02c31c2cc66c46cc8761d421c60bb07a6f",
      "tree": "73068d760963dc8e154a4e54025e41a529c67b83",
      "parents": [
        "cf3bbcaf09cb158590d1a9e0c0a6796d4fe92452",
        "57d13370cfaf6017c68981e66ff5b3bf20a2705c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 16 21:50:08 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 16 21:50:08 2012 +0100"
      },
      "message": "Merge branch \u0027pm-domains\u0027\n\n* pm-domains:\n  PM / shmobile: Make MTU2 driver use pm_genpd_dev_always_on()\n  PM / shmobile: Make CMT driver use pm_genpd_dev_always_on()\n  PM / shmobile: Make TMU driver use pm_genpd_dev_always_on()\n  PM / Domains: Introduce \"always on\" device flag\n  PM / Domains: Fix hibernation restore of devices, v2\n  PM / Domains: Fix handling of wakeup devices during system resume\n"
    },
    {
      "commit": "59fb53ea75eef4aa029cf31c88cdacec2f7b794b",
      "tree": "fb2ee7f8e99a72fe858e76ba7f2dbbc0390f3128",
      "parents": [
        "ed819e3b964bba8bfae8e65d4d55a3f345f8da16",
        "efe6a8ad7fc55b350ce968cae4c757d35e986285"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 16 21:49:24 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 16 21:49:24 2012 +0100"
      },
      "message": "Merge branch \u0027pm-qos\u0027\n\n* pm-qos:\n  sh_mmcif / PM: Use PM QoS latency constraint\n  tmio_mmc / PM: Use PM QoS latency constraint\n  PM / QoS: Make it possible to expose PM QoS latency constraints\n"
    },
    {
      "commit": "1e78a0c7fc92aee076965d516cf54475c39e9894",
      "tree": "a1a47b1adee44700480ff35d3f85a5ae8fdae390",
      "parents": [
        "65533bbf63b4f37723fdfedc73d0653958973323"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 13 22:39:48 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 16 21:44:59 2012 +0100"
      },
      "message": "PM / Domains: Introduce \"always on\" device flag\n\nThe TMU device on the Mackerel board belongs to the A4R power domain\nand loses power when the domain is turned off.  Unfortunately, the\nTMU driver is not prepared to cope with such situations and crashes\nthe system when that happens.  To work around this problem introduce\na new helper function, pm_genpd_dev_always_on(), allowing a device\ndriver to mark its device as \"always on\" in case it belongs to a PM\ndomain, which will make the generic PM domains core code avoid\npowering off the domain containing the device, both at run time and\nduring system suspend.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: Simon Horman \u003chorms@verge.net.au\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "65533bbf63b4f37723fdfedc73d0653958973323",
      "tree": "e2a16b9b0966ae6aea1970fe377c70796a281c31",
      "parents": [
        "cc85b20780562d404e18a47b9b55b4a5102ae53e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 13 22:39:37 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 16 21:44:48 2012 +0100"
      },
      "message": "PM / Domains: Fix hibernation restore of devices, v2\n\nDuring resume from hibernation pm_genpd_restore_noirq() should only\npower off domains whose suspend_power_off flags are set once and\nnot every time it is called for a device in the given domain.\nMoreover, it shouldn\u0027t decrement genpd-\u003esuspended_count, because\nthat field is not touched during device freezing and therefore it is\nalways equal to 0 when pm_genpd_restore_noirq() runs for the first\ndevice in the given domain.\n\nThis means pm_genpd_restore_noirq() may use genpd-\u003esuspended_count\nto determine whether or not it it has been called for the domain in\nquestion already in this cycle (it only needs to increment that\nfield every time it runs for this purpose) and whether or not it\nshould check if the domain needs to be powered off.  For that to\nwork, though, pm_genpd_prepare() has to clear genpd-\u003esuspended_count\nwhen it runs for the first device in the given domain (in which case\nthat flag need not be cleared during domain initialization).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "cc85b20780562d404e18a47b9b55b4a5102ae53e",
      "tree": "e7d481ea6f435e90c59cda9433fd68d944070c19",
      "parents": [
        "b642631d38c28fefd1232a6b96713eb54b60130d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 13 22:39:31 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Mar 16 21:44:41 2012 +0100"
      },
      "message": "PM / Domains: Fix handling of wakeup devices during system resume\n\nDuring system suspend pm_genpd_suspend_noirq() checks if the given\ndevice is in a wakeup path (i.e. it appears to be needed for one or\nmore wakeup devices to work or is a wakeup device itself) and if it\nneeds to be \"active\" for wakeup to work.  If that is the case, the\nfunction returns 0 without incrementing the device domain\u0027s counter\nof suspended devices and without executing genpd_stop_dev() for the\ndevice.  In consequence, the device is not stopped (e.g. its clock\nisn\u0027t disabled) and power is always supplied to its domain in the\nresulting system sleep state.\n\nHowever, pm_genpd_resume_noirq() doesn\u0027t repeat that check and it\nruns genpd_start_dev() and decrements the domain\u0027s counter of\nsuspended devices even for the wakeup device that weren\u0027t stopped by\npm_genpd_suspend_noirq().  As a result, the start callback may be run\nunnecessarily for them and their domains\u0027 counters of suspended\ndevices may become negative.  Both outcomes aren\u0027t desirable, so fix\npm_genpd_resume_noirq() to look for wakeup devices that might not be\nstopped by during system suspend.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: Simon Horman \u003chorms@verge.net.au\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "85dc0b8a4019e38ad4fd0c008f89a5c241805ac2",
      "tree": "a73c5864d8ce4a6845e616ade7b8107e181279b6",
      "parents": [
        "a9b542ee607a8afafa9447292394959fc84ea650"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 13 01:01:39 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Mar 13 22:37:14 2012 +0100"
      },
      "message": "PM / QoS: Make it possible to expose PM QoS latency constraints\n\nA runtime suspend of a device (e.g. an MMC controller) belonging to\na power domain or, in a more complicated scenario, a runtime suspend\nof another device in the same power domain, may cause power to be\nremoved from the entire domain.  In that case, the amount of time\nnecessary to runtime-resume the given device (e.g. the MMC\ncontroller) is often substantially greater than the time needed to\nrun its driver\u0027s runtime resume callback.  That may hurt performance\nin some situations, because user data may need to wait for the\ndevice to become operational, so we should make it possible to\nprevent that from happening.\n\nFor this reason, introduce a new sysfs attribute for devices,\npower/pm_qos_resume_latency_us, allowing user space to specify the\nupper bound of the time necessary to bring the (runtime-suspended)\ndevice up after the resume of it has been requested.  However, make\nthat attribute appear only for the devices whose drivers declare\nsupport for it by calling the (new) dev_pm_qos_expose_latency_limit()\nhelper function with the appropriate initial value of the attribute.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nReviewed-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nAcked-by: Linus Walleij \u003clinus.walleij@linaro.org\u003e\n"
    },
    {
      "commit": "51990e825431089747f8896244b5c17d3a6423f1",
      "tree": "5c1ef975ab55734a45444b629855a51f09775b93",
      "parents": [
        "dcd6c92267155e70a94b3927bce681ce74b80d1f"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Jan 22 11:23:42 2012 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Mar 11 14:27:37 2012 -0400"
      },
      "message": "device.h: cleanup users outside of linux/include (C files)\n\nFor files that are actively using linux/device.h, make sure\nthat they call it out.  This will allow us to clean up some\nof the implicit uses of linux/device.h within include/*\nwithout introducing build regressions.\n\nYes, this was created by \"cheating\" -- i.e. the headers were\ncleaned up, and then the fallout was found and fixed, and then\nthe two commits were reordered.  This ensures we don\u0027t introduce\nbuild regressions into the git history.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "48ed00031681c373ff81e78fd248710fe4cddda0",
      "tree": "dd90809d6017924ee528114a4205ab8cfd8422af",
      "parents": [
        "643161ace2a7624fd0106ede12ae43bcbbfc1de0",
        "b642631d38c28fefd1232a6b96713eb54b60130d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Mar 04 23:11:20 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Mar 04 23:11:20 2012 +0100"
      },
      "message": "Merge branch \u0027pm-domains\u0027\n\n* pm-domains:\n  PM / Domains: Fix include for PM_GENERIC_DOMAINS\u003dn case\n  PM / Domains: Provide a dummy dev_gpd_data() when generic domains are not used\n  PM / Domains: Run late/early device suspend callbacks at the right time\n  ARM: EXYNOS: Hook up power domains to generic power domain infrastructure\n  PM / Domains: Add OF support\n"
    },
    {
      "commit": "8671bbc1bd0442ef0eab27f7d56216431c490820",
      "tree": "23bc127d43be672ab82b9602e21825522d62a28a",
      "parents": [
        "05b4877f6a4f1ba4952d1222213d262bf8c132b7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Feb 21 23:47:56 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Mar 04 23:08:46 2012 +0100"
      },
      "message": "PM / Sleep: Add more wakeup source initialization routines\n\nThe existing wakeup source initialization routines are not\nparticularly useful for wakeup sources that aren\u0027t created by\nwakeup_source_create(), because their users have to open code\nfilling the objects with zeros and setting their names.  For this\nreason, introduce routines that can be used for initializing, for\nexample, static wakeup source objects.\n\nRequested-by: Arve Hjønnevåg \u003carve@android.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4782e1654bdbd30cf307da090b3c4f70157477cb",
      "tree": "72305fb2e3fff719330f5302dda785c044e25575",
      "parents": [
        "da863cddd831b0f4bf2d067f8b75254f1be94590"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 17 23:39:39 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Mar 04 23:08:27 2012 +0100"
      },
      "message": "PM / Sleep: Make __pm_stay_awake() delete wakeup source timers\n\nIf __pm_stay_awake() is called after __pm_wakeup_event() for the same\nwakep source object before its timer expires, it won\u0027t cancel the\ntimer, so the wakeup source will be deactivated from the timer\nfunction as scheduled by __pm_wakeup_event().  In that case\n__pm_stay_awake() doesn\u0027t have any effect beyond incrementing\nthe wakeup source\u0027s event_count field, although it should cancel\nthe timer and make the wakeup source stay active until __pm_relax()\nis called for it.\n\nTo fix this problem make __pm_stay_awake() delete the wakeup source\u0027s\ntimer and ensure that it won\u0027t be deactivated from the timer funtion\nafterwards by clearing its timer_expires field.\n\nReported-by: Arve Hjønnevåg \u003carve@android.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "da863cddd831b0f4bf2d067f8b75254f1be94590",
      "tree": "f217486238bec611a0c08b88ae64249ba60a544e",
      "parents": [
        "d94aff87826ee6aa43032f4c0263482913f4e2c8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 17 23:39:33 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Mar 04 23:08:14 2012 +0100"
      },
      "message": "PM / Sleep: Fix race conditions related to wakeup source timer function\n\nIf __pm_wakeup_event() has been used (with a nonzero timeout) to\nreport a wakeup event and then __pm_relax() immediately followed by\n__pm_stay_awake() is called or __pm_wakeup_event() is called once\nagain for the same wakeup source object before its timer expires, the\ntimer function pm_wakeup_timer_fn() may still be run as a result of\nthe previous __pm_wakeup_event() call.  In either of those cases it\nmay mistakenly deactivate the wakeup source that has just been\nactivated.\n\nTo prevent that from happening, make wakeup_source_deactivate()\nclear the wakeup source\u0027s timer_expires field and make\npm_wakeup_timer_fn() check if timer_expires is different from zero\nand if it\u0027s not in future before calling wakeup_source_deactivate()\n(if timer_expires is 0, it means that the timer has just been\ndeleted and if timer_expires is in future, it means that the timer\nhas just been rescheduled to a different time).\n\nReported-by: Arve Hjønnevåg \u003carve@android.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d94aff87826ee6aa43032f4c0263482913f4e2c8",
      "tree": "716777b9f6e3642d4fcd11e14000da92773b1edb",
      "parents": [
        "69f1d475cc80c55121852b3030873cdd407fd31c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Feb 17 23:39:20 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Mar 04 23:08:02 2012 +0100"
      },
      "message": "PM / Sleep: Fix possible infinite loop during wakeup source destruction\n\nIf wakeup_source_destroy() is called for an active wakeup source that\nis never deactivated, it will spin forever.  To prevent that from\nhappening, make wakeup_source_destroy() call __pm_relax() for the\nwakeup source object it is about to free instead of waiting until\nit will be deactivated by someone else.  However, for this to work\nit also needs to make sure that the timer function will not be\nexecuted after the final __pm_relax(), so make it run\ndel_timer_sync() on the wakeup source\u0027s timer beforehand.\n\nAdditionally, update the kerneldoc comment to document the\nrequirement that __pm_stay_awake() and __pm_wakeup_event() must not\nbe run in parallel with wakeup_source_destroy().\n\nReported-by: Arve Hjønnevåg \u003carve@android.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "7c95149b7f1f61201b12c73c4862a41bf2428961",
      "tree": "33917dbbd8b8cbbf917262e42baf3a528b752149",
      "parents": [
        "a556d5b58345ccf51826b9ceac078072f830738b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Feb 11 00:00:11 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Feb 13 16:25:51 2012 +0100"
      },
      "message": "PM / Sleep: Initialize wakeup source locks in wakeup_source_add()\n\nInitialize wakeup source locks in wakeup_source_add() instead of\nwakeup_source_create(), because otherwise the locks of the wakeup\nsources that haven\u0027t been allocated with wakeup_source_create()\naren\u0027t initialized and handled properly.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "dcaad77a8074b6de58e745546bc543d5538404f2",
      "tree": "5f988393b64f1a8053f2f5d0be7113e991d40886",
      "parents": [
        "0496c8ae366724a0a2136cec09a2e277e782c126",
        "91cfbd4ee0875f8a826731983378670012ba6e01"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Feb 01 22:18:43 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Feb 01 22:18:43 2012 +0100"
      },
      "message": "Merge branch \u0027v3.4-for-rafael\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into pm-domains\n\n* \u0027v3.4-for-rafael\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:\n  ARM: EXYNOS: Hook up power domains to generic power domain infrastructure\n  PM / Domains: Add OF support\n"
    },
    {
      "commit": "0496c8ae366724a0a2136cec09a2e277e782c126",
      "tree": "29fce6f2a0b5e445b01f4c471f1c9d3aeead3d40",
      "parents": [
        "e470d06655e00749f6f9372e4fa4f20cea7ed7c5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:39:02 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:39:02 2012 +0100"
      },
      "message": "PM / Domains: Run late/early device suspend callbacks at the right time\n\nAfter the introduction of the late/early phases of device\nsuspend/resume during system-wide power transitions it is possible\nto make the generic PM domains code execute its default late/early\ndevice suspend/resume callbacks during those phases instead of the\ncorresponding _noirq phases.  The _noirq device suspend/resume\nphases were only used for executing those callbacks, because this\nwas the only way it could be done, but now we can do better.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e470d06655e00749f6f9372e4fa4f20cea7ed7c5",
      "tree": "63e56f01b27ee9693bfb9d9127e4763ba0937057",
      "parents": [
        "cf579dfb82550e34de7ccf3ef090d8b834ccd3a9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:41 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:41 2012 +0100"
      },
      "message": "PM / Sleep: Introduce generic callbacks for new device PM phases\n\nIntroduce generic subsystem callbacks for the new phases of device\nsuspend/resume during system power transitions: \"late suspend\",\n\"early resume\", \"late freeze\", \"early thaw\", \"late poweroff\",\n\"early restore\".\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "cf579dfb82550e34de7ccf3ef090d8b834ccd3a9",
      "tree": "764ed72670c18c86d3eb9650025c56d661a31315",
      "parents": [
        "181e9bdef37bfcaa41f3ab6c948a2a0d60a268b5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:29 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jan 29 20:38:29 2012 +0100"
      },
      "message": "PM / Sleep: Introduce \"late suspend\" and \"early resume\" of devices\n\nThe current device suspend/resume phases during system-wide power\ntransitions appear to be insufficient for some platforms that want\nto use the same callback routines for saving device states and\nrelated operations during runtime suspend/resume as well as during\nsystem suspend/resume.  In principle, they could point their\n.suspend_noirq() and .resume_noirq() to the same callback routines\nas their .runtime_suspend() and .runtime_resume(), respectively,\nbut at least some of them require device interrupts to be enabled\nwhile the code in those routines is running.\n\nIt also makes sense to have device suspend-resume callbacks that will\nbe executed with runtime PM disabled and with device interrupts\nenabled in case someone needs to run some special code in that\ncontext during system-wide power transitions.\n\nApart from this, .suspend_noirq() and .resume_noirq() were introduced\nas a workaround for drivers using shared interrupts and failing to\nprevent their interrupt handlers from accessing suspended hardware.\nIt appears to be better not to use them for other porposes, or we may\nhave to deal with some serious confusion (which seems to be happening\nalready).\n\nFor the above reasons, introduce new device suspend/resume phases,\n\"late suspend\" and \"early resume\" (and analogously for hibernation)\nwhose callback will be executed with runtime PM disabled and with\ndevice interrupts enabled and whose callback pointers generally may\npoint to runtime suspend/resume routines.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "c8aa130b74cc5b112cb2b119d3b477abaaf6e5b2",
      "tree": "80ca3b93767b0aec09ed566924c196033ad12b49",
      "parents": [
        "dcd6c92267155e70a94b3927bce681ce74b80d1f"
      ],
      "author": {
        "name": "Thomas Abraham",
        "email": "thomas.abraham@linaro.org",
        "time": "Fri Jan 27 15:22:07 2012 +0900"
      },
      "committer": {
        "name": "Kukjin Kim",
        "email": "kgene.kim@samsung.com",
        "time": "Fri Jan 27 15:22:07 2012 +0900"
      },
      "message": "PM / Domains: Add OF support\n\nA device node pointer is added to generic pm domain structure to associate\nthe domain with a node in the device tree. The platform code parses the\ndevice tree to find available nodes representing the generic power domain,\ninstantiates the available domains and initializes them by calling\npm_genpd_init().\n\nNodes representing the devices include a phandle of the power domain to\nwhich it belongs. As these devices get instantiated, the driver code\ncheckes for availability of a power domain phandle, converts the phandle\nto a device node and uses the new pm_genpd_of_add_device() api to\nassociate the device with a power domain.\n\npm_genpd_of_add_device() runs through its list of registered power domains\nand matches the OF node of the domain with the one specified as the\nparameter. If a match is found, the device is associated with the matched\ndomain.\n\nCc: Rob Herring \u003crob.herring@calxeda.com\u003e\nCc: Grant Likely \u003cgrant.likely@secretlab.ca\u003e\nSigned-off-by: Thomas Abraham \u003cthomas.abraham@linaro.org\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Kukjin Kim \u003ckgene.kim@samsung.com\u003e\n"
    },
    {
      "commit": "e59a8db8d9b7c02e0bbefbeb18a3836288a97b8a",
      "tree": "6d507257fb36ecccdaed806869934419ae890506",
      "parents": [
        "0f1d6986bae57b6d11e2c9ce5e66b6c6b0e3684d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 14 00:39:36 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 14 00:39:36 2012 +0100"
      },
      "message": "PM / Domains: Skip governor functions for CONFIG_PM_RUNTIME unset\n\nThe governor functions in drivers/base/power/domain_governor.c\nare only used if CONFIG_PM_RUNTIME is set and they refer to data\nstructures that are only present in that case.  For this reason,\nthey shouldn\u0027t be compiled at all when CONFIG_PM_RUNTIME is not set.\n\nReported-by: Kukjin Kim \u003ckgene.kim@samsung.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0f1d6986bae57b6d11e2c9ce5e66b6c6b0e3684d",
      "tree": "abf2a89b7c4c60e2165a347fcbf2dd892c12e8bb",
      "parents": [
        "dae5cbc2440b1d21a15715d0f1fb20f632dd38ee"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 14 00:39:25 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 14 00:39:25 2012 +0100"
      },
      "message": "PM / Domains: Fix build for CONFIG_PM_SLEEP unset\n\nSome callback functions defined in drivers/base/power/domain.c are\nonly necessary if CONFIG_PM_SLEEP is set and they call some other\nfunctions that are only available in that case.  For this reason,\nthey should not be compiled at all when CONFIG_PM_SLEEP is not set.\n\nReported-by: Magnus Damm \u003cdamm@opensource.se\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "6d10463b2fa1b6b81091661c1917f26436b38c53",
      "tree": "1fb5be10a08a3178fb644c9eb5a2a31423985cfa",
      "parents": [
        "0015afaa1f818d38ea9f8e81a84a6aeeca5fdaf0",
        "a8cf27bee7adc40d91956cf1b9e44d7001f93aba"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 25 23:43:11 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 25 23:43:11 2011 +0100"
      },
      "message": "Merge branch \u0027pm-domains\u0027 into pm-for-linus\n\n* pm-domains:\n  PM / shmobile: Allow the A4R domain to be turned off at run time\n  PM / input / touchscreen: Make st1232 use device PM QoS constraints\n  PM / QoS: Introduce dev_pm_qos_add_ancestor_request()\n  PM / shmobile: Remove the stay_on flag from SH7372\u0027s PM domains\n  PM / shmobile: Don\u0027t include SH7372\u0027s INTCS in syscore suspend/resume\n  PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode\n  ARM: S3C64XX: Implement basic power domain support\n  PM / shmobile: Use common always on power domain governor\n  PM / Domains: Provide an always on power domain governor\n  PM / Domains: Fix default system suspend/resume operations\n  PM / Domains: Make it possible to assign names to generic PM domains\n  PM / Domains: fix compilation failure for CONFIG_PM_GENERIC_DOMAINS unset\n  PM / Domains: Automatically update overoptimistic latency information\n  PM / Domains: Add default power off governor function (v4)\n  PM / Domains: Add device stop governor function (v4)\n  PM / Domains: Rework system suspend callback routines (v2)\n  PM / Domains: Introduce \"save/restore state\" device callbacks\n  PM / Domains: Make it possible to use per-device domain callbacks\n"
    },
    {
      "commit": "0015afaa1f818d38ea9f8e81a84a6aeeca5fdaf0",
      "tree": "8f8279cf0117d210230ef9fcacb05f960bf6f8f5",
      "parents": [
        "b7ba68c4a072c9aa8f04b8cf7838b6cd2f48d918",
        "00dc9ad18d707f36b2fb4af98fd2cf0548d2b258"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 25 23:43:05 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 25 23:43:05 2011 +0100"
      },
      "message": "Merge branch \u0027pm-runtime\u0027 into pm-for-linus\n\n* pm-runtime:\n  PM / Runtime: Use device PM QoS constraints (v2)\n"
    },
    {
      "commit": "40a5f8be2f482783de0f1f0fe856660e489734a8",
      "tree": "69c29c6d0fb16829fba230d800901611cbc7852a",
      "parents": [
        "767c0f3aed74be56f268709f5347e6c86d52b408"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 23 01:23:52 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 25 23:39:41 2011 +0100"
      },
      "message": "PM / QoS: Introduce dev_pm_qos_add_ancestor_request()\n\nSome devices, like the I2C controller on SH7372, are not\nnecessary for providing power to their children or forwarding\nwakeup signals (and generally interrupts) from them.  They are\nonly needed by their children when there\u0027s some data to transfer,\nso they may be suspended for the majority of time and resumed\non demand, when the children have data to send or receive.  For this\npurpose, however, their power.ignore_children flags have to be set,\nor the PM core wouldn\u0027t allow them to be suspended while their\nchildren were active.\n\nUnfortunately, in some situations it may take too much time to\nresume such devices so that they can assist their children in\ntransferring data.  For example, if such a device belongs to a PM\ndomain which goes to the \"power off\" state when that device is\nsuspended, it may take too much time to restore power to the\ndomain in response to the request from one of the device\u0027s\nchildren.  In that case, if the parent\u0027s resume time is critical,\nthe domain should stay in the \"power on\" state, although it still may\nbe desirable to power manage the parent itself (e.g. by manipulating\nits clock).\n\nIn general, device PM QoS may be used to address this problem.\nNamely, if the device\u0027s children added PM QoS latency constraints\nfor it, they would be able to prevent it from being put into an\noverly deep low-power state.  However, in some cases the devices\nneeding to be serviced are not the immediate children of a\n\"children-ignoring\" device, but its grandchildren or even less\ndirect descendants.  In those cases, the entity wanting to add a\nPM QoS request for a given device\u0027s ancestor that ignores its\nchildren will have to find it in the first place, so introduce a new\nhelper function that may be used to achieve that.  This function,\ndev_pm_qos_add_ancestor_request(), will search for the first\nancestor of the given device whose power.ignore_children flag is\nset and will add a device PM QoS latency request for that ancestor\non behalf of the caller.  The request added this way may be removed\nwith the help of dev_pm_qos_remove_request() in the future, like\nany other device PM QoS latency request.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "90363ddf0a1a4dccfbb8d0c10b8f488bc7fa69f8",
      "tree": "d64b594caef2df2cd9e165089e277d09e2b089d6",
      "parents": [
        "8114ab763b2d297c8af49bf380a093d76e929692"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 18 00:34:42 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 22:03:32 2011 +0100"
      },
      "message": "PM: Drop generic_subsys_pm_ops\n\nSince the PM core is now going to execute driver callbacks directly\nif the corresponding subsystem callbacks are not present,\nforward-only subsystem callbacks (i.e. such that only execute the\ncorresponding driver callbacks) are not necessary any more.  Thus\nit is possible to remove generic_subsys_pm_ops, because the only\ncallback in there that is not forward-only, .runtime_idle, is not\nreally used by the only user of generic_subsys_pm_ops, which is\nvio_bus_type.\n\nHowever, the generic callback routines themselves cannot be removed\nfrom generic_ops.c, because they are used individually by a number\nof subsystems.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "35cd133c6130c1eb52806808abee9d62e6854a27",
      "tree": "2f06e7f0288b9d4a3785a202f6480928113d8d5c",
      "parents": [
        "9cf519d1c15fa05a538c2b3963c5f3903daf765a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 18 00:34:13 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 22:01:05 2011 +0100"
      },
      "message": "PM: Run the driver callback directly if the subsystem one is not there\n\nMake the PM core execute driver PM callbacks directly if the\ncorresponding subsystem callbacks are not present.\n\nThere are three reasons for doing that.  First, it reflects the\nbehavior of drivers/base/dd.c:really_probe() that runs the driver\u0027s\n.probe() callback directly if the bus type\u0027s one is not defined, so\nthis change will remove one arbitrary difference between the PM core\nand the remaining parts of the driver core.  Second, it will allow\nsome subsystems, whose PM callbacks don\u0027t do anything except for\nexecuting driver callbacks, to be simplified quite a bit by removing\nthose \"forward-only\" callbacks.  Finally, it will allow us to remove\none level of indirection in the system suspend and resume code paths\nwhere it is not necessary, which is going to lead to less debug noise\nwith initcall_debug passed in the kernel command line (messages won\u0027t\nbe printed for driverless devices whose subsystems don\u0027t provide\nPM callbacks among other things).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "9cf519d1c15fa05a538c2b3963c5f3903daf765a",
      "tree": "44500e7eba98e682663ab253e4ba7edff7e9f875",
      "parents": [
        "b00f4dc5ff022cb9cbaffd376d9454d7fa1e496f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 18 00:34:01 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Dec 21 22:00:56 2011 +0100"
      },
      "message": "PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers\n\nMake the pm_op() and pm_noirq_op() functions return pointers to\nappropriate callbacks instead of executing those callbacks and\nreturning their results.\n\nThis change is required for a subsequent modification that will\nexecute the corresponding driver callback if the subsystem\ncallback returned by either pm_op(), or pm_noirq_op() is NULL.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "1eac8111e0763853266a171ce11214da3a347a0a",
      "tree": "9d4cdb27ac6cf063d14b585c84c1ba5c6558a61b",
      "parents": [
        "8ca6d9bcc8d33c592c0855b4b1481bc723ac7e85"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 15 20:59:30 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 18 00:27:43 2011 +0100"
      },
      "message": "PM / Sleep: Merge internal functions in generic_ops.c\n\nAfter the change that removed the code related to runtime PM\nfrom __pm_generic_call() and __pm_generic_resume() these two\nfunctions need not be separate any more, so merge them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8ca6d9bcc8d33c592c0855b4b1481bc723ac7e85",
      "tree": "2a80c117586c12bf475cd828ffdeeb67ba9e647f",
      "parents": [
        "cf007e3526a785a95a738d5a8fba44f1f4fe33e0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 15 20:59:23 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Dec 18 00:27:35 2011 +0100"
      },
      "message": "PM / Sleep: Simplify generic system suspend callbacks\n\nThe pm_runtime_suspended() check in __pm_generic_call() doesn\u0027t\nreally help and may cause problems to happen, because in some cases\nthe system suspend callbacks need to be called even if the given\ndevice has been suspended by runtime PM.  For example, if the device\ngenerally supports remote wakeup and is not enabled to wake up\nthe system from sleep, it should be prevented from generating wakeup\nsignals during system suspend and that has to be done by the\nsuspend callbacks that the pm_runtime_suspended() check prevents from\nbeing executed.\n\nSimilarly, it may not be a good idea to unconditionally change\nthe runtime PM status of the device to \u0027active\u0027 in\n__pm_generic_resume(), because the driver may want to leave the\ndevice in the \u0027suspended\u0027 state, depending on what happened to it\nbefore the system suspend and whether or not it is enabled to\nwake up the system.\n\nFor the above reasons, remove the pm_runtime_suspended()\ncheck from __pm_generic_call() and remove the code changing the\ndevice\u0027s runtime PM status from __pm_generic_resume().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "925b44a273aa8c4c23c006c1228aacd538eead09",
      "tree": "107742feb4aa12727de15daf5d472968967ce142",
      "parents": [
        "c9914854b4ca339e511d052ce3a1a441ef15b928"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Thu Dec 08 23:27:28 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Dec 09 23:22:41 2011 +0100"
      },
      "message": "PM / Domains: Provide an always on power domain governor\n\nSince systems are likely to have power domains that can\u0027t be turned off\nfor various reasons at least temporarily while implementing power domain\nsupport provide a default governor which will always refuse to power off\nthe domain, saving platforms having to implement their own.\n\nSince the code is so tiny don\u0027t bother with a Kconfig symbol for it.\n\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "c9914854b4ca339e511d052ce3a1a441ef15b928",
      "tree": "a58486eb9156a15cefe1c6b2ce2483991faeeae7",
      "parents": [
        "e84b2c202771bbd538866207efcb1f7dbab8045b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 06 23:16:47 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 08 22:59:23 2011 +0100"
      },
      "message": "PM / Domains: Fix default system suspend/resume operations\n\nCommit d23b9b00cdde5c93b914a172cecd57d5625fcd04 (PM / Domains: Rework\nsystem suspend callback routines (v2)) broke the system suspend and\nresume handling by devices belonging to generic PM domains, because\nit used freeze/thaw callbacks instead of suspend/resume ones and\ndidn\u0027t initialize device callbacks for system suspend/resume\nproperly at all.  Fix those problems.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e84b2c202771bbd538866207efcb1f7dbab8045b",
      "tree": "00f62ed8f422c587897c7eb6ac6cd8c4dca508ab",
      "parents": [
        "4f042cdad40e1566a53b7ae85e72b6945a4b0fde"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 06 22:19:54 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 06 22:19:54 2011 +0100"
      },
      "message": "PM / Domains: Make it possible to assign names to generic PM domains\n\nAdd a name member pointer to struct generic_pm_domain and use it in\ndiagnostic messages regarding the domain power-off and power-on\nlatencies.  Update the ARM shmobile SH7372 code to assign names to\nthe PM domains used by it.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "0c6aebe31861c470c8cfbfdfdfd72d1369a6440b",
      "tree": "1d23085d79374baae2aa51730a1d49632f332c50",
      "parents": [
        "5a50a7c32d630d6cdb13d69afabb0cc81b2f379c"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Dec 03 00:23:43 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Dec 06 22:09:45 2011 +0100"
      },
      "message": "PM / Sleep: Unify diagnostic messages from device suspend/resume\n\nMake pm_op() and pm_noirq_op() use the same helper function for\nrunning callbacks, which will cause them to use the same format of\ndiagnostic messages.  This also reduces the complexity and size of\nthe code quite a bit.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0140d8bd47f798d55c3720f7fcade9e50929a5e5",
      "tree": "8be169e9eab129f60fc0af2977e0335cfe764dee",
      "parents": [
        "221e9b58380abdd6c05e11b4538597e2586ee141"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 00:02:17 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 21:48:07 2011 +0100"
      },
      "message": "PM / Domains: Automatically update overoptimistic latency information\n\nMeasure the time of execution of the .stop(), .start(), .save_state()\nand .restore_state() PM domain device callbacks and if the result\nis greater than the corresponding latency value stored in the\ndevice\u0027s struct generic_pm_domain_data object, replace the inaccurate\nvalue with the measured time.\n\nDo analogously for the PM domains\u0027 .power_off() and .power_off()\ncallbacks.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "221e9b58380abdd6c05e11b4538597e2586ee141",
      "tree": "acc8e06b6f05050f5deec0c90e6fe63a8a09bdf1",
      "parents": [
        "b02c999ac325e977585abeb4caf6e0a2ee21e30b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 00:02:10 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 21:47:58 2011 +0100"
      },
      "message": "PM / Domains: Add default power off governor function (v4)\n\nAdd a function deciding whether or not a given PM domain should\nbe powered off on the basis of the PM QoS constraints of devices\nbelonging to it and their PM QoS timing data.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b02c999ac325e977585abeb4caf6e0a2ee21e30b",
      "tree": "1ddec5f020a80b9df443b03ffb578ef7f882abb6",
      "parents": [
        "d23b9b00cdde5c93b914a172cecd57d5625fcd04"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 00:02:05 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 21:47:40 2011 +0100"
      },
      "message": "PM / Domains: Add device stop governor function (v4)\n\nAdd a function deciding whether or not devices should be stopped in\npm_genpd_runtime_suspend() depending on their PM QoS constraints\nand stop/start timing values.  Make it possible to add information\nused by this function to device objects.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "d23b9b00cdde5c93b914a172cecd57d5625fcd04",
      "tree": "62be5b5b35697e95ef6f71bfeb28ba658e299266",
      "parents": [
        "ecf00475f229fcf06362412ad2d15a3267e354a1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Nov 27 13:11:51 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 21:47:29 2011 +0100"
      },
      "message": "PM / Domains: Rework system suspend callback routines (v2)\n\nThe current generic PM domains code attempts to use the generic\nsystem suspend operations along with the domains\u0027 device stop/start\nroutines, which requires device drivers to assume that their\nsystem suspend/resume (and hibernation/restore) callbacks will always\nbe used with generic PM domains.  However, in theory, the same\nhardware may be used in devices that don\u0027t belong to any PM domain,\nin which case it would be necessary to add \"fake\" PM domains to\nsatisfy the above assumption.  Also, the domain the hardware belongs\nto may not be handled with the help of the generic code.\n\nTo allow device drivers that may be used along with the generic PM\ndomains code of more flexibility, add new device callbacks,\n.suspend(), .suspend_late(), .resume_early(), .resume(), .freeze(),\n.freeze_late(), .thaw_early(), and .thaw(), that can be supplied by\nthe drivers in addition to their \"standard\" system suspend and\nhibernation callbacks.  These new callbacks, if defined, will be used\nby the generic PM domains code for the handling of system suspend and\nhibernation instead of the \"standard\" ones.  This will allow drivers\nto be designed to work with generic PM domains as well as without\nthem.\n\nFor backwards compatibility, introduce default implementations of the\nnew callbacks for PM domains that will execute pm_generic_suspend(),\npm_generic_suspend_noirq(), pm_generic_resume_noirq(),\npm_generic_resume(), pm_generic_freeze(), pm_generic_freeze_noirq(),\npm_generic_thaw_noirq(), and pm_generic_thaw(), respectively, for the\ngiven device if its driver doesn\u0027t define those callbacks.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "ecf00475f229fcf06362412ad2d15a3267e354a1",
      "tree": "282792856ca84debf81e6c29141a6bebe7fdb966",
      "parents": [
        "d5e4cbfe2049fca375cb19c4bc0cf676e8b4a88a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Nov 27 13:11:44 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 21:47:18 2011 +0100"
      },
      "message": "PM / Domains: Introduce \"save/restore state\" device callbacks\n\nThe current PM domains code uses device drivers\u0027 .runtime_suspend()\nand .runtime_resume() callbacks as the \"save device state\" and\n\"restore device state\" operations, which may not be appropriate in\ngeneral, because it forces drivers to assume that they always will\nbe used with generic PM domains.  However, in theory, the same\nhardware may be used in devices that don\u0027t belong to any PM\ndomain, in which case it would be necessary to add \"fake\" PM\ndomains to satisfy the above assumption.  It also may be located in\na PM domain that\u0027s not handled with the help of the generic code.\n\nTo allow device drivers that may be used along with the generic PM\ndomains code of more flexibility, introduce new device callbacks,\n.save_state() and .restore_state(), that can be supplied by the\ndrivers in addition to their \"standard\" runtime PM callbacks.  This\nwill allow the drivers to be designed to work with generic PM domains\nas well as without them.\n\nFor backwards compatibility, introduce default .save_state() and\n.restore_state() callback routines for PM domains that will execute\na device driver\u0027s .runtime_suspend() and .runtime_resume() callbacks,\nrespectively, for the given device if the driver doesn\u0027t provide its\nown implementations of .save_state() and .restore_state().\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d5e4cbfe2049fca375cb19c4bc0cf676e8b4a88a",
      "tree": "51dfa4b178a53e884d310faad496aed07eee565b",
      "parents": [
        "b930c26416c4ea6855726fd977145ccea9afbdda"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Nov 27 13:11:36 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 21:47:08 2011 +0100"
      },
      "message": "PM / Domains: Make it possible to use per-device domain callbacks\n\nThe current generic PM domains code requires that the same .stop(),\n.start() and .active_wakeup() device callback routines be used for\nall devices in the given domain, which is inflexible and may not\ncover some specific use cases.  For this reason, make it possible to\nuse device specific .start()/.stop() and .active_wakeup() callback\nroutines by adding corresponding callback pointers to struct\ngeneric_pm_domain_data.  Add a new helper routine,\npm_genpd_register_callbacks(), that can be used to populate\nthe new per-device callback pointers.\n\nModify the shmobile\u0027s power domains code to allow drivers to add\ntheir own code to be run during the device stop and start operations\nwith the help of the new callback pointers.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "00dc9ad18d707f36b2fb4af98fd2cf0548d2b258",
      "tree": "f41672d9dae9bf15f2ee17abf3b5b6c31c966088",
      "parents": [
        "b930c26416c4ea6855726fd977145ccea9afbdda"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 00:01:31 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Dec 01 21:46:42 2011 +0100"
      },
      "message": "PM / Runtime: Use device PM QoS constraints (v2)\n\nMake the runtime PM core use device PM QoS constraints to check if\nit is allowed to suspend a given device, so that an error code is\nreturned if the device\u0027s own PM QoS constraint is negative or one of\nits children has already been suspended for too long.  If this is\nnot the case, the maximum estimated time the device is allowed to be\nsuspended, computed as the minimum of the device\u0027s PM QoS constraint\nand the PM QoS constraints of its children (reduced by the difference\nbetween the current time and their suspend times) is stored in a new\ndevice\u0027s PM field power.max_time_suspended_ns that can be used by\nthe device\u0027s subsystem or PM domain to decide whether or not to put\nthe device into lower-power (and presumably higher-latency) states\nlater (if the constraint is 0, which means \"no constraint\", the\npower.max_time_suspended_ns is set to -1).\n\nAdditionally, the time of execution of the subsystem-level\n.runtime_suspend() callback for the device is recorded in the new\npower.suspend_time field for later use by the device\u0027s subsystem or\nPM domain along with power.max_time_suspended_ns (it also is used\nby the core code when the device\u0027s parent is suspended).\n\nIntroduce a new helper function,\npm_runtime_update_max_time_suspended(), allowing subsystems and PM\ndomains (or device drivers) to update the power.max_time_suspended_ns\nfield, for example after changing the power state of a suspended\ndevice.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "64e94aafb6a5c4f419e9b8f93950914b5ac162a9",
      "tree": "afecaed56199e369ec627e75813ccb7012dccbfd",
      "parents": [
        "d74e278aaf3b0fe4b02af67055aa71babcc0cebe"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Nov 21 23:33:55 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:13:34 2011 +0100"
      },
      "message": "PM / Sleep: Simplify device_suspend_noirq()\n\nRemove a few if () and return statements in device_suspend_noirq()\nthat aren\u0027t really necessary.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "d74e278aaf3b0fe4b02af67055aa71babcc0cebe",
      "tree": "2dc1f9986c130da90578c7acb265aed4e4bbc850",
      "parents": [
        "6a76b7a9cc93dec6ae58d70f1257d234291908e0"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Nov 21 23:33:28 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Nov 23 21:13:24 2011 +0100"
      },
      "message": "PM / Sleep: Remove unnecessary label and jumps to it form PM core code\n\nThe \"End\" label in device_prepare() in drivers/base/power/main.c is\nnot necessary and the jumps to it have no real effect, so remove them\nall.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "8b258cc8ac229aa7d5dcb7cc34cb35d9124498ac",
      "tree": "9615636b05b04035af0c8eb11ee9711aa2b868a6",
      "parents": [
        "af8db1508f2c9f3b6e633e2d2d906c6557c617f9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Nov 17 21:39:33 2011 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Nov 17 21:39:33 2011 +0100"
      },
      "message": "PM Sleep: Do not extend wakeup paths to devices with ignore_children set\n\nCommit 4ca46ff3e0d8c234cb40ebb6457653b59584426c (PM / Sleep: Mark\ndevices involved in wakeup signaling during suspend) introduced\nthe power.wakeup_path field in struct dev_pm_info to mark devices\nwhose children are enabled to wake up the system from sleep states,\nso that power domains containing the parents that provide their\nchildren with wakeup power and/or relay their wakeup signals are not\nturned off.  Unfortunately, that introduced a PM regression on SH7372\nwhose power consumption in the system \"memory sleep\" state increased\nas a result of it, because it prevented the power domain containing\nthe I2C controller from being turned off when some children of that\ncontroller were enabled to wake up the system, although the\ncontroller was not necessary for them to signal wakeup.\n\nTo fix this issue use the observation that devices whose\npower.ignore_children flag is set for runtime PM should be treated\nanalogously during system suspend.  Namely, they shouldn\u0027t be\nincluded in wakeup paths going through their children.  Since the\nSH7372 I2C controller\u0027s power.ignore_children flag is set, doing so\nwill restore the previous behavior of that SOC.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "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"
    }
  ],
  "next": "56375fd420f851944960bd53dbb08d674f4d9406"
}
