)]}'
{
  "log": [
    {
      "commit": "37530f2bda039774bd65aea14cc1d1dd26a82b9e",
      "tree": "43a1e1e8f2189b200cf7a6df1bd22e1321c31a91",
      "parents": [
        "b81ea1b5ac4d3c6a628158b736dd4a98c46c29d9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Mon Mar 04 14:22:57 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Mon Mar 04 14:23:12 2013 +0100"
      },
      "message": "PM / QoS: Remove device PM QoS sysfs attributes at the right place\n\nDevice PM QoS sysfs attributes, if present during device removal,\nare removed from within device_pm_remove(), which is too late,\nsince dpm_sysfs_remove() has already removed the whole attribute\ngroup they belonged to.  However, moving the removal of those\nattributes to dpm_sysfs_remove() alone is not sufficient, because\nin theory they still can be re-added right after being removed by it\n(the device\u0027s driver is still bound to it at that point).\n\nFor this reason, move the entire desctruction of device PM QoS\nconstraints to dpm_sysfs_remove() and make it prevent any new\nconstraints from being added after it has run.  Also, move the\ninitialization of the power.qos field in struct device to\ndevice_pm_init_common() and drop the no longer needed\ndev_pm_qos_constraints_init().\n\nReported-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "b81ea1b5ac4d3c6a628158b736dd4a98c46c29d9",
      "tree": "a2dd6b230ac5cc2197ef6da7042d892c405ad32d",
      "parents": [
        "f5f43dcfff3a3c7f7de4a0cfca0106a0ccd58bd7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sun Mar 03 22:48:14 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Mon Mar 04 14:23:11 2013 +0100"
      },
      "message": "PM / QoS: Fix concurrency issues and memory leaks in device PM QoS\n\nThe current device PM QoS code assumes that certain functions will\nnever be called in parallel with each other (for example, it is\nassumed that dev_pm_qos_expose_flags() won\u0027t be called in parallel\nwith dev_pm_qos_hide_flags() for the same device and analogously\nfor the latency limit), which may be overly optimistic.  Moreover,\ndev_pm_qos_expose_flags() and dev_pm_qos_expose_latency_limit()\nleak memory in error code paths (req needs to be freed on errors)\nand __dev_pm_qos_drop_user_request() forgets to free the request.\n\nTo fix the above issues put more things under the device PM QoS\nmutex to make them mutually exclusive and add the missing freeing\nof memory.\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "db88175f41a29c1ffff1a6938a7969d206a47326",
      "tree": "dbde80972ee9ddae32c757613993cd673d458fb5",
      "parents": [
        "9802c8e22f6efd372e83d9d5d5ff43f3562cfe19"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Fri Feb 22 16:34:19 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:16 2013 -0800"
      },
      "message": "pm / runtime: force memory allocation with no I/O during Runtime PM callbcack\n\nApply the introduced memalloc_noio_save() and memalloc_noio_restore() to\nforce memory allocation with no I/O during runtime_resume/runtime_suspend\ncallback on device with the flag of \u0027memalloc_noio\u0027 set.\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: David Decotigny \u003cdavid.decotigny@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Oliver Neukum \u003coneukum@suse.de\u003e\nCc: Jiri Kosina \u003cjiri.kosina@suse.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e823407f7b11fa06ba8e7a2801eb9ed11268a7ec",
      "tree": "7fa1131c6607b2df9975c890b0a22a7cf0d6e15f",
      "parents": [
        "21caf2fc1931b485483ddd254b634fa8f0099963"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Fri Feb 22 16:34:11 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:16 2013 -0800"
      },
      "message": "pm / runtime: introduce pm_runtime_set_memalloc_noio()\n\nIntroduce the flag memalloc_noio in \u0027struct dev_pm_info\u0027 to help PM core\nto teach mm not allocating memory with GFP_KERNEL flag for avoiding\nprobable deadlock.\n\nAs explained in the comment, any GFP_KERNEL allocation inside\nruntime_resume() or runtime_suspend() on any one of device in the path\nfrom one block or network device to the root device in the device tree\nmay cause deadlock, the introduced pm_runtime_set_memalloc_noio() sets\nor clears the flag on device in the path recursively.\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: Oliver Neukum \u003coneukum@suse.de\u003e\nCc: Jiri Kosina \u003cjiri.kosina@suse.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: David Decotigny \u003cdavid.decotigny@google.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74e1a2a39355b2d3ae8c60c78d8add162c6d7183",
      "tree": "1ce09f285c505a774838a95cff7327a750dc85fc",
      "parents": [
        "b5c78e04dd061b776978dad61dd85357081147b0",
        "6166805c3de539a41cfcae39026c5bc273d7c6aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 12:20:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Feb 21 12:20:00 2013 -0800"
      },
      "message": "Merge tag \u0027usb-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\nPull USB patches from Greg Kroah-Hartman:\n \"Here\u0027s the big USB merge for 3.9-rc1\n\n  Nothing major, lots of gadget fixes, and of course, xhci stuff.\n\n  All of this has been in linux-next for a while, with the exception of\n  the last 3 patches, which were reverts of patches in the tree that\n  caused problems, they went in yesterday.\"\n\n* tag \u0027usb-3.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (190 commits)\n  Revert \"USB: EHCI: make ehci-vt8500 a separate driver\"\n  Revert \"USB: EHCI: make ehci-orion a separate driver\"\n  Revert \"USB: update host controller Kconfig entries\"\n  USB: update host controller Kconfig entries\n  USB: EHCI: make ehci-orion a separate driver\n  USB: EHCI: make ehci-vt8500 a separate driver\n  USB: usb-storage: unusual_devs update for Super TOP SATA bridge\n  USB: ehci-omap: Fix autoloading of module\n  USB: ehci-omap: Don\u0027t free gpios that we didn\u0027t request\n  USB: option: add Huawei \"ACM\" devices using protocol \u003d vendor\n  USB: serial: fix null-pointer dereferences on disconnect\n  USB: option: add Yota / Megafon M100-1 4g modem\n  drivers/usb: add missing GENERIC_HARDIRQS dependencies\n  USB: storage: properly handle the endian issues of idProduct\n  testusb: remove all mentions of \u0027usbfs\u0027\n  usb: gadget: imx_udc: make it depend on BROKEN\n  usb: omap_control_usb: fix compile warning\n  ARM: OMAP: USB: Add phy binding information\n  ARM: OMAP2: MUSB: Specify omap4 has mailbox\n  ARM: OMAP: devices: create device for usb part of control module\n  ...\n"
    },
    {
      "commit": "4419fbd4b408c3a8634b3a8dd952055d0f0b601f",
      "tree": "dfa48db949d2b092a92a5adb3c070db6287a37be",
      "parents": [
        "95ecb407699825278f4031f153dbbe0f0713ff28",
        "191e5edf96dc4939f5db0605cc65de9f4d88d155"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Feb 15 13:59:07 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Feb 15 13:59:07 2013 +0100"
      },
      "message": "Merge branch \u0027pm-cpufreq\u0027\n\n* pm-cpufreq: (55 commits)\n  cpufreq / intel_pstate: Fix 32 bit build\n  cpufreq: conservative: Fix typos in comments\n  cpufreq: ondemand: Fix typos in comments\n  cpufreq: exynos: simplify .init() for setting policy-\u003ecpus\n  cpufreq: kirkwood: Add a cpufreq driver for Marvell Kirkwood SoCs\n  cpufreq/x86: Add P-state driver for sandy bridge.\n  cpufreq_stats: do not remove sysfs files if frequency table is not present\n  cpufreq: Do not track governor name for scaling drivers with internal governors.\n  cpufreq: Only call cpufreq_out_of_sync() for driver that implement cpufreq_driver.target()\n  cpufreq: Retrieve current frequency from scaling drivers with internal governors\n  cpufreq: Fix locking issues\n  cpufreq: Create a macro for unlock_policy_rwsem{read,write}\n  cpufreq: Remove unused HOTPLUG_CPU code\n  cpufreq: governors: Fix WARN_ON() for multi-policy platforms\n  cpufreq: ondemand: Replace down_differential tuner with adj_up_threshold\n  cpufreq / stats: Get rid of CPUFREQ_STATDEVICE_ATTR\n  cpufreq: Don\u0027t check cpu_online(policy-\u003ecpu)\n  cpufreq: add imx6q-cpufreq driver\n  cpufreq: Don\u0027t remove sysfs link for policy-\u003ecpu\n  cpufreq: Remove unnecessary use of policy-\u003eshared_type\n  ...\n"
    },
    {
      "commit": "7e73c5ae6e7991a6c01f6d096ff8afaef4458c36",
      "tree": "cd2df301d9ccda6d18f6cbe09f481f38cb78271a",
      "parents": [
        "fbadc58dd3a52c330c8f3926aa93011bf9d91fa0"
      ],
      "author": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Wed Feb 06 13:00:36 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 09 22:30:44 2013 +0100"
      },
      "message": "PM: Introduce suspend state PM_SUSPEND_FREEZE\n\nPM_SUSPEND_FREEZE state is a general state that\ndoes not need any platform specific support, it equals\nfrozen processes + suspended devices + idle processors.\n\nCompared with PM_SUSPEND_MEMORY,\nPM_SUSPEND_FREEZE saves less power\nbecause the system is still in a running state.\nPM_SUSPEND_FREEZE has less resume latency because it does not\ntouch BIOS, and the processors are in idle state.\n\nCompared with RTPM/idle,\nPM_SUSPEND_FREEZE saves more power as\n1. the processor has longer sleep time because processes are frozen.\n   The deeper c-state the processor supports, more power saving we can get.\n2. PM_SUSPEND_FREEZE uses system suspend code path, thus we can get\n   more power saving from the devices that does not have good RTPM support.\n\nThis state is useful for\n1) platforms that do not have STR, or have a broken STR.\n2) platforms that have an extremely low power idle state,\n   which can be used to replace STR.\n\nThe following describes how PM_SUSPEND_FREEZE state works.\n1. echo freeze \u003e /sys/power/state\n2. the processes are frozen.\n3. all the devices are suspended.\n4. all the processors are blocked by a wait queue\n5. all the processors idles and enters (Deep) c-state.\n6. an interrupt fires.\n7. a processor is woken up and handles the irq.\n8. if it is a general event,\n   a) the irq handler runs and quites.\n   b) goto step 4.\n9. if it is a real wake event, say, power button pressing, keyboard touch, mouse moving,\n   a) the irq handler runs and activate the wakeup source\n   b) wakeup_source_activate() notifies the wait queue.\n   c) system starts resuming from PM_SUSPEND_FREEZE\n10. all the devices are resumed.\n11. all the processes are unfrozen.\n12. system is back to working.\n\nKnown Issue:\nThe wakeup of this new PM_SUSPEND_FREEZE state may behave differently\nfrom the previous suspend state.\nTake ACPI platform for example, there are some GPEs that only enabled\nwhen the system is in sleep state, to wake the system backk from S3/S4.\nBut we are not touching these GPEs during transition to PM_SUSPEND_FREEZE.\nThis means we may lose some wake event.\nBut on the other hand, as we do not disable all the Interrupts during\nPM_SUSPEND_FREEZE, we may get some extra \"wakeup\" Interrupts, that are\nnot available for S3/S4.\n\nThe patches has been tested on an old Sony laptop, and here are the results:\n\nAverage Power:\n1. RPTM/idle for half an hour:\n   14.8W, 12.6W, 14.1W, 12.5W, 14.4W, 13.2W, 12.9W\n2. Freeze for half an hour:\n   11W, 10.4W, 9.4W, 11.3W 10.5W\n3. RTPM/idle for three hours:\n   11.6W\n4. Freeze for three hours:\n   10W\n5. Suspend to Memory:\n   0.5~0.9W\n\nAverage Resume Latency:\n1. RTPM/idle with a black screen: (From pressing keyboard to screen back)\n   Less than 0.2s\n2. Freeze: (From pressing power button to screen back)\n   2.50s\n3. Suspend to Memory: (From pressing power button to screen back)\n   4.33s\n\n\u003eFrom the results, we can see that all the platforms should benefit from\nthis patch, even if it does not have Low Power S0.\n\nSigned-off-by: Zhang Rui \u003crui.zhang@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "74c46c6eaf9724edbfc12cc67e62773b708eb2ed",
      "tree": "65723309e11ad590424c59586d8dedde05d3fa07",
      "parents": [
        "b2ccd7632939b8c8d53ea1c4aa21ebf8d0add7cf"
      ],
      "author": {
        "name": "Mark Langsdorf",
        "email": "mark.langsdorf@calxeda.com",
        "time": "Mon Jan 28 18:26:16 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:16 2013 +0100"
      },
      "message": "PM / OPP: Export more symbols for module usage\n\nExport cpufreq helpers in OPP to make the cpufreq-core0 and highbank-cpufreq\ndrivers loadable as modules.\n\nSigned-off-by: Mark Langsdorf \u003cmark.langsdorf@calxeda.com\u003e\nSigned-off-by: Nishanth Menon \u003cnm@ti.com\u003e\nAcked-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "b2ccd7632939b8c8d53ea1c4aa21ebf8d0add7cf",
      "tree": "aceab0299a2fe0486174205cc3d23a80c53fb8e4",
      "parents": [
        "6754f556103be5bd172263b1075ddbb7157afbad"
      ],
      "author": {
        "name": "Nishanth Menon",
        "email": "nm@ti.com",
        "time": "Mon Jan 28 18:26:15 2013 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Feb 02 00:01:15 2013 +0100"
      },
      "message": "PM / OPP: switch exported symbols to GPL variant\n\nWe are GPLV2 library, so be clear in the symbols exported as well.\n\nSigned-off-by: Nishanth Menon \u003cnm@ti.com\u003e\nAcked-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "a4ca26a43e39d521b3913f09faf82dfbbbca5f6a",
      "tree": "419aea38aa5b06445f8b59e8c26b919a44634da9",
      "parents": [
        "949db153b6466c6f7cad5a427ecea94985927311"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Jan 11 13:37:23 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Jan 26 00:39:11 2013 +0100"
      },
      "message": "PM / Domains: don\u0027t use [delayed_]work_pending()\n\nThere\u0027s no need to test whether a (delayed) work item is pending\nbefore queueing, flushing or cancelling it, so remove work_pending()\ntests used in those cases.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "6802771bba0455a751d8f4ece7587585be3eaa2f",
      "tree": "9c56a55854222612ed11b64ca336685107864a7d",
      "parents": [
        "88bb965ed711e8a5984e70208ebc901a6ff4141f"
      ],
      "author": {
        "name": "Lan Tianyu",
        "email": "tianyu.lan@intel.com",
        "time": "Wed Jan 23 04:26:28 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Jan 25 10:12:18 2013 -0800"
      },
      "message": "PM/Qos: Expose dev_pm_qos_flags symbol\n\nThe dev_pm_qos_flags() will be used in the usb core which could be\ncompiled as a module. This patch is to export it.\n\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Lan Tianyu \u003ctianyu.lan@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "f67ffa95836b31be5d8fe336aee3bfc6412c5696",
      "tree": "444417975bd55480818ad40a723591465091c6dc",
      "parents": [
        "868b093505d6378df77bc2bb656af082330127a8",
        "9f6d8f6ab26b42620a914d67f29822f9bba90233"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sun Jan 06 00:36:17 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sun Jan 06 00:36:17 2013 +0100"
      },
      "message": "Merge branch \u0027pm-sleep\u0027\n\n* pm-sleep:\n  PM: Move disabling/enabling runtime PM to late suspend/early resume\n"
    },
    {
      "commit": "9f6d8f6ab26b42620a914d67f29822f9bba90233",
      "tree": "ac243fb6970bf2b870e34e061281f7ad5446ad38",
      "parents": [
        "d1c3ed669a2d452cacfb48c2d171a1f364dae2ed"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Dec 22 23:59:01 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sun Jan 06 00:35:55 2013 +0100"
      },
      "message": "PM: Move disabling/enabling runtime PM to late suspend/early resume\n\nCurrently, the PM core disables runtime PM for all devices right\nafter executing subsystem/driver .suspend() callbacks for them\nand re-enables it right before executing subsystem/driver .resume()\ncallbacks for them.  This may lead to problems when there are\ntwo devices such that the .suspend() callback executed for one of\nthem depends on runtime PM working for the other.  In that case,\nif runtime PM has already been disabled for the second device,\nthe first one\u0027s .suspend() won\u0027t work correctly (and analogously\nfor resume).\n\nTo make those issues go away, make the PM core disable runtime PM\nfor devices right before executing subsystem/driver .suspend_late()\ncallbacks for them and enable runtime PM for them right after\nexecuting subsystem/driver .resume_early() callbacks for them.  This\nway the potential conflitcs between .suspend_late()/.resume_early()\nand their runtime PM counterparts are still prevented from happening,\nbut the subtle ordering issues related to disabling/enabling runtime\nPM for devices during system suspend/resume are much easier to avoid.\n\nReported-and-tested-by: Jan-Matthias Braun \u003cjan_braun@gmx.net\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nReviewed-by: Ulf Hansson \u003culf.hansson@linaro.org\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: 3.4+ \u003cstable@vger.kernel.org\u003e\n"
    },
    {
      "commit": "4ce4780270b69a0f4ce81887c2ef864c04cb7f9f",
      "tree": "0907d472428ed78965a4ee3e69a3a904f960a526",
      "parents": [
        "d1c3ed669a2d452cacfb48c2d171a1f364dae2ed"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Dec 18 14:07:49 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sun Jan 06 00:32:51 2013 +0100"
      },
      "message": "PM / QoS: Rename local variable in dev_pm_qos_add_ancestor_request()\n\nLocal variable \u0027error\u0027 in dev_pm_qos_add_ancestor_request() need\nnot contain error codes only, so rename it to \u0027ret\u0027.\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "64adb0192ff309051492b34139bb842024ebb119",
      "tree": "4ac783c6f5616f015688275b93b6763dc4253ce3",
      "parents": [
        "26ab93438fbacc653c60ea4d148b6ca16919ab1b",
        "c122f27e1c1bada4cdf19669afed5a00a69bc5a5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 29 21:46:41 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 29 21:46:41 2012 +0100"
      },
      "message": "Merge branch \u0027pm-runtime\u0027\n\n* pm-runtime:\n  base: power - use clk_prepare_enable and clk_prepare_disable\n"
    },
    {
      "commit": "26ab93438fbacc653c60ea4d148b6ca16919ab1b",
      "tree": "7f95470de4a37770b80f510b5fb4e807b494c0ab",
      "parents": [
        "9ee71f513c698b05f67e74f7ce66ba4f23f9073f",
        "ea83f81b489be3be268ed7fabfe8dd94bdc45a29"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 29 21:46:33 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 29 21:46:33 2012 +0100"
      },
      "message": "Merge branch \u0027pm-opp\u0027\n\n* pm-opp:\n  PM / OPP: using kfree_rcu() to simplify the code\n  PM / OPP: predictable fail results for opp_find* functions, v2\n  PM / OPP: Export symbols for module usage.\n  PM / OPP: RCU reclaim\n"
    },
    {
      "commit": "c8b6817103b23ed42114516fea901c2f61271506",
      "tree": "f3a54c55a37cfa02496de62c0f0b89f2a52dc219",
      "parents": [
        "9489e9dcae718d5fde988e4a684a0f55b5f94d17",
        "35546bd477146b75ae2a9ff2cb9bfcdb0f701015"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 29 21:40:32 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 29 21:40:32 2012 +0100"
      },
      "message": "Merge branch \u0027pm-qos\u0027\n\n* pm-qos:\n  PM / QoS: Handle device PM QoS flags while removing constraints\n  PM / QoS: Resume device before exposing/hiding PM QoS flags\n  PM / QoS: Document request manipulation requirement for flags\n  PM / QoS: Fix a free error in the dev_pm_qos_constraints_destroy()\n  PM / QoS: Fix the return value of dev_pm_qos_update_request()\n  PM / ACPI: Take device PM QoS flags into account\n  PM / Domains: Check device PM QoS flags in pm_genpd_poweroff()\n  PM / QoS: Make it possible to expose PM QoS device flags to user space\n  PM / QoS: Introduce PM QoS device flags support\n  PM / QoS: Prepare struct dev_pm_qos_request for more request types\n  PM / QoS: Introduce request and constraint data types for PM QoS flags\n  PM / QoS: Prepare device structure for adding more constraint types\n"
    },
    {
      "commit": "35546bd477146b75ae2a9ff2cb9bfcdb0f701015",
      "tree": "5e4b32a1dfbc029772a4e4a9df94981094235b6b",
      "parents": [
        "7e4d68443a80574392d1027ff34992ab945934a6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Nov 24 10:10:51 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Nov 24 10:10:51 2012 +0100"
      },
      "message": "PM / QoS: Handle device PM QoS flags while removing constraints\n\nPM QoS flags have to be handled by dev_pm_qos_constraints_destroy()\nin the same way as PM QoS resume latency constraints.  That is, if\nthey have been exposed to user space, they have to be hidden from it\nand the list of flags requests has to be flushed before destroying\nthe device\u0027s PM QoS object.  Make that happen.\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "a7227a0faa117d0bc532aea546ae5ac5f89e8ed7",
      "tree": "ad2843227bd9d9baac592463a86e0f3d485ad9d9",
      "parents": [
        "f4a75d2eb7b1e2206094b901be09adb31ba63681"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Fri Nov 23 20:55:06 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Nov 23 20:55:06 2012 +0100"
      },
      "message": "PM / QoS: fix wrong error-checking condition\n\ndev_pm_qos_add_request() can return 0, 1, or a negative error code,\ntherefore the correct error test is \"if (error \u003c 0).\" Checking just for\nnon-zero return code leads to erroneous setting of the req-\u003edev pointer\nto NULL, which then leads to a repeated call to\ndev_pm_qos_add_ancestor_request() in st1232_ts_irq_handler(). This in turn\nleads to an Oops, when the I2C host adapter is unloaded and reloaded again\nbecause of the inconsistent state of its QoS request list.\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "c122f27e1c1bada4cdf19669afed5a00a69bc5a5",
      "tree": "ef6812f564e97713867c939934c8cdf57945f02b",
      "parents": [
        "77b67063bb6bce6d475e910d3b886a606d0d91f7"
      ],
      "author": {
        "name": "Murali Karicheri",
        "email": "m-karicheri2@ti.com",
        "time": "Tue Oct 23 01:18:40 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:36:43 2012 +0100"
      },
      "message": "base: power - use clk_prepare_enable and clk_prepare_disable\n\nWhen PM runtime is enabled in DaVinci and the machine migrates to\ncommon clk framework, the clk_enable() gets called without\nclk_prepare(). This patch is to fix this issue so that PM run\ntime can inter work with common clk framework.\n\nSigned-off-by: Murali Karicheri \u003cm-karicheri2@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "ea83f81b489be3be268ed7fabfe8dd94bdc45a29",
      "tree": "02a79b38fec0c8fad31acbfa03b820ae00c242af",
      "parents": [
        "0779726cc265805d0f7c7dd1d791fa4076b31a9a"
      ],
      "author": {
        "name": "Wei Yongjun",
        "email": "yongjun_wei@trendmicro.com.cn",
        "time": "Wed Oct 31 01:29:17 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:36:10 2012 +0100"
      },
      "message": "PM / OPP: using kfree_rcu() to simplify the code\n\nThe callback function of call_rcu() just calls a kfree(), so we\ncan use kfree_rcu() instead of call_rcu() + callback function.\n\ndpatch engine is used to auto generate this patch.\n(https://github.com/weiyj/dpatch)\n\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "0779726cc265805d0f7c7dd1d791fa4076b31a9a",
      "tree": "a43a115b9b701dfa275566002cc2ad3d227792fe",
      "parents": [
        "80126ce7aeb4e187429681ef8a7785b7dcd7a348"
      ],
      "author": {
        "name": "Nishanth Menon",
        "email": "nm@ti.com",
        "time": "Wed Oct 24 22:00:12 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:36:10 2012 +0100"
      },
      "message": "PM / OPP: predictable fail results for opp_find* functions, v2\n\nCurrently the opp_find* functions return -ENODEV when:\na) it cant find a device (e.g. request for an OPP search on device\n   which was not registered)\nb) When it cant find a match for the search strategy used\n\nThis makes life a little in-efficient for users such as devfreq\nto make reasonable judgement before switching search strategies.\n\nSo, standardize the return results as following:\n -EINVAL for bad pointer parameters\n -ENODEV when device cannot be found\n -ERANGE when search fails\n\nThis has the following benefit for devfreq implementation:\nThe search fails when an unregistered device pointer is provided.\nThis is a trigger to change the search direction and search for\na better fit, however, if we cannot differentiate between a valid\nsearch range failure Vs an unregistered device, second search goes\nthrough the same fail return condition. This can be avoided by\nappropriate handling of error return code.\n\nWith this change, we also fix devfreq for the improved search\nstrategy with updated error code.\n\nSigned-off-by: Nishanth Menon \u003cnm@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: MyungJoo Ham \u003cmyungjoo.ham@samsung.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "80126ce7aeb4e187429681ef8a7785b7dcd7a348",
      "tree": "11ec0607544e8657028b7a4d5dea0226a5811437",
      "parents": [
        "dde8437d06560366d8988c92b5774039ec703864"
      ],
      "author": {
        "name": "Liam Girdwood",
        "email": "lrg@ti.com",
        "time": "Tue Oct 23 01:27:44 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:36:10 2012 +0100"
      },
      "message": "PM / OPP: Export symbols for module usage.\n\nExport the OPP functions for use by driver modules.\n\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: linux-pm@vger.kernel.org\nCc: linux-kernel@vger.kernel.org\n\n[nm@ti.com: expansion of functions exported]\nSigned-off-by: Nishanth Menon \u003cnm@ti.com\u003e\nSigned-off-by: Liam Girdwood \u003clrg@ti.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "dde8437d06560366d8988c92b5774039ec703864",
      "tree": "80ee897c0964a325be3c2d8a626ff82dd89013b3",
      "parents": [
        "77b67063bb6bce6d475e910d3b886a606d0d91f7"
      ],
      "author": {
        "name": "Vincent Guittot",
        "email": "vincent.guittot@linaro.org",
        "time": "Tue Oct 23 01:21:49 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:36:09 2012 +0100"
      },
      "message": "PM / OPP: RCU reclaim\n\nsynchronize_rcu() blocks the caller of opp_enable/disbale\nfor a complete grace period. This blocking duration prevents\nany intensive use of the functions. Replace synchronize_rcu()\nby call_rcu() which will call our function for freeing the old\nopp element.\n\nThe duration of opp_enable() and opp_disable() will be no more\ndependant of the grace period.\n\nSigned-off-by: Vincent Guittot \u003cvincent.guittot@linaro.org\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "7e4d68443a80574392d1027ff34992ab945934a6",
      "tree": "3b04de31cf03502a89968aa14db3439ec37f1757",
      "parents": [
        "436ede8942ab43474182c6454f420d71f7bb1163"
      ],
      "author": {
        "name": "Lan Tianyu",
        "email": "tianyu.lan@intel.com",
        "time": "Thu Nov 08 11:14:08 2012 +0800"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Nov 10 22:56:19 2012 +0100"
      },
      "message": "PM / QoS: Resume device before exposing/hiding PM QoS flags\n\nSince dev_pm_qos_add_request(), dev_pm_qos_update_request() and\ndev_pm_qos_remove_request() for PM QoS flags should not be invoked\nwhen device in RPM_SUSPENDED, add pm_runtime_get_sync() and pm_runtime_put()\naround these functions in dev_pm_qos_expose_flags() and\ndev_pm_qos_hide_flags().\n\n[rjw: Modified the subject and changelog to better reflect the code\n changes made.]\n\nSigned-off-by: Lan Tianyu \u003ctianyu.lan@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "436ede8942ab43474182c6454f420d71f7bb1163",
      "tree": "c4cbda081690af54b70f1f76aebb42f8be44754f",
      "parents": [
        "9eaee2cdcf9ead20f234b15ed26f82a96a4fa8fb"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Nov 02 13:10:09 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Fri Nov 02 13:10:09 2012 +0100"
      },
      "message": "PM / QoS: Document request manipulation requirement for flags\n\nIn fact, the callers of dev_pm_qos_add_request(),\ndev_pm_qos_update_request() and dev_pm_qos_remove_request() for\nrequests of type DEV_PM_QOS_FLAGS need to ensure that the target\ndevice is not RPM_SUSPENDED before using any of these functions (or\nbe prepared for the new PM QoS flags to take effect after the device\nhas been resumed).  Document this in their kerneldoc comments.\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "9eaee2cdcf9ead20f234b15ed26f82a96a4fa8fb",
      "tree": "3b6be1bc8707ae7401952587440a375ace270aed",
      "parents": [
        "f9652875dcd49d400b775aecc8e0bf76e405b70a"
      ],
      "author": {
        "name": "Lan,Tianyu",
        "email": "tianyu.lan@intel.com",
        "time": "Thu Nov 01 22:45:30 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 01 22:45:30 2012 +0100"
      },
      "message": "PM / QoS: Fix a free error in the dev_pm_qos_constraints_destroy()\n\nFree a wrong point to struct dev_pm_qos-\u003elatency which suppose to\nbe the point to struct dev_pm_qos. The patch is to fix the issue.\n\nSigned-off-by: Lan Tianyu \u003ctianyu.lan@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "f9652875dcd49d400b775aecc8e0bf76e405b70a",
      "tree": "d60cd35c7e186c328a3c9df47c8b837a9b78889c",
      "parents": [
        "8b713a88cc8b746f975958183fa641e9f1c8086d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 30 20:00:30 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 30 20:00:30 2012 +0100"
      },
      "message": "PM / QoS: Fix the return value of dev_pm_qos_update_request()\n\nCommit e39473d (PM / QoS: Make it possible to expose PM QoS device\nflags to user space) introduced __dev_pm_qos_update_request() to be\ncalled internally by dev_pm_qos_update_request(), but forgot to make\nthe latter actually use the return value of the former.  Fix this\nmistake.\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "34b1f76275a2cb8c1ce8e00095d200552b235122",
      "tree": "4dbb207a615c79692ccc741103cdb8ab83372bde",
      "parents": [
        "e39473d0b9448e770f49b0b15e514be884264438"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Wed Oct 24 02:08:30 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Wed Oct 24 02:08:30 2012 +0200"
      },
      "message": "PM / Domains: Check device PM QoS flags in pm_genpd_poweroff()\n\nMake the generic PM domains pm_genpd_poweroff() function take\ndevice PM QoS flags into account when deciding whether or not to\nremove power from the domain.\n\nAfter this change the routine will return -EBUSY without executing\nthe domain\u0027s .power_off() callback if there is at least one PM QoS\nflags request for at least one device in the domain and at least of\nthose request has at least one of the NO_POWER_OFF and REMOTE_WAKEUP\nflags set.\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nReviewed-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: mark gross \u003cmarkgross@thegnar.org\u003e\n"
    },
    {
      "commit": "e39473d0b9448e770f49b0b15e514be884264438",
      "tree": "a6fbf50c1fcd8e7cfd176425384a82fe06d3cadd",
      "parents": [
        "ae0fb4b72c8db7e6c4ef32bc58a43a759ad414b9"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Wed Oct 24 02:08:18 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Wed Oct 24 02:08:18 2012 +0200"
      },
      "message": "PM / QoS: Make it possible to expose PM QoS device flags to user space\n\nDefine two device PM QoS flags, PM_QOS_FLAG_NO_POWER_OFF\nand PM_QOS_FLAG_REMOTE_WAKEUP, and introduce routines\ndev_pm_qos_expose_flags() and dev_pm_qos_hide_flags() allowing the\ncaller to expose those two flags to user space or to hide them\nfrom it, respectively.\n\nAfter the flags have been exposed, user space will see two\nadditional sysfs attributes, pm_qos_no_power_off and\npm_qos_remote_wakeup, under the device\u0027s /sys/devices/.../power/\ndirectory.  Then, writing 1 to one of them will update the\nPM QoS flags request owned by user space so that the corresponding\nflag is requested to be set.  In turn, writing 0 to one of them\nwill cause the corresponding flag in the user space\u0027s request to\nbe cleared (however, the owners of the other PM QoS flags requests\nfor the same device may still request the flag to be set and it\nmay be effectively set even if user space doesn\u0027t request that).\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nReviewed-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nAcked-by: mark gross \u003cmarkgross@thegnar.org\u003e\n"
    },
    {
      "commit": "ae0fb4b72c8db7e6c4ef32bc58a43a759ad414b9",
      "tree": "41f5b9014613d865ca69fe25ceb8fcc05c22b2f1",
      "parents": [
        "021c870ba4ab4bc9a23d5db4e324f50f26d8ab24"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 23 01:09:12 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 23 01:09:12 2012 +0200"
      },
      "message": "PM / QoS: Introduce PM QoS device flags support\n\nModify the device PM QoS core code to support PM QoS flags requests.\n\nFirst, add a new field of type struct pm_qos_flags called \"flags\"\nto struct dev_pm_qos for representing the list of PM QoS flags\nrequests for the given device.  Accordingly, add a new \"type\" field\nto struct dev_pm_qos_request (along with an enum for representing\nrequest types) and a new member called \"flr\" to its data union for\nrepresentig flags requests.\n\nSecond, modify dev_pm_qos_add_request(), dev_pm_qos_update_request(),\nthe internal routine apply_constraint() used by them and their\nexisting callers to cover flags requests as well as latency\nrequests.  In particular, dev_pm_qos_add_request() gets a new\nargument called \"type\" for specifying the type of a request to be\nadded.\n\nFinally, introduce two routines, __dev_pm_qos_flags() and\ndev_pm_qos_flags(), allowing their callers to check which PM QoS\nflags have been requested for the given device (the caller is\nsupposed to pass the mask of flags to check as the routine\u0027s\nsecond argument and examine its return value for the result).\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nReviewed-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: mark gross \u003cmarkgross@thegnar.org\u003e\n"
    },
    {
      "commit": "021c870ba4ab4bc9a23d5db4e324f50f26d8ab24",
      "tree": "b6e928a4d20ffab16297e0d44de59ee20aaf9c6d",
      "parents": [
        "5efbe4279f959a3f5ed26adf5f05cb78dd1ffa7e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 23 01:09:00 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 23 01:09:00 2012 +0200"
      },
      "message": "PM / QoS: Prepare struct dev_pm_qos_request for more request types\n\nThe subsequent patches will use struct dev_pm_qos_request for\nrepresenting both latency requests and flags requests.  To make that\neasier, put the node member of struct dev_pm_qos_request (under the\nname \"pnode\") into a union called \"data\" that will represent the\nrequest\u0027s  value and list node depending on its type.\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nReviewed-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: mark gross \u003cmarkgross@thegnar.org\u003e\n"
    },
    {
      "commit": "5f986c590fcf4284924fcda991cf14ab32bff49f",
      "tree": "07b31910af67192423c5bc7b7e6ee1134bc221c2",
      "parents": [
        "6f0c0580b70c89094b3422ba81118c7b959c7556"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 23 01:07:27 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 23 01:07:27 2012 +0200"
      },
      "message": "PM / QoS: Prepare device structure for adding more constraint types\n\nCurrently struct dev_pm_info contains only one PM QoS constraints\npointer reserved for latency requirements.  Since one more device\nconstraints type (i.e. flags) will be necessary, introduce a new\nstructure, struct dev_pm_qos, that eventually will contain all of\nthe available device PM QoS constraints and replace the \"constraints\"\npointer in struct dev_pm_info with a pointer to the new structure\ncalled \"qos\".\n\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nReviewed-by: Jean Pihet \u003cj-pihet@ti.com\u003e\n"
    },
    {
      "commit": "debe081aaa4d247b9957ac2336d84deab32d9909",
      "tree": "0ca76f03976a6763a57d893c0c9f3340e73bbcc4",
      "parents": [
        "2978af545b9a1ed221e23fb24ae4559bec6ad70d"
      ],
      "author": {
        "name": "jhbird.choi@samsung.com",
        "email": "jhbird.choi@samsung.com",
        "time": "Tue Oct 23 00:54:38 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Oct 23 00:54:38 2012 +0200"
      },
      "message": "PM / Domains: Fix memory leak on error path in pm_genpd_attach_cpuidle\n\nIf pm_genpd_attach_cpudidle failed we leak memory stored in \u0027cpu_data\u0027.\n\nSigned-off-by: Jonghwan Choi \u003cjhbird.choi@samsung.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "16642a2e7be23bbda013fc32d8f6c68982eab603",
      "tree": "346ae485f485f6901e5d8150f0d34d178a7dd448",
      "parents": [
        "51562cba98939da0a1d10fe7c25359b77a069033",
        "b9142167a2bb979b58b98ffcd928a311b55cbd9f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 18:32:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 18:32:35 2012 -0700"
      },
      "message": "Merge tag \u0027pm-for-3.7-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull power management updates from Rafael J Wysocki:\n\n - Improved system suspend/resume and runtime PM handling for the SH\n   TMU, CMT and MTU2 clock event devices (also used by ARM/shmobile).\n\n - Generic PM domains framework extensions related to cpuidle support\n   and domain objects lookup using names.\n\n - ARM/shmobile power management updates including improved support for\n   the SH7372\u0027s A4S power domain containing the CPU core.\n\n - cpufreq changes related to AMD CPUs support from Matthew Garrett,\n   Andre Przywara and Borislav Petkov.\n\n - cpu0 cpufreq driver from Shawn Guo.\n\n - cpufreq governor fixes related to the relaxing of limit from Michal\n   Pecio.\n\n - OMAP cpufreq updates from Axel Lin and Richard Zhao.\n\n - cpuidle ladder governor fixes related to the disabling of states from\n   Carsten Emde and me.\n\n - Runtime PM core updates related to the interactions with the system\n   suspend core from Alan Stern and Kevin Hilman.\n\n - Wakeup sources modification allowing more helper functions to be\n   called from interrupt context from John Stultz and additional\n   diagnostic code from Todd Poynor.\n\n - System suspend error code path fix from Feng Hong.\n\nFixed up conflicts in cpufreq/powernow-k8 that stemmed from the\nworkqueue fixes conflicting fairly badly with the removal of support for\nhardware P-state chips.  The changes were independent but somewhat\nintertwined.\n\n* tag \u0027pm-for-3.7-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits)\n  Revert \"PM QoS: Use spinlock in the per-device PM QoS constraints code\"\n  PM / Runtime: let rpm_resume() succeed if RPM_ACTIVE, even when disabled, v2\n  cpuidle: rename function name \"__cpuidle_register_driver\", v2\n  cpufreq: OMAP: Check IS_ERR() instead of NULL for omap_device_get_by_hwmod_name\n  cpuidle: remove some empty lines\n  PM: Prevent runtime suspend during system resume\n  PM QoS: Use spinlock in the per-device PM QoS constraints code\n  PM / Sleep: use resume event when call dpm_resume_early\n  cpuidle / ACPI : move cpuidle_device field out of the acpi_processor_power structure\n  ACPI / processor: remove pointless variable initialization\n  ACPI / processor: remove unused function parameter\n  cpufreq: OMAP: remove loops_per_jiffy recalculate for smp\n  sections: fix section conflicts in drivers/cpufreq\n  cpufreq: conservative: update frequency when limits are relaxed\n  cpufreq / ondemand: update frequency when limits are relaxed\n  properly __init-annotate pm_sysrq_init()\n  cpufreq: Add a generic cpufreq-cpu0 driver\n  PM / OPP: Initialize OPP table from device tree\n  ARM: add cpufreq transiton notifier to adjust loops_per_jiffy for smp\n  cpufreq: Remove support for hardware P-state chips from powernow-k8\n  ...\n"
    },
    {
      "commit": "b9142167a2bb979b58b98ffcd928a311b55cbd9f",
      "tree": "ed6f8d78257469d8caea08da8ce737bfbaaaff5a",
      "parents": [
        "057d51a1268fe4be039db8ff0791fcfcb63a4f1b",
        "8376869e51f5094e87229aa6200c43ada85c9aaf"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 21:41:31 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 21:41:31 2012 +0200"
      },
      "message": "Merge branch \u0027pm-qos\u0027\n\n* pm-qos:\n  Revert \"PM QoS: Use spinlock in the per-device PM QoS constraints code\"\n"
    },
    {
      "commit": "8376869e51f5094e87229aa6200c43ada85c9aaf",
      "tree": "d896e9fcd61dccd27f253c794e2f742c6f59907d",
      "parents": [
        "fc2fb3a075c206927d3fbad251dae82ba82ccf2d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 21:39:36 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 21:39:36 2012 +0200"
      },
      "message": "Revert \"PM QoS: Use spinlock in the per-device PM QoS constraints code\"\n\nThis reverts commit fc2fb3a075c206927d3fbad251dae82ba82ccf2d.\n\nThe problem with the above commit is that it makes the device PM QoS\ncore code hold a spinlock around blocking_notifier_call_chain()\ninvocations.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "057d51a1268fe4be039db8ff0791fcfcb63a4f1b",
      "tree": "50b7395aa526c5be9f3ae75836b5ad364db04877",
      "parents": [
        "071f58279f274f749c4109aef86d899766014139",
        "88d26136a256576e444db312179e17af6dd0ea87"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 13:31:38 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 13:31:38 2012 +0200"
      },
      "message": "Merge branch \u0027pm-sleep\u0027\n\n* pm-sleep:\n  PM: Prevent runtime suspend during system resume\n  PM / Sleep: use resume event when call dpm_resume_early\n\nConflicts:\n\tdrivers/base/power/main.c (trivial)\n"
    },
    {
      "commit": "071f58279f274f749c4109aef86d899766014139",
      "tree": "028e8da9404d88c8deb8d969233f85b2ff883cd0",
      "parents": [
        "c26d4114aac55b57078caf83e261621d22e4596d",
        "6f3c77b040fc24708228607bba504878de5236d1"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 13:30:55 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 13:30:55 2012 +0200"
      },
      "message": "Merge branch \u0027pm-runtime\u0027\n\n* pm-runtime:\n  PM / Runtime: let rpm_resume() succeed if RPM_ACTIVE, even when disabled, v2\n"
    },
    {
      "commit": "c26d4114aac55b57078caf83e261621d22e4596d",
      "tree": "e6d4866731e5ab4c17e00548ed42e78252d72426",
      "parents": [
        "721b50ee48ab65cea30c940951145afc11f3e362",
        "fc2fb3a075c206927d3fbad251dae82ba82ccf2d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 13:30:50 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 24 13:30:50 2012 +0200"
      },
      "message": "Merge branch \u0027pm-qos\u0027\n\n* pm-qos:\n  PM QoS: Use spinlock in the per-device PM QoS constraints code\n"
    },
    {
      "commit": "6f3c77b040fc24708228607bba504878de5236d1",
      "tree": "7959e694191ba0b0daa5a238b0e3dd65a7de7159",
      "parents": [
        "5698bd757d55b1bb87edd1a9744ab09c142abfc2"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@ti.com",
        "time": "Fri Sep 21 22:47:34 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Sep 22 21:15:08 2012 +0200"
      },
      "message": "PM / Runtime: let rpm_resume() succeed if RPM_ACTIVE, even when disabled, v2\n\nThere are several drivers where the return value of\npm_runtime_get_sync() is used to decide whether or not it is safe to\naccess hardware and that don\u0027t provide .suspend() callbacks for system\nsuspend (but may use late/noirq callbacks.)  If such a driver happens\nto call pm_runtime_get_sync() during system suspend, after the core\nhas disabled runtime PM, it will get the error code and will decide\nthat the hardware should not be accessed, although this may be a wrong\nconclusion, depending on the state of the device when runtime PM was\ndisabled.\n\nDrivers might work around this problem by using a test like:\n\n   ret \u003d pm_runtime_get_sync(dev);\n   if (!ret || (ret \u003d\u003d -EACCES \u0026\u0026 driver_private_data(dev)-\u003esuspended)) {\n      /* access hardware */\n   }\n\nwhere driver_private_data(dev)-\u003esuspended is a flag set by the\ndriver\u0027s .suspend() method (that would have to be added for this\npurpose).  However, that potentially would need to be done by multiple\ndrivers which means quite a lot of duplicated code and bloat.\n\nTo avoid that we can use the observation that the core sets\ndev-\u003epower.is_suspended before disabling runtime PM and use that\ninstead of the driver\u0027s private flag.  Still, potentially many drivers\nwould need to repeat that same check in quite a few places, so it\u0027s\nbetter to let the core do it.\n\nThen we can be a bit smarter and check whether or not runtime PM was\ndisabled by the core only (disable_depth \u003d\u003d 1) or by someone else in\naddition to the core (disable_depth \u003e 1).  In the former case\nrpm_resume() can return 1 if the runtime PM status is RPM_ACTIVE,\nbecause it means the device was active when the core disabled runtime\nPM.  In the latter case it should still return -EACCES, because it\nisn\u0027t clear why runtime PM has been disabled.\n\nTested on AM3730/Beagle-xM where a wakeup IRQ firing during the late\nsuspend phase triggers runtime PM activity in the I2C driver since the\nwakeup IRQ is on an I2C-connected PMIC.\n\n[rjw: Modified whitespace to follow the file\u0027s convention.]\n\nSigned-off-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "88d26136a256576e444db312179e17af6dd0ea87",
      "tree": "21bd82f6880a91708549512fdb42bc4c79b4ea98",
      "parents": [
        "997a031107ec962967ce36db9bc500f1fad491c1"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Sep 19 21:59:02 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Sep 19 21:59:02 2012 +0200"
      },
      "message": "PM: Prevent runtime suspend during system resume\n\nThis patch (as1591) moves the pm_runtime_get_noresume() and\npm_runtime_put_sync() calls from __device_suspend() and\ndevice_resume() to device_prepare() and device_complete() in the PM\ncore.\n\nThe reason for doing this is to make sure that parent devices remain\nat full power (i.e., don\u0027t go into runtime suspend) while their\nchildren are being resumed from a system sleep.\n\nThe PCI core already contained equivalent code to serve the same\npurpose.  The patch removes the duplicated code, since it is no longer\nneeded.  One of the comments from the PCI core gets moved into the PM\ncore, and a second comment is added to explain whe the _get_noresume\nand _put_sync calls are present.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "fc2fb3a075c206927d3fbad251dae82ba82ccf2d",
      "tree": "12306571287f05058831654bbe516e54e0e76546",
      "parents": [
        "c6a57bfffea5b673e5b4f9aeff85a00607e59077"
      ],
      "author": {
        "name": "Jean Pihet",
        "email": "jean.pihet@newoldbits.com",
        "time": "Wed Sep 19 14:17:20 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Sep 19 14:17:20 2012 +0200"
      },
      "message": "PM QoS: Use spinlock in the per-device PM QoS constraints code\n\nThe per-device PM QoS locking requires a spinlock to be used. The reasons\nare:\n - an alignement with the PM QoS core code, which is used by the per-device\n   PM QoS code for the constraints lists management. The PM QoS core code\n   uses spinlocks to protect the constraints lists,\n - some drivers need to use the per-device PM QoS functionality from\n   interrupt context or spinlock protected context.\n   An example of such a driver is the OMAP HSI (high-speed synchronous serial\n   interface) driver which needs to control the IP block idle state\n   depending on the FIFO empty state, from interrupt context.\n\nReported-by: Djamil Elaidi \u003cd-elaidi@ti.com\u003e\nSigned-off-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "997a031107ec962967ce36db9bc500f1fad491c1",
      "tree": "b191d37389ad3a44784c22e05dbc037877f882b4",
      "parents": [
        "bbdc18a3fb6740619f0d037241c85dc6cd4517aa"
      ],
      "author": {
        "name": "Feng Hong",
        "email": "hongfeng@marvell.com",
        "time": "Wed Sep 19 14:16:00 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Sep 19 14:16:00 2012 +0200"
      },
      "message": "PM / Sleep: use resume event when call dpm_resume_early\n\nWhen dpm_suspend_noirq fail, state is PMSG_SUSPEND,\nshould change to PMSG_RESUME when dpm_resume_early is called\n\nSigned-off-by: Feng Hong \u003chongfeng@marvell.com\u003e\nSigned-off-by: Raul Xiong \u003cxjian@marvell.com\u003e\nSigned-off-by: Neil Zhang \u003czhangwm@marvell.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "fa373abbbd01109b849fa331da73ee17748def66",
      "tree": "3a8a53e34891cfc4315b67a843dab1e441eb918b",
      "parents": [
        "87a2337abdd752d711724d7654a6db1b5b4c0d4d",
        "cd664cc3a574b30988476143c1dcc9298b1fa531"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 17 20:26:02 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 17 20:26:02 2012 +0200"
      },
      "message": "Merge branch \u0027pm-cpufreq\u0027\n\n* pm-cpufreq:\n  cpufreq: OMAP: remove loops_per_jiffy recalculate for smp\n  sections: fix section conflicts in drivers/cpufreq\n  cpufreq: conservative: update frequency when limits are relaxed\n  cpufreq / ondemand: update frequency when limits are relaxed\n  cpufreq: Add a generic cpufreq-cpu0 driver\n  PM / OPP: Initialize OPP table from device tree\n  ARM: add cpufreq transiton notifier to adjust loops_per_jiffy for smp\n  cpufreq: Remove support for hardware P-state chips from powernow-k8\n  acpi-cpufreq: Add compatibility for legacy AMD cpb sysfs knob\n  acpi-cpufreq: Add support for disabling dynamic overclocking\n  ACPI: Add fixups for AMD P-state figures\n  powernow-k8: delay info messages until initialization has succeeded\n  cpufreq: Add warning message to powernow-k8\n  acpi-cpufreq: Add quirk to disable _PSD usage on all AMD CPUs\n  acpi-cpufreq: Add support for modern AMD CPUs\n  cpufreq / powernow-k8: Fixup missing _PSS objects message\n  PM / cpufreq: Initialise the cpu field during conservative governor start\n"
    },
    {
      "commit": "d6a56ae7ac6121ef99500b3380e98f83a3d9e102",
      "tree": "372217920c4cbbf11eb7e332ddfa54e63eaa9d25",
      "parents": [
        "079d364b042afbe811c4bb0cb57fcbf4f1cfab6d",
        "bbdc18a3fb6740619f0d037241c85dc6cd4517aa"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 17 20:25:38 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Sep 17 20:25:38 2012 +0200"
      },
      "message": "Merge branch \u0027pm-sleep\u0027\n\n* pm-sleep:\n  properly __init-annotate pm_sysrq_init()\n  PM / wakeup: Use irqsave/irqrestore for events_lock\n  PM / Freezer: Fix small typo \"regrigerator\"\n  PM / Sleep: Print name of wakeup source that aborts suspend\n"
    },
    {
      "commit": "b496dfbc94ab86f970ef0167eaabe51f930aa5fb",
      "tree": "3ce7bdb6847fbcff3f46935ebc5b5c17da23d31d",
      "parents": [
        "ec971ea5f2426a0bf9d5cca9a103743918c12978"
      ],
      "author": {
        "name": "Shawn Guo",
        "email": "shawn.guo@linaro.org",
        "time": "Wed Sep 05 01:09:12 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Sep 09 22:06:33 2012 +0200"
      },
      "message": "PM / OPP: Initialize OPP table from device tree\n\nWith a lot of devices booting from device tree nowadays, it requires\nthat OPP table can be initialized from device tree.  The patch adds\na helper function of_init_opp_table together with a binding doc for\nthat purpose.\n\nSigned-off-by: Shawn Guo \u003cshawn.guo@linaro.org\u003e\nAcked-by: Rob Herring \u003crob.herring@calxeda.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4955070974ecfa0b1ae9d2506f529460fd3a4b0b",
      "tree": "7eaf09c1756fa1bf2534998a60b9543cc411d79d",
      "parents": [
        "5834ec3aea8a84b70efeb52ee91a8f8b1042cd2a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Sep 06 23:19:06 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Sep 06 23:19:06 2012 +0200"
      },
      "message": "PM / wakeup: Use irqsave/irqrestore for events_lock\n\nJon Medhurst (Tixy) recently noticed a problem with the\nevents_lock usage. One of the Android patches that uses\nwakeup_sources calls wakeup_source_add() with irqs disabled.\nHowever, the event_lock usage in wakeup_source_add() uses\nspin_lock_irq()/spin_unlock_irq(), which reenables interrupts.\nThis results in lockdep warnings.\n\nThe fix is to use spin_lock_irqsave()/spin_lock_irqrestore()\ninstead for the events_lock.\n\nReferences: https://bugs.launchpad.net/linaro-landing-team-arm/+bug/1037565\nReported-and-debugged-by: Jon Medhurst (Tixy) \u003ctixy@linaro.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b3d3b9fb6016e6eacd3ae49fb786806d00c43e7b",
      "tree": "0502ad1e26b00f042d2462e6f7fbaf18eee352d8",
      "parents": [
        "74a2799ab51acec9410f467fef8678ebb1125d7d"
      ],
      "author": {
        "name": "Sachin Kamat",
        "email": "sachin.kamat@linaro.org",
        "time": "Thu Sep 06 08:18:57 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Sep 06 23:10:53 2012 +0200"
      },
      "message": "PM / Domains: Fix compilation warning related to genpd_start_dev_no_timing()\n\nFunction genpd_start_dev_no_timing was accessed inside CONFIG_PM_RUNTIME\nmacro but defined outside it. When the above macro was not defined the\ncompiler gave the following warning:\n\ndrivers/base/power/domain.c:96:12: warning:\n‘genpd_start_dev_no_timing’ defined but not used [-Wunused-function]\n\nSigned-off-by: Sachin Kamat \u003csachin.kamat@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "74a2799ab51acec9410f467fef8678ebb1125d7d",
      "tree": "d26ffff8d487e5412c5b18c00bfda61623f2c4df",
      "parents": [
        "40114447a7f89860b46a64e5504f313656cb5f27"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Aug 15 20:32:59 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:53 2012 +0200"
      },
      "message": "PM / Domains: Operations related to cpuidle using domain names\n\nMake it possible to use domain names in operations connecting cpuidle\nto and disconnecting it from a PM domain.  This is useful on\nplatforms where PM domain objects are organized in such a way that\nthe names of the domains are easier to use than the addresses of\nthose objects.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "40114447a7f89860b46a64e5504f313656cb5f27",
      "tree": "e46fcfd3213839ee6acb90138308b8f34bf0093c",
      "parents": [
        "8bc0251de2932e603f8ed73b76ba2d64b2dc1d18"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Aug 15 20:32:43 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:53 2012 +0200"
      },
      "message": "PM / Domains: Document cpuidle-related functions and change their names\n\nThe names of the cpuidle-related functions in\ndrivers/base/power/domain.c are inconsistent with the names of the\nother exported functions in that file (the \"pm_\" prefix is missing\nfrom them) and they are missing kerneldoc comments.\n\nFix that by adding the missing \"pm_\" prefix to the names of those\nfunctions and add kerneldoc comments documenting them.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8bc0251de2932e603f8ed73b76ba2d64b2dc1d18",
      "tree": "a29341739203de17f76c4044e5ad24b095e758f5",
      "parents": [
        "fb7268be9f72bed6ae48554f00f2dcb2ef333bfc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Aug 07 01:11:14 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:53 2012 +0200"
      },
      "message": "PM / Domains: Add power-on function using names to identify domains\n\nIt sometimes is necessary to turn on a given PM domain when only\nthe name of it is known and the domain pointer is not readily\navailable.  For this reason, add a new helper function,\npm_genpd_name_poweron(), allowing the caller to turn on a PM domain\nusing its name for identification.  To avoid code duplication,\nmove the domain lookup code to a separate function.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "fb7268be9f72bed6ae48554f00f2dcb2ef333bfc",
      "tree": "2e77fa08d00b04cf4902f6906489ada6bc41fc2f",
      "parents": [
        "b5abb085f5540a612b0b7a6326ae2a07de2330dd"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Aug 07 01:08:37 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:52 2012 +0200"
      },
      "message": "PM / Domains: Make it possible to use names when adding subdomains\n\nAdd a new helper function, pm_genpd_add_subdomain_names(), allowing\nthe caller to add a subdomain to a generic PM domain using names for\ndomain identification (both domains have to be initialized before).\n\nThis function is useful for adding subdomains to PM domains whose\nrepresentations are stored in tables, when the caller doesn\u0027t know\nthe indices of the domain to add the subdomain to and of the\nsubdomain itself, but it knows the domains\u0027 names.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b5abb085f5540a612b0b7a6326ae2a07de2330dd",
      "tree": "00098a48ea6b872e1d5f05939a30c0fbb9f5e779",
      "parents": [
        "feb70af0e3ac6817327be70b47731039ea135dbc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Aug 07 01:06:11 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:52 2012 +0200"
      },
      "message": "PM / Domains: Make it possible to use domain names when adding devices\n\nAdd a new helper function __pm_genpd_name_add_device() allowing\na device to be added to a (registered) generic PM domain identified\nby name.  Add a wrapper around it, pm_genpd_name_add_device(),\npassing NULL as the last argument and reorganize pm_domains.h for the\nnew functions to be defined consistently with the existing ones.\n\nThese functions are useful for adding devices to PM domains whose\nrepresentations are stored in tables, when the caller doesn\u0027t know\nthe index of the domain to add the device to, but it knows the\ndomain\u0027s name.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "feb70af0e3ac6817327be70b47731039ea135dbc",
      "tree": "7df6ab174688d8bcc637af0d7a8fc7beb6a1e2aa",
      "parents": [
        "3cb6f10a4d925ec21f414bc30a8aded2830963e5"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 13 14:00:25 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:05 2012 +0200"
      },
      "message": "PM: Do not use the syscore flag for runtime PM\n\nThe syscore device PM flag used to mark the devices (belonging to\nPM domains) that should never be turned off, except for the system\ncore (syscore) suspend/hibernation and resume stages, need not be\naccessed by the runtime PM core functions, because all of the devices\nit is set for need to be marked as \"irq safe\" anyway and are\nprotected from being turned off by runtime PM by ensuring that their\nusage counters are always set.\n\nFor this reason, make the syscore flag system-wide PM-specific\nand simplify the code used for manipulating it, because it need not\nacquire the device\u0027s power.lock any more.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e2e3e4e51ebdcd757079bd7ec5dcc9dfb2ebce24",
      "tree": "89d658924faebb526d9f0649c1aa5cf984af6c88",
      "parents": [
        "dbf374142dd7a3c394ec124ebe7339a6c412d9b6"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 06 01:47:29 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:04 2012 +0200"
      },
      "message": "PM / Domains: Do not measure start time for \"irq safe\" devices\n\nThe genpd_start_dev() routine used by pm_genpd_runtime_resume()\nto put \"irq safe\" devices into the full power state measures the\ntime necessary to \"start\" the device and updates its PM QoS timing\ndata if necessary.  This may lead to a deadlock if the given device\nis a clock source and genpd_start_dev() is invoked from within the\nclock source\u0027s .enable() routine, which will happen if that routine\nuses pm_runtime_get_sync(), for example, to ensure that the device\nis operational.\n\nFor this reason, introduce a special routine analogous to\ngenpd_start_dev(), called genpd_start_dev_no_timing(), that doesn\u0027t\ncarry out the time measurement, and make pm_genpd_runtime_resume()\nuse it instead of genpd_start_dev() to power up \"irq safe\" devices.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "dbf374142dd7a3c394ec124ebe7339a6c412d9b6",
      "tree": "593b26dff2da2f364ed1ad97e667d691487d7e69",
      "parents": [
        "6fb28badf207a6d8a78906353772e1c3f560a977"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 06 01:46:39 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:04 2012 +0200"
      },
      "message": "PM / Domains: Move syscore flag from subsys data to struct device\n\nThe syscore device PM flag is used to mark the devices (belonging to\na PM domain) that should never be turned off, except for the system\ncore (syscore) suspend/hibernation and resume stages.  That flag is\nstored in the device\u0027s struct pm_subsys_data object whose address is\navailable from struct device.  However, in some situations it may be\nconvenient to set that flag before the device is added to a PM\ndomain, so it is better to move it directly to the \"power\" member of\nstruct device.  Then, it can be checked by the routines in\ndrivers/base/power/runtime.c and drivers/base/power/main.c, which is\nmore straightforward.\n\nThis also reduces the number of dev_gpd_data() invocations in the\ngeneric PM domains framework, so the overhead related to the syscore\nflag is slightly smaller.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "6fb28badf207a6d8a78906353772e1c3f560a977",
      "tree": "3cb1cdc06c263708dd40e9c490fcf8ddf921bbbd",
      "parents": [
        "bed2b42d9f0b411f384c5619870ab0fea5dd116b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 06 01:45:54 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:03 2012 +0200"
      },
      "message": "PM / Domains: Rename the always_on device flag to syscore\n\nThe always_on device flag is used to mark the devices (belonging to\na PM domain) that should never be turned off, except for the system\ncore (syscore) suspend/hibernation and resume stages.  Change name\nof that flag to \"syscore\" to better reflect its purpose.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Magnus Damm \u003cdamm@opensource.se\u003e\n"
    },
    {
      "commit": "bed2b42d9f0b411f384c5619870ab0fea5dd116b",
      "tree": "abdfe3a877b5751411ba10d6bf1a57040c56bf73",
      "parents": [
        "e91c11b1a7f876c6f056d872eb210734150a1795"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 06 01:45:11 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:03 2012 +0200"
      },
      "message": "PM / Runtime: Allow helpers to be called by early platform drivers\n\nRuntime PM helper functions, like pm_runtime_get_sync(), cannot be\ncalled by early platform device drivers, because the devices\u0027 power\nmanagement locks are not initialized at that time.  This is quite\ninconvenient, so modify early_platform_add_devices() to initialize\nthe devices power management locks as appropriate and make sure that\nthey won\u0027t be initialized more than once if an early platform\ndevice is going to be used as a regular one later.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "e91c11b1a7f876c6f056d872eb210734150a1795",
      "tree": "7f988ffa41a4a4f04aaad939d1f8b9baf1766d9e",
      "parents": [
        "cc7ad4564b1097c916834dc919678867631e7676"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 06 01:44:28 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:03 2012 +0200"
      },
      "message": "PM: Reorganize device PM initialization\n\nMake the device power management initialization more straightforward\nby moving the initialization of common (i.e. used by both runtime PM\nand system suspend) fields to a separate routine.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "77f827de07432a74821cf0f831d699544b2d474f",
      "tree": "c7abd8f50c25b43ff32ba5a4200cf5e4fcd31f89",
      "parents": [
        "802d8b49a7705298b62ac35a59b867f1288caaf3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 06 01:39:57 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:01 2012 +0200"
      },
      "message": "PM / Domains: Add power off/on function for system core suspend stage\n\nIntroduce function pm_genpd_syscore_switch() and two wrappers around\nit, pm_genpd_syscore_poweroff() and pm_genpd_syscore_poweron(),\nallowing the callers to let the generic PM domains framework know\nthat the given device is not necessary any more and its PM domain\ncan be turned off (the former) or that the given device will be\nrequired immediately, so its PM domain has to be turned on (the\nlatter) during the system core (syscore) stage of system suspend\n(or hibernation) and resume.\n\nThese functions will be used for handling devices registered as\nclock sources and clock event devices that belong to PM domains.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "802d8b49a7705298b62ac35a59b867f1288caaf3",
      "tree": "21b33d1122b7cdbe02ba87a5d0c3e4177cc71931",
      "parents": [
        "4cbe5a555fa58a79b6ecbb6c531b8bab0650778d"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Mon Aug 06 01:39:16 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 04 01:36:00 2012 +0200"
      },
      "message": "PM / Domains: Introduce simplified power on routine for system resume\n\nIntroduce function pm_genpd_sync_poweron() for restoring domain power\nduring resume from system suspend and hibernation.  It can be much\nsimpler than pm_genpd_poweron(), because it doesn\u0027t have to care\nabout locking and it can skip many checks done by the latter.\n\nModify pm_genpd_resume_noirq() and pm_genpd_restore_noirq() to use\nthe new function.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "9db48aaf18d675ac41f550c9384154e0c00de2ef",
      "tree": "70a19b9164c103e5f52dddff609e01672f8ef616",
      "parents": [
        "0592969e73ae50ce6852d1aff3d222a335289094",
        "fea7a08acb13524b47711625eebea40a0ede69a0"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Aug 27 07:08:39 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Aug 27 07:08:39 2012 -0700"
      },
      "message": "Merge 3.6-rc3 into driver-core-next\n\nThis picks up the printk fixes in 3.6-rc3 that are needed in this branch.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "a938da0682c2487f6aafc9a7c3caa8d675acdb38",
      "tree": "9315bdea7427d9a5f4ede253f0c46be780a21d5e",
      "parents": [
        "d9875690d9b89a866022ff49e3fcea892345ad92"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Sun Aug 12 00:17:02 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 17 19:40:50 2012 +0200"
      },
      "message": "PM / Sleep: Print name of wakeup source that aborts suspend\n\nA driver or app may repeatedly request a wakeup source while the system\nis attempting to enter suspend, which may indicate a bug or at least\npoint out a highly active system component that is responsible for\ndecreased battery life on a mobile device.  Even when the incidence\nof suspend abort is not severe, identifying wakeup sources that\nfrequently abort suspend can be a useful clue for power management\nanalysis.\n\nIn some cases the existing stats can point out the offender where there is\nan unexpectedly high activation count that stands out from the others, but\nin other cases the wakeup source frequently taken just after the rest of\nthe system thinks its time to suspend might not stand out in the overall\nstats.\n\nIt is also often useful to have information about what\u0027s been happening\nrecently, rather than totals of all activity for the system boot.\n\nIt\u0027s suggested to dump a line about which wakeup source\naborted suspend to aid analysis of these situations.\n\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "55d7ec4520e86d735d178c15d7df33d507bd43c6",
      "tree": "f514c1b9173c5b7ff580970b6a249360cee04348",
      "parents": [
        "58a34de7b1a920d287d17d2ca08bc9aaf7e6d35b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Aug 15 21:32:04 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 17 19:36:36 2012 +0200"
      },
      "message": "PM / Runtime: Check device PM QoS setting before \"no callbacks\" check\n\nIf __dev_pm_qos_read_value(dev) returns a negative value,\nrpm_suspend() should return -EPERM for dev even if its\npower.no_callbacks flag is set.  For this to happen, the device\u0027s\npower.no_callbacks flag has to be checked after the PM QoS check,\nso move the PM QoS check to rpm_check_suspend_allowed() (this will\nmake it cover idle notifications as well as runtime suspend too).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "58a34de7b1a920d287d17d2ca08bc9aaf7e6d35b",
      "tree": "07cff187f64ab7b2787f7c231ae96d2ea3af26ef",
      "parents": [
        "7f321c26c04807834fef4c524d2b21573423fc74"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Aug 15 21:31:55 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 17 19:36:36 2012 +0200"
      },
      "message": "PM / Runtime: Clear power.deferred_resume on success in rpm_suspend()\n\nThe power.deferred_resume can only be set if the runtime PM status\nof device is RPM_SUSPENDING and it should be cleared after its\nstatus has been changed, regardless of whether or not the runtime\nsuspend has been successful.  However, it only is cleared on\nsuspend failure, while it may remain set on successful suspend and\nis happily leaked to rpm_resume() executed in that case.\n\nThat shouldn\u0027t happen, so if power.deferred_resume is set in\nrpm_suspend() after the status has been changed to RPM_SUSPENDED,\nclear it before calling rpm_resume().  Then, it doesn\u0027t need to be\ncleared before changing the status to RPM_SUSPENDING any more,\nbecause it\u0027s always cleared after the status has been changed to\neither RPM_SUSPENDED (on success) or RPM_ACTIVE (on failure).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "7f321c26c04807834fef4c524d2b21573423fc74",
      "tree": "f7e0f198e30d86797b112388f76ca1064a3d4cf6",
      "parents": [
        "d9875690d9b89a866022ff49e3fcea892345ad92"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Aug 15 21:31:45 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Fri Aug 17 19:36:35 2012 +0200"
      },
      "message": "PM / Runtime: Fix rpm_resume() return value for power.no_callbacks set\n\nFor devices whose power.no_callbacks flag is set, rpm_resume()\nshould return 1 if the device\u0027s parent is already active, so that\nthe callers of pm_runtime_get() don\u0027t think that they have to wait\nfor the device to resume (asynchronously) in that case (the core\nwon\u0027t queue up an asynchronous resume in that case, so there\u0027s\nnothing to wait for anyway).\n\nModify the code accordingly (and make sure that an idle notification\nwill be queued up on success, even if 1 is to be returned).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "dfe3212e0196c01402154971841463d721dea915",
      "tree": "0cb18c625b9d1b50999f8942e94be0689e1396a6",
      "parents": [
        "c08f67730aba342b03f070209acc2990d3decf3c"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Fri Aug 17 22:06:59 2012 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Aug 17 07:37:35 2012 -0700"
      },
      "message": "PM / Sleep: introduce dpm_for_each_dev\n\ndpm_list and its pm lock provide a good way to iterate all\ndevices in system. Except this way, there is no other easy\nway to iterate devices in system.\n\nfirmware loader need to cache firmware images for devices\nbefore system sleep, so introduce the function to meet its\ndemand.\n\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "77254950bb174d637cd88d1a74e137ecf3185a65",
      "tree": "bd7714b590a9d16d35c3b95e42d7454e5254b0c3",
      "parents": [
        "d06a8a4fe7d81e8d1fa3d753be9b14c785b4b2e7"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Aug 07 13:50:14 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Aug 08 20:49:33 2012 +0200"
      },
      "message": "PM: Make dev_pm_get_subsys_data() always return 0 on success\n\nCommits 1d5fcfec22 (PM / Domains: Add device domain data reference\ncounter) and 62d4490294 (PM / Domains: Allow device callbacks to be\nadded at any time) added checks for the return value of\ndev_pm_get_subsys_data(), but those checks were incorrect, because\nthat function returned 1 on success in some cases.\n\nSince all of the existing users of dev_pm_get_subsys_data() don\u0027t use\nthe positive value returned by it on success, change its definition\nso that it always returns 0 when successful.\n\nReported-by: Heiko Stübner \u003cheiko@sntech.de\u003e\nReported-by: Tushar Behera \u003ctushar.behera@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "382e1596197be46b73aed08be05acf5b5ae8ce49",
      "tree": "c0e886e45c1513710ac20c2cd945e5bc41fe8b90",
      "parents": [
        "bd798b7a88069b6ad273214ca3901d988104db71",
        "064b021fbe470ecc9ca10f9f87af48c0fc0865fb"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 10:39:21 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 10:39:21 2012 +0200"
      },
      "message": "Merge branch \u0027pm-sleep\u0027\n\n* pm-sleep:\n  PM / Sleep: call early resume handlers when suspend_noirq fails\n"
    },
    {
      "commit": "064b021fbe470ecc9ca10f9f87af48c0fc0865fb",
      "tree": "320c3753f42ebc97f86be30583508bfaa3e87e44",
      "parents": [
        "11388c87d2abca1f01975ced28ce9eacea239104"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Jul 19 10:38:06 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 10:38:06 2012 +0200"
      },
      "message": "PM / Sleep: call early resume handlers when suspend_noirq fails\n\nCommit cf579dfb82550e34de7ccf3ef090d8b834ccd3a9 (PM / Sleep: Introduce\n\"late suspend\" and \"early resume\" of devices) introduced a bug where\nsuspend_late handlers would be called, but if dpm_suspend_noirq returned\nan error the early_resume handlers would never be called.  All devices\nwould end up on the dpm_late_early_list, and would never be resumed\nagain.\n\nFix it by calling dpm_resume_early when dpm_suspend_noirq returns\nan error.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "bd798b7a88069b6ad273214ca3901d988104db71",
      "tree": "178e6dc336e5db6bc5ffae344d5891b0071354ff",
      "parents": [
        "b4269e2799993fce54f5003a3597e6fa8b621993",
        "ad0446eb11b6886a73e077bd087f98544b8c0403"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:03:50 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:03:50 2012 +0200"
      },
      "message": "Merge branch \u0027pm-qos\u0027\n\n* pm-qos:\n  PM / QoS: Use NULL pointer instead of plain integer in qos.c\n  PM / QoS: Use NULL pointer instead of plain integer in pm_qos.h\n"
    },
    {
      "commit": "d52fdf13377c25e7a5620c6bec406bbf6a46d443",
      "tree": "bbcce588f5753d3174956324c4265c3235611543",
      "parents": [
        "7791bd230c6fe65348456564743f99fa066f00e7",
        "11388c87d2abca1f01975ced28ce9eacea239104"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:03:29 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:03:29 2012 +0200"
      },
      "message": "Merge branch \u0027pm-sleep\u0027\n\n* pm-sleep:\n  PM / Sleep: Require CAP_BLOCK_SUSPEND to use wake_lock/wake_unlock\n  PM / Sleep: Add missing static storage class specifiers in main.c\n  PM / Sleep: Fix build warning in sysfs.c for CONFIG_PM_SLEEP unset\n  PM / Hibernate: Print hibernation/thaw progress indicator one line at a time.\n  PM / Sleep: Separate printing suspend times from initcall_debug\n  PM / Sleep: add knob for printing device resume times\n  ftrace: Disable function tracing during suspend/resume and hibernation, again\n  PM / Hibernate: Enable suspend to both for in-kernel hibernation.\n"
    },
    {
      "commit": "7791bd230c6fe65348456564743f99fa066f00e7",
      "tree": "e9ed6b3e1baea455a65274aa054ebd29d2623b92",
      "parents": [
        "3db0bc97678d7de32f25514b290a0ca028dd4512",
        "8e9afafdad59f5973a5e72e05db9802f82091398"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:03:17 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:03:17 2012 +0200"
      },
      "message": "Merge branch \u0027pm-domains\u0027\n\n* pm-domains:\n  PM / Domains: Fix build warning for CONFIG_PM_RUNTIME unset\n  PM / Domains: Replace plain integer with NULL pointer in domain.c file\n  PM / Domains: Add missing static storage class specifier in domain.c file\n  PM / Domains: Allow device callbacks to be added at any time\n  PM / Domains: Add device domain data reference counter\n  PM / Domains: Add preliminary support for cpuidle, v2\n  PM / Domains: Do not stop devices after restoring their states\n  PM / Domains: Use subsystem runtime suspend/resume callbacks by default\n"
    },
    {
      "commit": "ad0446eb11b6886a73e077bd087f98544b8c0403",
      "tree": "ed53f86f1990e19bbf8c009060f4b077aa146535",
      "parents": [
        "83618092645f970668f47b6ee2fec1afdca32efd"
      ],
      "author": {
        "name": "Sachin Kamat",
        "email": "sachin.kamat@linaro.org",
        "time": "Tue Jul 17 22:38:26 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 19 00:02:36 2012 +0200"
      },
      "message": "PM / QoS: Use NULL pointer instead of plain integer in qos.c\n\nFix the following sparse warning:\ndrivers/base/power/qos.c:465:29: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Sachin Kamat \u003csachin.kamat@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "7664e969359917ba3212c5d6efdec494eaf8586e",
      "tree": "7c9cdbba815a51b9b31a9b745cacf692581d4191",
      "parents": [
        "d181b49eb3d76ed6a134cb599456176f466047c0"
      ],
      "author": {
        "name": "Sachin Kamat",
        "email": "sachin.kamat@linaro.org",
        "time": "Tue Jul 17 22:38:08 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 18 23:57:47 2012 +0200"
      },
      "message": "PM / Sleep: Add missing static storage class specifiers in main.c\n\nFix the following sparse warnings:\ndrivers/base/power/main.c:48:1: warning: symbol \u0027dpm_prepared_list\u0027 was not declared. Should it be static?\ndrivers/base/power/main.c:49:1: warning: symbol \u0027dpm_suspended_list\u0027 was not declared. Should it be static?\ndrivers/base/power/main.c:50:1: warning: symbol \u0027dpm_late_early_list\u0027 was not declared. Should it be static?\ndrivers/base/power/main.c:51:1: warning: symbol \u0027dpm_noirq_list\u0027 was not declared. Should it be static?\n\nSigned-off-by: Sachin Kamat \u003csachin.kamat@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "d181b49eb3d76ed6a134cb599456176f466047c0",
      "tree": "3724cad41a0e52d0a3d935d04e34eaee5010b731",
      "parents": [
        "d8150d350408de6fb2b9ee7b7625ae8e2bb7aa4a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 11 22:42:58 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 12 22:40:02 2012 +0200"
      },
      "message": "PM / Sleep: Fix build warning in sysfs.c for CONFIG_PM_SLEEP unset\n\nThe power/async device sysfs attribute is only used if both\nCONFIG_PM_ADVANCED_DEBUG and CONFIG_PM_SLEEP are set, but the code\nimplementing it doesn\u0027t depend on CONFIG_PM_SLEEP.  As a result, a\nbuild warning appears if CONFIG_PM_ADVANCED_DEBUG is set and\nCONFIG_PM_SLEEP is not set.\n\nFix it by adding a #ifdef CONFIG_PM_SLEEP around the code in\nquestion.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8e9afafdad59f5973a5e72e05db9802f82091398",
      "tree": "1d58aa6fbaee421436692b73654dd97103c203b5",
      "parents": [
        "db79e53dd5957321ca78efe6c0cda578034e381b"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 11 22:42:52 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 12 22:39:49 2012 +0200"
      },
      "message": "PM / Domains: Fix build warning for CONFIG_PM_RUNTIME unset\n\nThe functions genpd_save_dev() and genpd_restore_dev() are not used\nfor CONFIG_PM_RUNTIME unset, so move them under an appropriate\n#ifdef.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "db79e53dd5957321ca78efe6c0cda578034e381b",
      "tree": "473719d58cb684ed9776b35888427c4c82f204f5",
      "parents": [
        "8951ef021904752a843a81fee785f1b180f31c07"
      ],
      "author": {
        "name": "Sachin Kamat",
        "email": "sachin.kamat@linaro.org",
        "time": "Wed Jul 11 12:25:49 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed Jul 11 12:25:49 2012 +0200"
      },
      "message": "PM / Domains: Replace plain integer with NULL pointer in domain.c file\n\nFixes the following sparse warning:\ndrivers/base/power/domain.c:1679:55: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Sachin Kamat \u003csachin.kamat@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8951ef021904752a843a81fee785f1b180f31c07",
      "tree": "e15230eab3498f74fadc2324d8489c67acf2a2e6",
      "parents": [
        "62d4490294e3de7015f715c00af992d7b6a6e22c"
      ],
      "author": {
        "name": "Sachin Kamat",
        "email": "sachin.kamat@linaro.org",
        "time": "Tue Jul 10 21:47:07 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 10 21:47:07 2012 +0200"
      },
      "message": "PM / Domains: Add missing static storage class specifier in domain.c file\n\nFixes the folloiwng sparse warning:\ndrivers/base/power/domain.c:149:5:\nwarning: symbol \u0027__pm_genpd_poweron\u0027 was not declared. Should it be static?\n\nSigned-off-by: Sachin Kamat \u003csachin.kamat@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "8651f97bd951d0bb1c10fa24e3fa3455193f3548",
      "tree": "a3bf8f8a4c67a092bbd50018b53f9de567acd687",
      "parents": [
        "25ac77613aa8fca131599705e3d7da2a0eaa06a0"
      ],
      "author": {
        "name": "Preeti U Murthy",
        "email": "preeti@linux.vnet.ibm.com",
        "time": "Mon Jul 09 10:12:56 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 10 21:34:49 2012 +0200"
      },
      "message": "PM / cpuidle: System resume hang fix with cpuidle\n\nOn certain bios, resume hangs if cpus are allowed to enter idle states\nduring suspend [1].\n\nThis was fixed in apci idle driver [2].But intel_idle driver does not\nhave this fix. Thus instead of replicating the fix in both the idle\ndrivers, or in more platform specific idle drivers if needed, the\nmore general cpuidle infrastructure could handle this.\n\nA suspend callback in cpuidle_driver could handle this fix. But\na cpuidle_driver provides only basic functionalities like platform idle\nstate detection capability and mechanisms to support entry and exit\ninto CPU idle states. All other cpuidle functions are found in the\ncpuidle generic infrastructure for good reason that all cpuidle\ndrivers, irrepective of their platforms will support these functions.\n\nOne option therefore would be to register a suspend callback in cpuidle\nwhich handles this fix. This could be called through a PM_SUSPEND_PREPARE\nnotifier. But this is too generic a notfier for a driver to handle.\n\nAlso, ideally the job of cpuidle is not to handle side effects of suspend.\nIt should expose the interfaces which \"handle cpuidle \u0027during\u0027 suspend\"\nor any other operation, which the subsystems call during that respective\noperation.\n\nThe fix demands that during suspend, no cpus should be allowed to enter\ndeep C-states. The interface cpuidle_uninstall_idle_handler() in cpuidle\nensures that. Not just that it also kicks all the cpus which are already\nin idle out of their idle states which was being done during cpu hotplug\nthrough a CPU_DYING_FROZEN callbacks.\n\nNow the question arises about when during suspend should\ncpuidle_uninstall_idle_handler() be called. Since we are dealing with\ndrivers it seems best to call this function during dpm_suspend().\nDelaying the call till dpm_suspend_noirq() does no harm, as long as it is\nbefore cpu_hotplug_begin() to avoid race conditions with cpu hotpulg\noperations. In dpm_suspend_noirq(), it would be wise to place this call\nbefore suspend_device_irqs() to avoid ugly interactions with the same.\n\nAnanlogously, during resume.\n\nReferences:\n[1] https://bugs.launchpad.net/ubuntu/+source/linux/+bug/674075.\n[2] http://marc.info/?l\u003dlinux-pm\u0026m\u003d133958534231884\u0026w\u003d2\n\nReported-and-tested-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Preeti U Murthy \u003cpreeti@linux.vnet.ibm.com\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "62d4490294e3de7015f715c00af992d7b6a6e22c",
      "tree": "194272c262ceb826a617446729853ac387228e9f",
      "parents": [
        "1d5fcfec22ce5f69db0d29284d2b65ff8ab1bfaa"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 05 22:12:54 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 05 22:12:54 2012 +0200"
      },
      "message": "PM / Domains: Allow device callbacks to be added at any time\n\nMake it possible to modify device callbacks used by the generic PM\ndomains core code at any time, not only after the device has been\nadded to a domain.  This will allow device drivers to provide their\nown device PM domain callbacks even if they are registered before\nadding the devices to PM domains.\n\nFor this purpose, use the observation that the struct\ngeneric_pm_domain_data object containing the relevant callback\npointers may be allocated by pm_genpd_add_callbacks() and the\ncallbacks may be set before __pm_genpd_add_device() is run for\nthe given device.  This object will then be used by\n__pm_genpd_add_device(), but it has to be protected from\npremature removal by reference counting.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "1d5fcfec22ce5f69db0d29284d2b65ff8ab1bfaa",
      "tree": "907136239832a60a2f7af6e6dd442fdc3ac0f034",
      "parents": [
        "cbc9ef0287ab764d3da0129efa673808df641fe3"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 05 22:12:32 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jul 05 22:12:32 2012 +0200"
      },
      "message": "PM / Domains: Add device domain data reference counter\n\nAdd a mechanism for counting references to the\nstruct generic_pm_domain_data object pointed to by\ndev-\u003epower.subsys_data-\u003edomain_data if the device in question\nbelongs to a generic PM domain.\n\nThis change is necessary for a subsequent patch making it possible to\nallocate that object from within pm_genpd_add_callbacks(), so that\ndrivers can attach their PM domain device callbacks to devices before\nthose devices are added to PM domains.\n\nThis patch has been tested on the SH7372 Mackerel board.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "cbc9ef0287ab764d3da0129efa673808df641fe3",
      "tree": "43f128194beaeeda86dcc962a28af8c03f924404",
      "parents": [
        "e3b8cdd8e4ea51e46d3ff54d7e3568afc24654ec"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 03 19:07:42 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 03 19:07:42 2012 +0200"
      },
      "message": "PM / Domains: Add preliminary support for cpuidle, v2\n\nOn some systems there are CPU cores located in the same power\ndomains as I/O devices.  Then, power can only be removed from the\ndomain if all I/O devices in it are not in use and the CPU core\nis idle.  Add preliminary support for that to the generic PM domains\nframework.\n\nFirst, the platform is expected to provide a cpuidle driver with one\nextra state designated for use with the generic PM domains code.\nThis state should be initially disabled and its exit_latency value\nshould be set to whatever time is needed to bring up the CPU core\nitself after restoring power to it, not including the domain\u0027s\npower on latency.  Its .enter() callback should point to a procedure\nthat will remove power from the domain containing the CPU core at\nthe end of the CPU power transition.\n\nThe remaining characteristics of the extra cpuidle state, referred to\nas the \"domain\" cpuidle state below, (e.g. power usage, target\nresidency) should be populated in accordance with the properties of\nthe hardware.\n\nNext, the platform should execute genpd_attach_cpuidle() on the PM\ndomain containing the CPU core.  That will cause the generic PM\ndomains framework to treat that domain in a special way such that:\n\n * When all devices in the domain have been suspended and it is about\n   to be turned off, the states of the devices will be saved, but\n   power will not be removed from the domain.  Instead, the \"domain\"\n   cpuidle state will be enabled so that power can be removed from\n   the domain when the CPU core is idle and the state has been chosen\n   as the target by the cpuidle governor.\n\n * When the first I/O device in the domain is resumed and\n   __pm_genpd_poweron(() is called for the first time after\n   power has been removed from the domain, the \"domain\" cpuidle\n   state will be disabled to avoid subsequent surprise power removals\n   via cpuidle.\n\nThe effective exit_latency value of the \"domain\" cpuidle state\ndepends on the time needed to bring up the CPU core itself after\nrestoring power to it as well as on the power on latency of the\ndomain containing the CPU core.  Thus the \"domain\" cpuidle state\u0027s\nexit_latency has to be recomputed every time the domain\u0027s power on\nlatency is updated, which may happen every time power is restored\nto the domain, if the measured power on latency is greater than\nthe latency stored in the corresponding generic_pm_domain structure.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\n"
    },
    {
      "commit": "80de3d7f416f1accd03f2e519ead32d6fde4fcf4",
      "tree": "4f6c5b3a6355fc6d9f6423b11afa28b119eb6dbc",
      "parents": [
        "0b589741b8b83a33e25fb32bb714ea1b972af5aa"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jun 16 00:02:34 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 01 13:31:29 2012 +0200"
      },
      "message": "PM / Domains: Do not stop devices after restoring their states\n\nWhile resuming a device belonging to a PM domain,\npm_genpd_runtime_resume() calls __pm_genpd_restore_device() to\nrestore its state, if necessary.  The latter starts the device,\nusing genpd_start_dev(), restores its state, using\ngenpd_restore_dev(), and then stops it, using genpd_stop_dev().\nHowever, this last operation is not necessary, because the\ndevice is supposed to be operational after pm_genpd_runtime_resume()\nhas returned and because of it pm_genpd_runtime_resume() has to\ncall genpd_start_dev() once again for the \"restored\" device, which\nis inefficient.\n\nTo make things more efficient, remove the call to genpd_stop_dev()\nfrom __pm_genpd_restore_device() and the direct call to\ngenpd_start_dev() from pm_genpd_runtime_resume().  [Of course,\ngenpd_start_dev() still has to be called by it for devices with the\npower.irq_safe flag set, because __pm_genpd_restore_device() is not\nexecuted for them.]\n\nThis change has been tested on the SH7372 Mackerel board.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "0b589741b8b83a33e25fb32bb714ea1b972af5aa",
      "tree": "40fb1a027166ad3da78848174ec644bf004ad20e",
      "parents": [
        "6887a4131da3adaab011613776d865f4bcfb5678"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jun 16 00:02:22 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 01 13:31:29 2012 +0200"
      },
      "message": "PM / Domains: Use subsystem runtime suspend/resume callbacks by default\n\nCurrently, the default \"save state\" and \"restore state\" routines\nfor generic PM domains, pm_genpd_default_save_state() and\npm_genpd_default_restore_state(), respectively, only use runtime PM\ncallbacks provided by device drivers, but in general those callbacks\nneed not provide the entire necessary functionality.  Namely, in\ngeneral it may be necessary to execute subsystem (i.e. device type,\ndevice class or bus type) callbacks that will carry out all of the\nnecessary operations.\n\nFor this reason, modify pm_genpd_default_save_state() and\npm_genpd_default_restore_state() to execute subsystem callbacks,\nif they are provided, and fall back to driver callbacks otherwise.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "b2df1d4f8b95d9d1e3f064cef02fc5c5116b05cf",
      "tree": "6e891ad6ad748ea737ab5774983f90d9be720446",
      "parents": [
        "4b7760ba0dd3319f66886ab2335a0fbecdbc808a"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Jun 21 00:19:33 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 01 13:31:23 2012 +0200"
      },
      "message": "PM / Sleep: Separate printing suspend times from initcall_debug\n\nChange the behavior of the newly introduced\n/sys/power/pm_print_times attribute so that its initial value\ndepends on initcall_debug, but setting it to 0 will cause device\nsuspend/resume times not to be printed, even if initcall_debug has\nbeen set.  This way, the people who use initcall_debug for reasons\nother than PM debugging will be able to switch the suspend/resume\ntimes printing off, if need be.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "4b7760ba0dd3319f66886ab2335a0fbecdbc808a",
      "tree": "f619ead7186c286a5f8c786091af8c46de0decf3",
      "parents": [
        "443772d408a25af62498793f6f805ce3c559309a"
      ],
      "author": {
        "name": "Sameer Nanda",
        "email": "snanda@chromium.org",
        "time": "Tue Jun 19 22:23:33 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jul 01 13:31:22 2012 +0200"
      },
      "message": "PM / Sleep: add knob for printing device resume times\n\nAdded a new knob called /sys/power/pm_print_times. Setting it to 1\nenables printing of time taken by devices to suspend and resume.\nSetting it to 0 disables this printing (unless overridden by\ninitcall_debug kernel command line option).\n\nSigned-off-by: Sameer Nanda \u003csnanda@chromium.org\u003e\nAcked-by: Greg KH \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "1f758b23177d588a71b96ad02990e715949bb82f",
      "tree": "2854e0209da918af16084d2f6a009318336fb87a",
      "parents": [
        "6b16351acbd415e66ba16bf7d473ece1574cf0bc"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Sun Jun 24 23:31:09 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Jun 24 23:31:09 2012 +0200"
      },
      "message": "PM / Sleep: Prevent waiting forever on asynchronous suspend after abort\n\n__device_suspend() must always send a completion. Otherwise, parent\ndevices will wait forever.\n\nCommit 1e2ef05b, \"PM: Limit race conditions between runtime PM and\nsystem sleep (v2)\", introduced a regression by short-circuiting the\ncomplete_all() for certain error cases.\n\nThis patch fixes the bug by always signalling a completion.\n\nAddresses http://crosbug.com/31972\n\nTested by injecting an abort.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "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"
    }
  ],
  "next": "b86ff9820fd5df69295273b9aa68e58786ffc23f"
}
