)]}'
{
  "log": [
    {
      "commit": "06132ee903e3b0fe3541970e017762a3df3e0551",
      "tree": "11ed07b6df259fa42797b723600fc70da10c4503",
      "parents": [
        "351520a9ebfdf2f36cd97c1192f280e0ac7fdcfc",
        "ca1d72f033d4a89e60db25f680896c76c721062b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 18 20:46:17 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 18 20:46:17 2012 +0200"
      },
      "message": "Merge branch \u0027pm-domains\u0027\n\n* pm-domains:\n  PM / Domains: Make it possible to add devices to inactive domains\n"
    },
    {
      "commit": "ca1d72f033d4a89e60db25f680896c76c721062b",
      "tree": "77a5d45a878b85ed3dad23f304b4e10fbfa66129",
      "parents": [
        "b723b0eb91e08a0ee9a401c0b22c0d52966d9daa"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon May 14 21:45:52 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 18 20:45:26 2012 +0200"
      },
      "message": "PM / Domains: Make it possible to add devices to inactive domains\n\nThe generic PM domains core code currently requires domains to be in\nthe \"power on\" state for adding devices to them, but this limitation\nturns out to be inconvenient in some situations, so remove it.\n\nFor this purpose, make __pm_genpd_add_device() set the device\u0027s\nneed_restore flag if the domain is in the \"power off\" state, so that\nthe device\u0027s \"restore state\" (usually .runtime_resume()) callback\nis executed when it is resumed after the domain has been turned on.\nIf the domain is in the \"power on\" state, the device\u0027s need_restore\nflag will be cleared by __pm_genpd_add_device(), so that its \"save\nstate\" (usually .runtime_suspend()) callback is executed when the\ndomain is about to be turned off.  However, since that default\nbehavior need not be always desirable, add a helper function\npm_genpd_dev_need_restore() allowing a device\u0027s need_restore flag\nto be set/unset at any time.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "351520a9ebfdf2f36cd97c1192f280e0ac7fdcfc",
      "tree": "8f177d2c59be90ebcedc98ed508832a7ebbd7e0a",
      "parents": [
        "e6d18093ea3d1d30a4de9e29cb1676c1f4b55147",
        "4e585d25e120f1eae0a3a8bf8f6ebc7692afec18"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 11 21:15:09 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 11 21:15:09 2012 +0200"
      },
      "message": "Merge branch \u0027pm-sleep\u0027\n\n* pm-sleep:\n  PM / Sleep: User space wakeup sources garbage collector Kconfig option\n  PM / Sleep: Make the limit of user space wakeup sources configurable\n  PM / Documentation: suspend-and-cpuhotplug.txt: Fix typo\n  PM / Sleep: Fix a mistake in a conditional in autosleep_store()\n  epoll: Add a flag, EPOLLWAKEUP, to prevent suspend while epoll events are ready\n  PM / Sleep: Add user space interface for manipulating wakeup sources, v3\n  PM / Sleep: Add \"prevent autosleep time\" statistics to wakeup sources\n  PM / Sleep: Implement opportunistic sleep, v2\n  PM / Sleep: Add wakeup_source_activate and wakeup_source_deactivate tracepoints\n  PM / Sleep: Change wakeup source statistics to follow Android\n  PM / Sleep: Use wait queue to signal \"no wakeup events in progress\"\n  PM / Sleep: Look for wakeup events in later stages of device suspend\n  PM / Hibernate: Hibernate/thaw fixes/improvements\n"
    },
    {
      "commit": "b723b0eb91e08a0ee9a401c0b22c0d52966d9daa",
      "tree": "5730adb87db4c0d8cabec414495a401bcb421cec",
      "parents": [
        "4fcac10d28e7a046120b51a106b19082d2e57401"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon May 07 22:00:59 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 11 21:11:44 2012 +0200"
      },
      "message": "PM / Domains: Fix computation of maximum domain off time\n\nThe default domain power off governor function for generic PM\ndomains, default_power_down_ok(), may violate subdomain maximum\noff time limit by allowing the master domain to be off for too\nlong.  Namely, it only finds the minium of all device maximum\noff times over the domain\u0027s devices and uses that to compute the\ndomain\u0027s maximum off time, but it should do the same for the\nsubdomains.\n\nFix this problem by modifying default_power_down_ok() to compute\nthe given domain\u0027s maximum off time as the difference between the\nminimum off time over all devices and subdomains in the domain and\nits power on latency.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4fcac10d28e7a046120b51a106b19082d2e57401",
      "tree": "a9b1d178e6d1c8c9bc4c2ed383a4b64f1dfd078c",
      "parents": [
        "6ff7bb0d02f82968be13937c03e93b6c090229df"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon May 07 21:35:45 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri May 11 21:11:37 2012 +0200"
      },
      "message": "PM / Domains: Fix link checking when add subdomain\n\nCurrent pm_genpd_add_subdomain() will allow duplicated link between\nmaster and slave domain.  This patch fixed it.\n\nBecause when current pm_genpd_add_subdomain() checks whether the link\nbetween the master and slave generic PM domain already exists,\nslave_links instead of master_links of master domain is used.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "6ff7bb0d02f82968be13937c03e93b6c090229df",
      "tree": "ac2605f2f2b1602fddb88c4ba33c647608b594e6",
      "parents": [
        "efa6902501ffc87d69bfb10b8a09b7d6ee222d77"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:34:07 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat May 05 21:51:58 2012 +0200"
      },
      "message": "PM / Domains: Cache device stop and domain power off governor results, v3\n\nThe results of the default device stop and domain power off governor\nfunctions for generic PM domains, default_stop_ok() and\ndefault_power_down_ok(), depend only on the timing data of devices,\nwhich are static, and on their PM QoS constraints.  Thus, in theory,\nthese functions only need to carry out their computations, which may\nbe time consuming in general, when it is known that the PM QoS\nconstraint of at least one of the devices in question has changed.\n\nUse the PM QoS notifiers of devices to implement that.  First,\nintroduce new fields, constraint_changed and max_off_time_changed,\ninto struct gpd_timing_data and struct generic_pm_domain,\nrespectively, and register a PM QoS notifier function when adding\na device into a domain that will set those fields to \u0027true\u0027 whenever\nthe device\u0027s PM QoS constraint is modified.  Second, make\ndefault_stop_ok() and default_power_down_ok() use those fields to\ndecide whether or not to carry out their computations from scratch.\n\nThe device and PM domain hierarchies are taken into account in that\nand the expense is that the changes of PM QoS constraints of\nsuspended devices will not be taken into account immediately, which\nisn\u0027t guaranteed anyway in general.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "efa6902501ffc87d69bfb10b8a09b7d6ee222d77",
      "tree": "1fc2840dea09457e84c8b593e2ad7ff9f77ce501",
      "parents": [
        "23e0fc5ae64925e0ff1b6221b83dff1b217545df"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:33:53 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat May 05 21:51:50 2012 +0200"
      },
      "message": "PM / Domains: Make device removal more straightforward\n\nThe removal of a device from a PM domain doesn\u0027t have to browse\nthe domain\u0027s device list, because it can check directly if the\ndevice belongs to the given domain.  Moreover, it should clear\nthe domain_data pointer in dev-\u003epower.subsys_data, because\ndev_pm_put_subsys_data(dev) may not remove dev-\u003epower.subsys_data\nand the stale domain data pointer may cause problems to happen.\n\nRework pm_genpd_remove_device() taking the above observations into\naccount.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "23e0fc5ae64925e0ff1b6221b83dff1b217545df",
      "tree": "d22f7b9891242715238014e00f97646256bea053",
      "parents": [
        "76e267d822f2913893ad210ba431607aa8e2af94"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:54:47 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:28:43 2012 +0200"
      },
      "message": "PM / QoS: Create device constraints objects on notifier registration\n\nThe current behavior of dev_pm_qos_add_notifier() makes device PM QoS\nnotifiers less than useful.  Namely, it silently returns success when\ncalled before any PM QoS constraints are added for the device, so the\ncaller will assume that the notifier has been registered, but when\nsomeone actually adds some nontrivial constraints for the device\neventually, the previous callers of dev_pm_qos_add_notifier()\nwill not know about that and their notifier routines will not be\nexecuted (contrary to their expectations).\n\nTo address this problem make dev_pm_qos_add_notifier() create the\nconstraints object for the device if it is not present when the\nroutine is called.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by : markgross \u003cmarkgross@thegnar.org\u003e\n"
    },
    {
      "commit": "76e267d822f2913893ad210ba431607aa8e2af94",
      "tree": "ce3a821135a398748063f29cb064147d27b40a47",
      "parents": [
        "dd8683e97f12609fb3f8c4318628f0d246542f89"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:54:36 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:28:38 2012 +0200"
      },
      "message": "PM / Runtime: Remove device fields related to suspend time, v2\n\nAfter the previous changes in default_stop_ok() and\ndefault_power_down_ok() for PM domains, there are two fields in\nstruct dev_pm_info that aren\u0027t necessary any more,  suspend_time\nand max_time_suspended_ns.\n\nRemove those fields along with all of the code that accesses them,\nwhich simplifies the runtime PM framework quite a bit.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "dd8683e97f12609fb3f8c4318628f0d246542f89",
      "tree": "9cd89a733706d7c6143125116f4a1c3cff9c4a6c",
      "parents": [
        "a5bef810ad9816a3a8e500d8832be77d52903a12"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:54:30 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:28:15 2012 +0200"
      },
      "message": "PM / Domains: Rework default domain power off governor function, v2\n\nThe existing default domain power down governor function for PM\ndomains, default_power_down_ok(), is supposed to check whether or not\nthe PM QoS latency constraints of the devices in the domain will be\nviolated if the domain is turned off by pm_genpd_poweroff().\nHowever, the computations carried out by it don\u0027t reflect the\ndefinition of the PM QoS latency constrait in\nDocumentation/ABI/testing/sysfs-devices-power.\n\nMake default_power_down_ok() follow the definition of the PM QoS\nlatency constrait.  In particular, make it only take latencies into\naccount, because it doesn\u0027t matter how much time has elapsed since\nthe domain\u0027s devices were suspended for the computation.\n\nRemove the break_even_ns and power_off_time fields from\nstruct generic_pm_domain, because they are not necessary any more.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a5bef810ad9816a3a8e500d8832be77d52903a12",
      "tree": "dd108feaf2fa45f9520b63ea94ecec2c42259194",
      "parents": [
        "69964ea4c7b68c9399f7977aa5b9aa6539a6a98a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:54:17 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:28:03 2012 +0200"
      },
      "message": "PM / Domains: Rework default device stop governor function, v2\n\nThe existing default device stop governor function for PM domains,\ndefault_stop_ok(), is supposed to check whether or not the device\u0027s\nPM QoS latency constraint will be violated if the device is stopped\nby pm_genpd_runtime_suspend().  However, the computations carried out\nby it don\u0027t reflect the definition of the PM QoS latency constrait in\nDocumentation/ABI/testing/sysfs-devices-power.\n\nMake default_stop_ok() follow the definition of the PM QoS latency\nconstrait.  In particular, make it take the device\u0027s start and stop\nlatencies correctly.\n\nAdd a new field, effective_constraint_ns, to struct gpd_timing_data\nand use it to store the difference between the device\u0027s PM QoS\nconstraint and its resume latency for use by the device\u0027s parent\n(the effective_constraint_ns values for the children are used for\ncomputing the parent\u0027s one along with its PM QoS constraint).\n\nRemove the break_even_ns field from struct gpd_timing_data, because\nit\u0027s not used any more.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b86ff9820fd5df69295273b9aa68e58786ffc23f",
      "tree": "e8af5745652c926b9a82b3b7531dc455564efdfb",
      "parents": [
        "55850945e872531644f31fefd217d61dd15dcab8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:53:42 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:26:05 2012 +0200"
      },
      "message": "PM / Sleep: Add user space interface for manipulating wakeup sources, v3\n\nAndroid allows user space to manipulate wakelocks using two\nsysfs file located in /sys/power/, wake_lock and wake_unlock.\nWriting a wakelock name and optionally a timeout to the wake_lock\nfile causes the wakelock whose name was written to be acquired (it\nis created before is necessary), optionally with the given timeout.\nWriting the name of a wakelock to wake_unlock causes that wakelock\nto be released.\n\nImplement an analogous interface for user space using wakeup sources.\nAdd the /sys/power/wake_lock and /sys/power/wake_unlock files\nallowing user space to create, activate and deactivate wakeup\nsources, such that writing a name and optionally a timeout to\nwake_lock causes the wakeup source of that name to be activated,\noptionally with the given timeout.  If that wakeup source doesn\u0027t\nexist, it will be created and then activated.  Writing a name to\nwake_unlock causes the wakeup source of that name, if there is one,\nto be deactivated.  Wakeup sources created with the help of\nwake_lock that haven\u0027t been used for more than 5 minutes are garbage\ncollected and destroyed.  Moreover, there can be only WL_NUMBER_LIMIT\nwakeup sources created with the help of wake_lock present at a time.\n\nThe data type used to track wakeup sources created by user space is\ncalled \"struct wakelock\" to indicate the origins of this feature.\n\nThis version of the patch includes an rbtree manipulation fix from John Stultz.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "55850945e872531644f31fefd217d61dd15dcab8",
      "tree": "412ee1338d0b69e4d6e2a5e518e30e6660704921",
      "parents": [
        "7483b4a4d9abf9dcf1ffe6e805ead2847ec3264e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:53:32 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:25:49 2012 +0200"
      },
      "message": "PM / Sleep: Add \"prevent autosleep time\" statistics to wakeup sources\n\nAndroid uses one wakelock statistics that is only necessary for\nopportunistic sleep.  Namely, the prevent_suspend_time field\naccumulates the total time the given wakelock has been locked\nwhile \"automatic suspend\" was enabled.  Add an analogous field,\nprevent_sleep_time, to wakeup sources and make it behave in a similar\nway.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "7483b4a4d9abf9dcf1ffe6e805ead2847ec3264e",
      "tree": "d03af746dc3be6480580ec569e0c2d708031f0bd",
      "parents": [
        "6791e36c4a40e8930e08669e60077eea6770c429"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:53:22 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:25:38 2012 +0200"
      },
      "message": "PM / Sleep: Implement opportunistic sleep, v2\n\nIntroduce a mechanism by which the kernel can trigger global\ntransitions to a sleep state chosen by user space if there are no\nactive wakeup sources.\n\nIt consists of a new sysfs attribute, /sys/power/autosleep, that\ncan be written one of the strings returned by reads from\n/sys/power/state, an ordered workqueue and a work item carrying out\nthe \"suspend\" operations.  If a string representing the system\u0027s\nsleep state is written to /sys/power/autosleep, the work item\ntriggering transitions to that state is queued up and it requeues\nitself after every execution until user space writes \"off\" to\n/sys/power/autosleep.\n\nThat work item enables the detection of wakeup events using the\nfunctions already defined in drivers/base/power/wakeup.c (with one\nsmall modification) and calls either pm_suspend(), or hibernate() to\nput the system into a sleep state.  If a wakeup event is reported\nwhile the transition is in progress, it will abort the transition and\nthe \"system suspend\" work item will be queued up again.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\n"
    },
    {
      "commit": "6791e36c4a40e8930e08669e60077eea6770c429",
      "tree": "880d7255cc13a270d513e4fb6c4219f85d9536d0",
      "parents": [
        "30e3ce6dcbe3fc29c343b17e768b07d4a795de21"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Sun Apr 29 22:53:02 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:25:25 2012 +0200"
      },
      "message": "PM / Sleep: Add wakeup_source_activate and wakeup_source_deactivate tracepoints\n\nAdd tracepoints to wakeup_source_activate and wakeup_source_deactivate.\nUseful for checking that specific wakeup sources overlap as expected.\n\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "30e3ce6dcbe3fc29c343b17e768b07d4a795de21",
      "tree": "42af32f901aab0c9cbca0dc22f755f9fe3936d67",
      "parents": [
        "60af1066913162c5dd13fad3b872a67b1eb7da0f"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:52:52 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:25:11 2012 +0200"
      },
      "message": "PM / Sleep: Change wakeup source statistics to follow Android\n\nWakeup statistics used by Android are slightly different from what we\nhave in wakeup sources at the moment and there aren\u0027t any known\nusers of those statistics other than Android, so modify them to make\nit easier for Android to switch to wakeup sources.\n\nThis removes the struct wakeup_source\u0027s hit_cout field, which is very\nrough and therefore not very useful, and adds two new fields,\nwakeup_count and expire_count.  The first one tracks how many times\nthe wakeup source is activated with events_check_enabled set (which\nroughly corresponds to the situations when a system power transition\nto a sleep state is in progress and would be aborted by this wakeup\nsource if it were the only active one at that time) and the second\none is the number of times the wakeup source has been activated with\na timeout that expired.\n\nAdditionally, the last_time field is now updated when the wakeup\nsource is deactivated too (previously it was only updated during\nthe wakeup source\u0027s activation), which seems to be what Android does\nwith the analogous counter for wakelocks.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "60af1066913162c5dd13fad3b872a67b1eb7da0f",
      "tree": "bd2c66ce4c9f78625c018674feedd482a4da97f4",
      "parents": [
        "52d136cc2cf6659ee247dbcc88c9e7bd7428ad06"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:52:34 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:24:59 2012 +0200"
      },
      "message": "PM / Sleep: Use wait queue to signal \"no wakeup events in progress\"\n\nThe current wakeup source deactivation code doesn\u0027t do anything when\nthe counter of wakeup events in progress goes down to zero, which\nrequires pm_get_wakeup_count() to poll that counter periodically.\nAlthough this reduces the average time it takes to deactivate a\nwakeup source, it also may lead to a substantial amount of unnecessary\npolling if there are extended periods of wakeup activity.  Thus it\nseems reasonable to use a wait queue for signaling the \"no wakeup\nevents in progress\" condition and remove the polling.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: mark gross \u003cmarkgross@thegnar.org\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "52d136cc2cf6659ee247dbcc88c9e7bd7428ad06",
      "tree": "79b12b415860db0081d006a7b8436dbf14fc9da3",
      "parents": [
        "5a21d489fd9541a4a66b9a500659abaca1b19a51"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Apr 29 22:52:19 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue May 01 21:24:50 2012 +0200"
      },
      "message": "PM / Sleep: Look for wakeup events in later stages of device suspend\n\nCurrently, the device suspend code in drivers/base/power/main.c\nonly checks if there have been any wakeup events, and therefore the\nongoing system transition to a sleep state should be aborted, during\nthe first (i.e. \"suspend\") device suspend phase.  However, wakeup\nevents may be reported later as well, so it\u0027s reasonable to look for\nthem in the in the subsequent (i.e. \"late suspend\" and \"suspend\nnoirq\") phases.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "f2791d733a2f06997b573d1a3cfde21e6f529826",
      "tree": "2af5d3beba35cb4b5a945f148e0a24bbda0ed86f",
      "parents": [
        "e22057c8599373e5caef0bc42bdb95d2a361ab0d"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Mar 26 22:46:52 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Mar 26 22:46:52 2012 +0200"
      },
      "message": "PM / Runtime: don\u0027t forget to wake up waitqueue on failure\n\nThis patch (as1535) fixes a bug in the runtime PM core.  When a\nruntime suspend attempt completes, whether successfully or not, the\ndevice\u0027s power.wait_queue is supposed to be signalled.  But this\ndoesn\u0027t happen in the failure pathway of rpm_suspend() when another\nautosuspend attempt is rescheduled.  As a result, a task can get stuck\nindefinitely on the wait queue (I have seen this happen in testing).\n\nThe patch fixes the problem by moving the wake_up_all() call up near\nthe start of the failure code.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCC: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "5063ce1571b73865cbdcd92db002e85809750c97"
}
