)]}'
{
  "log": [
    {
      "commit": "43720bd6014327ac454434496cb953edcdb9f8d6",
      "tree": "be134a588abb3164b7c5f9093707e536f9c54a05",
      "parents": [
        "ed1ac6e91a3ff7c561008ba57747cd6cbc49385e"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Jan 11 13:43:45 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Sat Jan 26 00:39:12 2013 +0100"
      },
      "message": "PM / tracing: remove deprecated power trace API\n\nThe text in Documentation said it would be removed in 2.6.41;\nthe text in the Kconfig said removal in the 3.1 release.  Either\nway you look at it, we are well past both, so push it off a cliff.\n\nNote that the POWER_CSTATE and the POWER_PSTATE are part of the\nlegacy tracing API.  Remove all tracepoints which use these flags.\nAs can be seen from context, most already have a trace entry via\ntrace_cpu_idle anyways.\n\nAlso, the cpufreq/cpufreq.c PSTATE one is actually unpaired, as\ncompared to the CSTATE ones which all have a clear start/stop.\nAs part of this, the trace_power_frequency also becomes orphaned,\nso it too is deleted.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "8aef33a7cf40ca9da188e8578b2abe7267a38c52",
      "tree": "4f0908d2b007ad3f372ffeeaca624cfe81afdf47",
      "parents": [
        "a412a11d6a24aebb6a898ed5d4e1c0725b638da3"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Tue Jan 15 14:18:04 2013 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Jan 15 14:18:04 2013 +0100"
      },
      "message": "cpuidle: remove the power_specified field in the driver\n\nWe realized that the power usage field is never filled and when it\nis filled for tegra, the power_specified flag is not set causing all\nof these values to be reset when the driver is initialized with\nset_power_state().\n\nHowever, the power_specified flag can be simply removed under the\nassumption that the states are always backward sorted, which is the\ncase with the current code.\n\nThis change allows the menu governor select function and the\ncpuidle_play_dead() to be simplified.  Moreover, the\nset_power_states() function can removed as it does not make sense\nany more.\n\nDrop the power_specified flag from struct cpuidle_driver and make\nthe related changes as described above.\n\nAs a consequence, this also fixes the bug where on the dynamic\nC-states system, the power fields are not initialized.\n\n[rjw: Changelog]\nReferences: https://bugzilla.kernel.org/show_bug.cgi?id\u003d42870\nReferences: https://bugzilla.kernel.org/show_bug.cgi?id\u003d43349\nReferences: https://lkml.org/lkml/2012/10/16/518\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "0e5537b30d3029d784226ab51c2b923d1155b553",
      "tree": "011a828504a97450442738363560804024f54a02",
      "parents": [
        "d1c3ed669a2d452cacfb48c2d171a1f364dae2ed"
      ],
      "author": {
        "name": "Sivaram Nair",
        "email": "sivaramn@nvidia.com",
        "time": "Tue Dec 18 13:52:50 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Jan 03 13:11:05 2013 +0100"
      },
      "message": "cpuidle: Fix finding state with min power_usage\n\nSince cpuidle_state.power_usage is a signed value, use INT_MAX (instead\nof -1) to init the local copies so that functions that tries to find\ncpuidle states with minimum power usage works correctly even if they use\nnon-negative values.\n\nSigned-off-by: Sivaram Nair \u003csivaramn@nvidia.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "a474a515497ef3566cfc17a2cab3d54d6d50ff1c",
      "tree": "377b53565f728dfee5604ae0c8c6879d38a2a3ec",
      "parents": [
        "a093b93ee0e08cd73a07848752bc09ecea68cb13"
      ],
      "author": {
        "name": "Julius Werner",
        "email": "jwerner@chromium.org",
        "time": "Tue Nov 27 14:17:58 2012 +0100"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Tue Nov 27 14:17:58 2012 +0100"
      },
      "message": "cpuidle: Measure idle state durations with monotonic clock\n\nMany cpuidle drivers measure their time spent in an idle state by\nreading the wallclock time before and after idling and calculating the\ndifference. This leads to erroneous results when the wallclock time gets\nupdated by another processor in the meantime, adding that clock\nadjustment to the idle state\u0027s time counter.\n\nIf the clock adjustment was negative, the result is even worse due to an\nerroneous cast from int to unsigned long long of the last_residency\nvariable. The negative 32 bit integer will zero-extend and result in a\nforward time jump of roughly four billion milliseconds or 1.3 hours on\nthe idle state residency counter.\n\nThis patch changes all affected cpuidle drivers to either use the\nmonotonic clock for their measurements or make use of the generic time\nmeasurement wrapper in cpuidle.c, which was already working correctly.\nSome superfluous CLIs/STIs in the ACPI code are removed (interrupts\nshould always already be disabled before entering the idle function, and\nnot get reenabled until the generic wrapper has performed its second\nmeasurement). It also removes the erroneous cast, making sure that\nnegative residency values are applied correctly even though they should\nnot appear anymore.\n\nSigned-off-by: Julius Werner \u003cjwerner@chromium.org\u003e\nReviewed-by: Preeti U Murthy \u003cpreeti@linux.vnet.ibm.com\u003e\nTested-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "bf4d1b5ddb78f86078ac6ae0415802d5f0c68f92",
      "tree": "36ec1f061372f6a8cfe7b3326036f06aa3a5067c",
      "parents": [
        "13dd52f11a04e616900f565d6a1e5138e58d579f"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Wed Oct 31 16:44:48 2012 +0000"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:23 2012 +0100"
      },
      "message": "cpuidle: support multiple drivers\n\nWith the tegra3 and the big.LITTLE [1] new architectures, several cpus\nwith different characteristics (latencies and states) can co-exists on the\nsystem.\n\nThe cpuidle framework has the limitation of handling only identical cpus.\n\nThis patch removes this limitation by introducing the multiple driver support\nfor cpuidle.\n\nThis option is configurable at compile time and should be enabled for the\narchitectures mentioned above. So there is no impact for the other platforms\nif the option is disabled. The option defaults to \u0027n\u0027. Note the multiple drivers\nsupport is also compatible with the existing drivers, even if just one driver is\nneeded, all the cpu will be tied to this driver using an extra small chunk of\nprocessor memory.\n\nThe multiple driver support use a per-cpu driver pointer instead of a global\nvariable and the accessor to this variable are done from a cpu context.\n\nIn order to keep the compatibility with the existing drivers, the function\n\u0027cpuidle_register_driver\u0027 and \u0027cpuidle_unregister_driver\u0027 will register\nthe specified driver for all the cpus.\n\nThe semantic for the output of /sys/devices/system/cpu/cpuidle/current_driver\nremains the same except the driver name will be related to the current cpu.\n\nThe /sys/devices/system/cpu/cpu[0-9]/cpuidle/driver/name files are added\nallowing to read the per cpu driver name.\n\n[1] http://lwn.net/Articles/481055/\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nAcked-by: Peter De Schrijver \u003cpdeschrijver@nvidia.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "d73d68dc49e09143e8e3bef10670a021c26ec4a5",
      "tree": "1efde05ffcfcbe38ac3cb6900c8f01b70d0ec066",
      "parents": [
        "e11538d1f03914eb92af5a1a378375c05ae8520c"
      ],
      "author": {
        "name": "Youquan Song",
        "email": "youquan.song@intel.com",
        "time": "Fri Oct 26 12:26:59 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:20 2012 +0100"
      },
      "message": "cpuidle: Set residency to 0 if target Cstate not enter\n\nWhen cpuidle governor choose a C-state to enter for idle CPU, but it notice that\nthere is tasks request to be executed. So the idle CPU will not really enter\nthe target C-state and go to run task.\n\nIn this situation, it will use the residency of previous really entered target\nC-states. Obviously, it is not reasonable.\n\nSo, this patch fix it by set the target C-state residency to 0.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Youquan Song \u003cyouquan.song@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "e45a00d679a788217f35ee4214a32d6d1924160b",
      "tree": "fd8e431856bf3df54b5af7352d026997d551d015",
      "parents": [
        "1aef40e288acfb3cc28ff77528b34ef66683bed6"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Fri Oct 26 12:26:32 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:19 2012 +0100"
      },
      "message": "cpuidle / sysfs: move kobj initialization in the syfs file\n\nMove the kobj initialization and completion in the sysfs.c\nand encapsulate the code more.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "1aef40e288acfb3cc28ff77528b34ef66683bed6",
      "tree": "c62a1d0448a07aef5a987dac44135de3c74522b9",
      "parents": [
        "77b67063bb6bce6d475e910d3b886a606d0d91f7"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Fri Oct 26 12:26:24 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rafael.j.wysocki@intel.com",
        "time": "Thu Nov 15 00:34:19 2012 +0100"
      },
      "message": "cpuidle / sysfs: change function parameter\n\nThe function needs the cpuidle_device which is initially passed to the\ncaller.\n\nThe current code gets the struct device from the struct cpuidle_device,\npass it the cpuidle_add_sysfs function. This function calls\nper_cpu(cpuidle_devices, cpu) to get the cpuidle_device.\n\nThis patch pass the cpuidle_device instead and simplify the code.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n"
    },
    {
      "commit": "cf31cd1a0c692a1445c80756055875088fa29982",
      "tree": "7b79ff10b9481539c119dd6fe4659a8b2985a554",
      "parents": [
        "e8b1b59dc8e42a47c4ce541bd1767ffac206b29c"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Mon Oct 08 13:43:08 2012 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Oct 08 22:52:54 2012 -0400"
      },
      "message": "ACPI idle, CPU hotplug: Fix NULL pointer dereference during hotplug\n\nOn a KVM guest, when a CPU is taken offline and brought back online, we hit\nthe following NULL pointer dereference:\n\n[   45.400843] Unregister pv shared memory for cpu 1\n[   45.412331] smpboot: CPU 1 is now offline\n[   45.529894] SMP alternatives: lockdep: fixing up alternatives\n[   45.533472] smpboot: Booting Node 0 Processor 1 APIC 0x1\n[   45.411526] kvm-clock: cpu 1, msr 0:7d14601, secondary cpu clock\n[   45.571370] KVM setup async PF for cpu 1\n[   45.572331] kvm-stealtime: cpu 1, msr 7d0e040\n[   45.575031] BUG: unable to handle kernel NULL pointer dereference at           (null)\n[   45.576017] IP: [\u003cffffffff81519f98\u003e] cpuidle_disable_device+0x18/0x80\n[   45.576017] PGD 5dfb067 PUD 5da8067 PMD 0\n[   45.576017] Oops: 0000 [#1] SMP\n[   45.576017] Modules linked in:\n[   45.576017] CPU 0\n[   45.576017] Pid: 607, comm: stress_cpu_hotp Not tainted 3.6.0-padata-tp-debug #3 Bochs Bochs\n[   45.576017] RIP: 0010:[\u003cffffffff81519f98\u003e]  [\u003cffffffff81519f98\u003e] cpuidle_disable_device+0x18/0x80\n[   45.576017] RSP: 0018:ffff880005d93ce8  EFLAGS: 00010286\n[   45.576017] RAX: ffff880005d93fd8 RBX: 0000000000000000 RCX: 0000000000000006\n[   45.576017] RDX: 0000000000000006 RSI: 2222222222222222 RDI: 0000000000000000\n[   45.576017] RBP: ffff880005d93cf8 R08: 2222222222222222 R09: 2222222222222222\n[   45.576017] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000\n[   45.576017] R13: 0000000000000000 R14: ffffffff81c8cca0 R15: 0000000000000001\n[   45.576017] FS:  00007f91936ae700(0000) GS:ffff880007c00000(0000) knlGS:0000000000000000\n[   45.576017] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\n[   45.576017] CR2: 0000000000000000 CR3: 0000000005db3000 CR4: 00000000000006f0\n[   45.576017] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n[   45.576017] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n[   45.576017] Process stress_cpu_hotp (pid: 607, threadinfo ffff880005d92000, task ffff8800066bbf40)\n[   45.576017] Stack:\n[   45.576017]  ffff880007a96400 0000000000000000 ffff880005d93d28 ffffffff813ac689\n[   45.576017]  ffff880007a96400 ffff880007a96400 0000000000000002 ffffffff81cd8d01\n[   45.576017]  ffff880005d93d58 ffffffff813aa498 0000000000000001 00000000ffffffdd\n[   45.576017] Call Trace:\n[   45.576017]  [\u003cffffffff813ac689\u003e] acpi_processor_hotplug+0x55/0x97\n[   45.576017]  [\u003cffffffff813aa498\u003e] acpi_cpu_soft_notify+0x93/0xce\n[   45.576017]  [\u003cffffffff816ae47d\u003e] notifier_call_chain+0x5d/0x110\n[   45.576017]  [\u003cffffffff8109730e\u003e] __raw_notifier_call_chain+0xe/0x10\n[   45.576017]  [\u003cffffffff81069050\u003e] __cpu_notify+0x20/0x40\n[   45.576017]  [\u003cffffffff81069085\u003e] cpu_notify+0x15/0x20\n[   45.576017]  [\u003cffffffff816978f1\u003e] _cpu_up+0xee/0x137\n[   45.576017]  [\u003cffffffff81697983\u003e] cpu_up+0x49/0x59\n[   45.576017]  [\u003cffffffff8168758d\u003e] store_online+0x9d/0xe0\n[   45.576017]  [\u003cffffffff8140a9f8\u003e] dev_attr_store+0x18/0x30\n[   45.576017]  [\u003cffffffff812322c0\u003e] sysfs_write_file+0xe0/0x150\n[   45.576017]  [\u003cffffffff811b389c\u003e] vfs_write+0xac/0x180\n[   45.576017]  [\u003cffffffff811b3be2\u003e] sys_write+0x52/0xa0\n[   45.576017]  [\u003cffffffff816b31e9\u003e] system_call_fastpath+0x16/0x1b\n[   45.576017] Code: 48 c7 c7 40 e5 ca 81 e8 07 d0 18 00 5d c3 0f 1f 44 00 00 0f 1f 44 00 00 55 48 89 e5 48 83 ec 10 48 89 5d f0 4c 89 65 f8 48 89 fb \u003cf6\u003e 07 02 75 13 48 8b 5d f0 4c 8b 65 f8 c9 c3 66 0f 1f 84 00 00\n[   45.576017] RIP  [\u003cffffffff81519f98\u003e] cpuidle_disable_device+0x18/0x80\n[   45.576017]  RSP \u003cffff880005d93ce8\u003e\n[   45.576017] CR2: 0000000000000000\n[   45.656079] ---[ end trace 433d6c9ac0b02cef ]---\n\nAnalysis:\nCommit 3d339dc (cpuidle / ACPI : move cpuidle_device field out of the\nacpi_processor_power structure()) made the allocation of the dev structure\n(struct cpuidle) of a CPU dynamic, whereas previously it was statically\nallocated. And this dynamic allocation occurs in acpi_processor_power_init()\nif pr-\u003eflags.power evaluates to non-zero.\n\nOn KVM guests, pr-\u003eflags.power evaluates to zero, hence dev is never\nallocated. This causes the NULL pointer (dev) dereference in\ncpuidle_disable_device() during a subsequent CPU online operation. Fix this\nby ensuring that dev is non-NULL before dereferencing.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "476525004ac7e2f990b6956efcd44d0780c2ab4c",
      "tree": "158cd2bbfb232b4f4327b6c20a4e14c6b095a438",
      "parents": [
        "bd22dc17e49973d3d4925970260e9e37f7580a9f",
        "ec033d0a02901551346b9f43f8ff9bad51378891"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 14:28:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 26 14:28:55 2012 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\nPull ACPI \u0026 power management update from Len Brown:\n \"Re-write of the turbostat tool.\n     lower overhead was necessary for measuring very large system when\n     they are very idle.\n\n  IVB support in intel_idle\n     It\u0027s what I run on my IVB, others should be able to also:-)\n\n  ACPICA core update\n     We have found some bugs due to divergence between Linux and the\n     upstream ACPICA base.  Most of these patches are to reduce that\n     divergence to reduce the risk of future bugs.\n\n  Some cpuidle updates, mostly for non-Intel\n     More will be coming, as they depend on this part.\n\n  Some thermal management changes needed by non-ACPI systems.\n\n  Some _OST (OS Status Indication) updates for hot ACPI hot-plug.\"\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (51 commits)\n  Thermal: Documentation update\n  Thermal: Add Hysteresis attributes\n  Thermal: Make Thermal trip points writeable\n  ACPI/AC: prevent OOPS on some boxes due to missing check power_supply_register() return value check\n  tools/power: turbostat: fix large c1% issue\n  tools/power: turbostat v2 - re-write for efficiency\n  ACPICA: Update to version 20120711\n  ACPICA: AcpiSrc: Fix some translation issues for Linux conversion\n  ACPICA: Update header files copyrights to 2012\n  ACPICA: Add new ACPI table load/unload external interfaces\n  ACPICA: Split file: tbxface.c -\u003e tbxfload.c\n  ACPICA: Add PCC address space to space ID decode function\n  ACPICA: Fix some comment fields\n  ACPICA: Table manager: deploy new firmware error/warning interfaces\n  ACPICA: Add new interfaces for BIOS(firmware) errors and warnings\n  ACPICA: Split exception code utilities to a new file, utexcep.c\n  ACPI: acpi_pad: tune round_robin_time\n  ACPICA: Update to version 20120620\n  ACPICA: Add support for implicit notify on multiple devices\n  ACPICA: Update comments; no functional change\n  ...\n"
    },
    {
      "commit": "ec033d0a02901551346b9f43f8ff9bad51378891",
      "tree": "f0ede8b29060a64ccb985be1983535f884fe00a7",
      "parents": [
        "fa7584e13ac8e6a306085bba0a931f3135f1d8c4",
        "819f1a64beb6c962218bd348a6f19aff718cde6c",
        "f712c71f7b2b43b894d1e92e1b77385fcad8815f",
        "a58e1150225cc9e554b76da5519b2bb5bb6e46ff",
        "20ff51a36b2cd25ee7eb3216b6d02b68935435ba",
        "1b0a0e9a15b976d91f3b5ae619c6a8964c2818eb",
        "6edab08c24f9141d69cfa4683a0a027d86ab303e",
        "c2f4191a9c4dbbb5c8bc7f2c0eb5023b97dd2a49",
        "f197ac13f6eeb351b31250b9ab7d0da17434ea36",
        "8eaa8d6ca27788aa23659082362a608c1fabcdfe",
        "b9c7aff481f19dd655ae3ce6513817d625e2d47c",
        "c3ae331d1c2fe25edfbece73fda0bb312445b636"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jul 26 00:03:58 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jul 26 00:03:58 2012 -0400"
      },
      "message": "Merge branches \u0027acpi_pad\u0027, \u0027acpica\u0027, \u0027apei-bugzilla-43282\u0027, \u0027battery\u0027, \u0027cpuidle-coupled\u0027, \u0027cpuidle-tweaks\u0027, \u0027intel_idle-ivb\u0027, \u0027ost\u0027, \u0027red-hat-bz-772730\u0027, \u0027thermal\u0027, \u0027thermal-spear\u0027 and \u0027turbostat-v2\u0027 into release\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": "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": "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": "dc7fd275ae60ef8edf952aff2a62462f5d892fd4",
      "tree": "620ffab8288830c8e8dc03b24e77fe3800d03b7e",
      "parents": [
        "6887a4131da3adaab011613776d865f4bcfb5678"
      ],
      "author": {
        "name": "ShuoX Liu",
        "email": "shuox.liu@intel.com",
        "time": "Tue Jul 03 19:05:31 2012 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Jul 03 19:05:31 2012 +0200"
      },
      "message": "cpuidle: move field disable from per-driver to per-cpu\n\nAndrew J.Schorr raises a question.  When he changes the disable setting on\na single CPU, it affects all the other CPUs.  Basically, currently, the\ndisable field is per-driver instead of per-cpu.  All the C states of the\nsame driver are shared by all CPU in the same machine.\n\nThe patch changes the `disable\u0027 field to per-cpu, so we could set this\nseparately for each cpu.\n\nSigned-off-by: ShuoX Liu \u003cshuox.liu@intel.com\u003e\nReported-by: Andrew J.Schorr \u003caschorr@telemetry-investments.com\u003e\nReviewed-by: Yanmin Zhang \u003cyanmin_zhang@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "4126c0197bc8c58a0bb7fcda07b01b596b6fb4c5",
      "tree": "c60aacfbc69627b96dc39dc8dc71ea8f0893c5e5",
      "parents": [
        "3af272ab75c7a0c7fa5ae5507724d961f7e7718b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 07 17:57:41 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 02 00:49:09 2012 -0400"
      },
      "message": "cpuidle: add support for states that affect multiple cpus\n\nOn some ARM SMP SoCs (OMAP4460, Tegra 2, and probably more), the\ncpus cannot be independently powered down, either due to\nsequencing restrictions (on Tegra 2, cpu 0 must be the last to\npower down), or due to HW bugs (on OMAP4460, a cpu powering up\nwill corrupt the gic state unless the other cpu runs a work\naround).  Each cpu has a power state that it can enter without\ncoordinating with the other cpu (usually Wait For Interrupt, or\nWFI), and one or more \"coupled\" power states that affect blocks\nshared between the cpus (L2 cache, interrupt controller, and\nsometimes the whole SoC).  Entering a coupled power state must\nbe tightly controlled on both cpus.\n\nThe easiest solution to implementing coupled cpu power states is\nto hotplug all but one cpu whenever possible, usually using a\ncpufreq governor that looks at cpu load to determine when to\nenable the secondary cpus.  This causes problems, as hotplug is an\nexpensive operation, so the number of hotplug transitions must be\nminimized, leading to very slow response to loads, often on the\norder of seconds.\n\nThis file implements an alternative solution, where each cpu will\nwait in the WFI state until all cpus are ready to enter a coupled\nstate, at which point the coupled state function will be called\non all cpus at approximately the same time.\n\nOnce all cpus are ready to enter idle, they are woken by an smp\ncross call.  At this point, there is a chance that one of the\ncpus will find work to do, and choose not to enter idle.  A\nfinal pass is needed to guarantee that all cpus will call the\npower state enter function at the same time.  During this pass,\neach cpu will increment the ready counter, and continue once the\nready counter matches the number of online coupled cpus.  If any\ncpu exits idle, the other cpus will decrement their counter and\nretry.\n\nTo use coupled cpuidle states, a cpuidle driver must:\n\n   Set struct cpuidle_device.coupled_cpus to the mask of all\n   coupled cpus, usually the same as cpu_possible_mask if all cpus\n   are part of the same cluster.  The coupled_cpus mask must be\n   set in the struct cpuidle_device for each cpu.\n\n   Set struct cpuidle_device.safe_state to a state that is not a\n   coupled state.  This is usually WFI.\n\n   Set CPUIDLE_FLAG_COUPLED in struct cpuidle_state.flags for each\n   state that affects multiple cpus.\n\n   Provide a struct cpuidle_state.enter function for each state\n   that affects multiple cpus.  This function is guaranteed to be\n   called on all cpus at approximately the same time.  The driver\n   should ensure that the cpus all abort together if any cpu tries\n   to abort once the function is called.\n\nupdate1:\n\ncpuidle: coupled: fix count of online cpus\n\nonline_count was never incremented on boot, and was also counting\ncpus that were not part of the coupled set.  Fix both issues by\nintroducting a new function that counts online coupled cpus, and\ncall it from register as well as the hotplug notifier.\n\nupdate2:\n\ncpuidle: coupled: fix decrementing ready count\n\ncpuidle_coupled_set_not_ready sometimes refuses to decrement the\nready count in order to prevent a race condition.  This makes it\nunsuitable for use when finished with idle.  Add a new function\ncpuidle_coupled_set_done that decrements both the ready count and\nwaiting count, and call it after idle is complete.\n\nCc: Amit Kucheria \u003camit.kucheria@linaro.org\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nCc: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nReviewed-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nTested-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3af272ab75c7a0c7fa5ae5507724d961f7e7718b",
      "tree": "114bbb6881afbefa2108038083cdd6216dc53c6c",
      "parents": [
        "56cfbf74a17c40f3a741398103c9f5d5a6806715"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 07 17:57:40 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 02 00:48:49 2012 -0400"
      },
      "message": "cpuidle: fix error handling in __cpuidle_register_device\n\nFix the error handling in __cpuidle_register_device to include\nthe missing list_del.  Move it to a label, which will simplify\nthe error handling when coupled states are added.\n\nReviewed-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nTested-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nReviewed-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "56cfbf74a17c40f3a741398103c9f5d5a6806715",
      "tree": "80adac252b5c485df28f3469e314a66d562a5d4c",
      "parents": [
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon May 07 17:57:39 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 02 00:48:31 2012 -0400"
      },
      "message": "cpuidle: refactor out cpuidle_enter_state\n\nSplit the code to enter a state and update the stats into a helper\nfunction, cpuidle_enter_state, and export it.  This function will\nbe called by the coupled state code to handle entering the safe\nstate and the final coupled state.\n\nReviewed-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nTested-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\nReviewed-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "1b0a0e9a15b976d91f3b5ae619c6a8964c2818eb",
      "tree": "4408c6a983c18ca7c8cc1a9d55008b3dd5d33703",
      "parents": [
        "0aeb9cac6f8a6fc68acfb07d30b62ad6106a6384"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Fri May 04 14:06:02 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jun 01 16:07:23 2012 -0400"
      },
      "message": "cpuidle: add checks to avoid NULL pointer dereference\n\nThe existing check for dev \u003d\u003d NULL in __cpuidle_register_device() is\nrendered useless because dev is dereferenced before the check itself.\nMoreover, correctly speaking, it is the job of the callers of this\nfunction, i.e., cpuidle_register_device() \u0026 cpuidle_enable_device() (which\nalso happen to be exported functions) to ensure that\n__cpuidle_register_device() is called with a non-NULL dev.\n\nSo add the necessary dev \u003d\u003d NULL checks in the two callers and remove the\n(useless) check from __cpuidle_register_device().\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nAcked-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "0aeb9cac6f8a6fc68acfb07d30b62ad6106a6384",
      "tree": "7a06641d75e75558b266ac92833167b94e61cda5",
      "parents": [
        "76e10d158efb6d4516018846f60c2ab5501900bc"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Fri May 04 14:06:02 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Jun 01 16:06:48 2012 -0400"
      },
      "message": "cpuidle: remove unused hrtimer_peek_ahead_timers() call\n\n  commit 9a6558371bcd01c2973b7638181db4ccc34eab4f\n  Author: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n  Date:   Sun Nov 9 12:45:10 2008 -0800\n\n     regression: disable timer peek-ahead for 2.6.28\n\n     It\u0027s showing up as regressions; disabling it very likely just papers\n     over an underlying issue, but time is running out for 2.6.28, lets get\n     back to this for 2.6.29\n\n Many years has passed since 2008, so it seems ok to remove whole `#if 0\u0027 block.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Kevin Hilman \u003ckhilman@ti.com\u003e\nCc: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nCc: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4a1625133d4faaefcec0dc175941f49b186918d9",
      "tree": "abefd7c7b1332ae9ef6a10ffd77790b2a01aa98e",
      "parents": [
        "f37f435f33717dcf15fd4bb422da739da7fc2052"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon May 07 17:59:48 2012 +0000"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue May 08 12:35:06 2012 +0200"
      },
      "message": "cpuidle: Use kick_all_cpus_sync()\n\nkick_all_cpus_sync() is the core implementation of cpu_idle_wait()\nwhich is copied all over the arch code.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120507175652.119842173@linutronix.de\n"
    },
    {
      "commit": "eeaab2d8af2cf1d36d7086f22e9de42d6dd2995c",
      "tree": "369b9c91a6d808944f07d2290fec6f9fe2731904",
      "parents": [
        "ee01e663373343c63e0e3d364d09f6155378dbcc",
        "aaef292acf3a78d9c0bb6fb72226077d286b45d7"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 06 21:48:59 2012 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 06 21:48:59 2012 -0400"
      },
      "message": "Merge branches \u0027idle-fix\u0027 and \u0027misc\u0027 into release\n"
    },
    {
      "commit": "ee01e663373343c63e0e3d364d09f6155378dbcc",
      "tree": "22448567769278f9af4f8bff9bfc7653be94885c",
      "parents": [
        "54f70077768e9aba37d9c5030b43497b6d5084fb"
      ],
      "author": {
        "name": "Toshi Kani",
        "email": "toshi.kani@hp.com",
        "time": "Sat Mar 31 21:37:02 2012 -0600"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 06 15:01:25 2012 -0400"
      },
      "message": "cpuidle: Fix panic in CPU off-lining with no idle driver\n\nFix a NULL pointer dereference panic in cpuidle_play_dead() during\nCPU off-lining when no cpuidle driver is registered.  A cpuidle\ndriver may be registered at boot-time based on CPU type.  This patch\nallows an off-lined CPU to enter HLT-based idle in this condition.\n\nSigned-off-by: Toshi Kani \u003ctoshi.kani@hp.com\u003e\nCc: Boris Ostrovsky \u003cboris.ostrovsky@amd.com\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nTested-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a335750b9a039a9d4cd727cdccacfb90fd63c4e8",
      "tree": "8f3198984fb75fe494e771d9431f6799228623c5",
      "parents": [
        "10f3cb41d48ab30f5c754b30eea557371892b4c2",
        "d326f44e5f2204c7a24db69bfc6dd3fe5f86182b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 16:45:38 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 30 16:45:39 2012 -0700"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\nPull ACPI \u0026 Power Management changes from Len Brown:\n - ACPI 5.0 after-ripples, ACPICA/Linux divergence cleanup\n - cpuidle evolving, more ARM use\n - thermal sub-system evolving, ditto\n - assorted other PM bits\n\nFix up conflicts in various cpuidle implementations due to ARM cpuidle\ncleanups (ARM at91 self-refresh and cpu idle code rewritten into\n\"standby\" in asm conflicting with the consolidation of cpuidle time\nkeeping), trivial SH include file context conflict and RCU tracing fixes\nin generic code.\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (77 commits)\n  ACPI throttling: fix endian bug in acpi_read_throttling_status()\n  Disable MCP limit exceeded messages from Intel IPS driver\n  ACPI video: Don\u0027t start video device until its associated input device has been allocated\n  ACPI video: Harden video bus adding.\n  ACPI: Add support for exposing BGRT data\n  ACPI: export acpi_kobj\n  ACPI: Fix logic for removing mappings in \u0027acpi_unmap\u0027\n  CPER failed to handle generic error records with multiple sections\n  ACPI: Clean redundant codes in scan.c\n  ACPI: Fix unprotected smp_processor_id() in acpi_processor_cst_has_changed()\n  ACPI: consistently use should_use_kmap()\n  PNPACPI: Fix device ref leaking in acpi_pnp_match\n  ACPI: Fix use-after-free in acpi_map_lsapic\n  ACPI: processor_driver: add missing kfree\n  ACPI, APEI: Fix incorrect APEI register bit width check and usage\n  Update documentation for parameter *notrigger* in einj.txt\n  ACPI, APEI, EINJ, new parameter to control trigger action\n  ACPI, APEI, EINJ, limit the range of einj_param\n  ACPI, APEI, Fix ERST header length check\n  cpuidle: power_usage should be declared signed integer\n  ...\n"
    },
    {
      "commit": "1a022e3f1be11730bd8747b1af96a0274bf6356e",
      "tree": "d3c95b68626ac7d963ac3a85a07dae1cfc011906",
      "parents": [
        "e07510585a88c0f6c6c728e2e006aa913496d4ae"
      ],
      "author": {
        "name": "Boris Ostrovsky",
        "email": "boris.ostrovsky@amd.com",
        "time": "Tue Mar 13 19:55:09 2012 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 03:23:01 2012 -0400"
      },
      "message": "idle, x86: Allow off-lined CPU to enter deeper C states\n\nCurrently when a CPU is off-lined it enters either MWAIT-based idle or,\nif MWAIT is not desired or supported, HLT-based idle (which places the\nprocessor in C1 state). This patch allows processors without MWAIT\nsupport to stay in states deeper than C1.\n\nSigned-off-by: Boris Ostrovsky \u003cboris.ostrovsky@amd.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "fc850f39ea54c760ce438a601cfea8ab80c4898e",
      "tree": "3f413ea8c13cc12f7f6af16bc198a17914695f1b",
      "parents": [
        "3a53396b0381ec9d5180fd8fe7a681c8ce95fd9a"
      ],
      "author": {
        "name": "Daniel Lezcano",
        "email": "daniel.lezcano@linaro.org",
        "time": "Mon Mar 26 14:51:26 2012 +0200"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 01:55:04 2012 -0400"
      },
      "message": "cpuidle: use the driver\u0027s state_count as default\n\nIf the state_count is not initialized for the device use\nthe driver\u0027s state count as the default. That will prevent\nto add it manually in the cpuidle driver initialization\nroutine and will save us from duplicate line of code.\n\nSigned-off-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "3a53396b0381ec9d5180fd8fe7a681c8ce95fd9a",
      "tree": "60a0770554c64250900ccf827ff868b483ae92fe",
      "parents": [
        "6a6ea0acc9375571a13aa8c4e105a0807e1c16a4"
      ],
      "author": {
        "name": "ShuoX Liu",
        "email": "shuox.liu@intel.com",
        "time": "Wed Mar 28 15:19:11 2012 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Mar 30 01:52:58 2012 -0400"
      },
      "message": "cpuidle: add a sysfs entry to disable specific C state for debug purpose.\n\nSome C states of new CPU might be not good.  One reason is BIOS might\nconfigure them incorrectly.  To help developers root cause it quickly, the\npatch adds a new sysfs entry, so developers could disable specific C state\nmanually.\n\nIn addition, C state might have much impact on performance tuning, as it\ntakes much time to enter/exit C states, which might delay interrupt\nprocessing.  With the new debug option, developers could check if a deep C\nstate could impact performance and how much impact it could cause.\n\nAlso add this option in Documentation/cpuidle/sysfs.txt.\n\n[akpm@linux-foundation.org: check kstrtol return value]\nSigned-off-by: ShuoX Liu \u003cshuox.liu@intel.com\u003e\nReviewed-by: Yanmin Zhang \u003cyanmin_zhang@intel.com\u003e\nReviewed-and-Tested-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "e1689795a784a7c41ac4cf9032794986b095a133",
      "tree": "19619c24579875e344af337c86c6a604425627b5",
      "parents": [
        "c16fa4f2ad19908a47c63d8fa436a1178438c7e7"
      ],
      "author": {
        "name": "Robert Lee",
        "email": "rob.lee@linaro.org",
        "time": "Tue Mar 20 15:22:42 2012 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Mar 21 01:59:40 2012 -0400"
      },
      "message": "cpuidle: Add common time keeping and irq enabling\n\nMake necessary changes to implement time keeping and irq enabling\nin the core cpuidle code.  This will allow the removal of these\nfunctionalities from various platform cpuidle implementations whose\ntimekeeping and irq enabling follows the form in this common code.\n\nSigned-off-by: Robert Lee \u003crob.lee@linaro.org\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nTested-by: Amit Daniel \u003camit.kachhap@linaro.org\u003e\nTested-by: Robert Lee \u003crob.lee@linaro.org\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nReviewed-by: Daniel Lezcano \u003cdaniel.lezcano@linaro.org\u003e\nReviewed-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nAcked-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "76027ea863fc02698da536b4970784eed3caa635",
      "tree": "aef940211f8e9e78b13df1be92517ad51a76089e",
      "parents": [
        "484546509ce5d49d43ec0a6eb2141c6bf3362bfc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Feb 07 09:46:01 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Feb 13 09:14:46 2012 -0500"
      },
      "message": "cpuidle/tracing: Denote the tracepoints as being in rcu_idle_exit() section\n\nAs the tracepoints in the cpuidle code are called when rcu_idle_exit() is in\neffect, the _rcuidle() version must be used, otherwise the rcu_read_lock()s\nthat protect the tracepoint will not be honored.\n\nCc: Len Brown \u003clen.brown@intel.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8a25a2fd126c621f44f3aeaef80d51f00fc11639",
      "tree": "41694ab1a9c82a7a02d9cd33c929fd039c98c815",
      "parents": [
        "cb0c05c5fae12eeb7c85c205578df277bd706155"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Dec 21 14:29:42 2011 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 21 14:29:42 2011 -0800"
      },
      "message": "cpu: convert \u0027cpu\u0027 and \u0027machinecheck\u0027 sysdev_class to a regular subsystem\n\nThis moves the \u0027cpu sysdev_class\u0027 over to a regular \u0027cpu\u0027 subsystem\nand converts the devices to regular devices. The sysdev drivers are\nimplemented as subsystem interfaces now.\n\nAfter all sysdev classes are ported to regular driver core entities, the\nsysdev implementation will be entirely removed from the kernel.\n\nUserspace relies on events and generic sysfs subsystem infrastructure\nfrom sysdev devices, which are made available with this conversion.\n\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Borislav Petkov \u003cbp@amd64.org\u003e\nCc: Tigran Aivazian \u003ctigran@aivazian.fsnet.co.uk\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Zhang Rui \u003crui.zhang@intel.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: \"Srivatsa S. Bhat\" \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "3c00303206c3a1ccd86579efdc90bc35f140962e",
      "tree": "66170c84b5ddaeb102aea3530517a26657b6ea29",
      "parents": [
        "83dbb15e9cd78a3619e3db36777e2f81d09b2914",
        "efb90582c575084723cc14302c1300cb26c7e01f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:13:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 07 10:13:52 2011 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:\n  cpuidle: Single/Global registration of idle states\n  cpuidle: Split cpuidle_state structure and move per-cpu statistics fields\n  cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev-\u003eprepare()\n  cpuidle: Move dev-\u003elast_residency update to driver enter routine; remove dev-\u003elast_state\n  ACPI: Fix CONFIG_ACPI_DOCK\u003dn compiler warning\n  ACPI: Export FADT pm_profile integer value to userspace\n  thermal: Prevent polling from happening during system suspend\n  ACPI: Drop ACPI_NO_HARDWARE_INIT\n  ACPI atomicio: Convert width in bits to bytes in __acpi_ioremap_fast()\n  PNPACPI: Simplify disabled resource registration\n  ACPI: Fix possible recursive locking in hwregs.c\n  ACPI: use kstrdup()\n  mrst pmu: update comment\n  tools/power turbostat: less verbose debugging\n"
    },
    {
      "commit": "46bcfad7a819bd17ac4e831b04405152d59784ab",
      "tree": "20041e788154d103edff2699f88d4a30320e3ee2",
      "parents": [
        "4202735e8ab6ecfb0381631a0d0b58fefe0bd4e2"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:42 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:58 2011 -0500"
      },
      "message": "cpuidle: Single/Global registration of idle states\n\nThis patch makes the cpuidle_states structure global (single copy)\ninstead of per-cpu. The statistics needed on per-cpu basis\nby the governor are kept per-cpu. This simplifies the cpuidle\nsubsystem as state registration is done by single cpu only.\nHaving single copy of cpuidle_states saves memory. Rare case\nof asymmetric C-states can be handled within the cpuidle driver\nand architectures such as POWER do not have asymmetric C-states.\n\nHaving single/global registration of all the idle states,\ndynamic C-state transitions on x86 are handled by\nthe boot cpu. Here, the boot cpu  would disable all the devices,\nre-populate the states and later enable all the devices,\nirrespective of the cpu that would receive the notification first.\n\nReference:\nhttps://lkml.org/lkml/2011/4/25/83\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4202735e8ab6ecfb0381631a0d0b58fefe0bd4e2",
      "tree": "189e5aab466995128c5a9d5a2a4075a5db530674",
      "parents": [
        "b25edc42bfb9602f0503474b2c94701d5536ce60"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:33 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:49 2011 -0500"
      },
      "message": "cpuidle: Split cpuidle_state structure and move per-cpu statistics fields\n\nThis is the first step towards global registration of cpuidle\nstates. The statistics used primarily by the governor are per-cpu\nand have to be split from rest of the fields inside cpuidle_state,\nwhich would be made global i.e. single copy. The driver_data field\nis also per-cpu and moved.\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "b25edc42bfb9602f0503474b2c94701d5536ce60",
      "tree": "5d3b8634606daa99fe5dc86ade108400ecf3a5fd",
      "parents": [
        "e978aa7d7d57d04eb5f88a7507c4fb98577def77"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:24 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:43 2011 -0500"
      },
      "message": "cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev-\u003eprepare()\n\nThe cpuidle_device-\u003eprepare() mechanism causes updates to the\ncpuidle_state[].flags, setting and clearing CPUIDLE_FLAG_IGNORE\nto tell the governor not to chose a state on a per-cpu basis at\nrun-time. State demotion is now handled by the driver and it returns\nthe actual state entered. Hence, this mechanism is not required.\nAlso this removes per-cpu flags from cpuidle_state enabling\nit to be made global.\n\nReference:\nhttps://lkml.org/lkml/2011/3/25/52\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "e978aa7d7d57d04eb5f88a7507c4fb98577def77",
      "tree": "d6d6dfe1dba4d4749c7eafe348351aa499c3c5eb",
      "parents": [
        "c3b92c8787367a8bb53d57d9789b558f1295cc96"
      ],
      "author": {
        "name": "Deepthi Dharwar",
        "email": "deepthi@linux.vnet.ibm.com",
        "time": "Fri Oct 28 16:20:09 2011 +0530"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sun Nov 06 21:13:30 2011 -0500"
      },
      "message": "cpuidle: Move dev-\u003elast_residency update to driver enter routine; remove dev-\u003elast_state\n\nCpuidle governor only suggests the state to enter using the\ngovernor-\u003eselect() interface, but allows the low level driver to\noverride the recommended state. The actual entered state\nmay be different because of software or hardware demotion. Software\ndemotion is done by the back-end cpuidle driver and can be accounted\ncorrectly. Current cpuidle code uses last_state field to capture the\nactual state entered and based on that updates the statistics for the\nstate entered.\n\nIdeally the driver enter routine should update the counters,\nand it should return the state actually entered rather than the time\nspent there. The generic cpuidle code should simply handle where\nthe counters live in the sysfs namespace, not updating the counters.\n\nReference:\nhttps://lkml.org/lkml/2011/3/25/52\n\nSigned-off-by: Deepthi Dharwar \u003cdeepthi@linux.vnet.ibm.com\u003e\nSigned-off-by: Trinabh Gupta \u003cg.trinabh@gmail.com\u003e\nTested-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "884b17e109d61e95ee4c652cf6873341bf1dca63",
      "tree": "3d78863d2c13a61551ecd4fc498645ed2a3a0c95",
      "parents": [
        "93cf5d75b9d0b703ca8f4f8f98303ad77ab20d26"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Aug 29 17:52:39 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:31:30 2011 -0400"
      },
      "message": "cpuidle: Add module.h to drivers/cpuidle files as required.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "e8db0be1245de16a6cc6365506abc392c3c212d4",
      "tree": "01cf446568080c06c8797262554f3b0f758ae137",
      "parents": [
        "b5e8d269d814763d597ccc0108d1fa6639ad35a1"
      ],
      "author": {
        "name": "Jean Pihet",
        "email": "j-pihet@ti.com",
        "time": "Thu Aug 25 15:35:03 2011 +0200"
      },
      "committer": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu Aug 25 15:35:03 2011 +0200"
      },
      "message": "PM QoS: Move and rename the implementation files\n\nThe PM QoS implementation files are better named\nkernel/power/qos.c and include/linux/pm_qos.h.\n\nThe PM QoS support is compiled under the CONFIG_PM option.\n\nSigned-off-by: Jean Pihet \u003cj-pihet@ti.com\u003e\nAcked-by: markgross \u003cmarkgross@thegnar.org\u003e\nReviewed-by: Kevin Hilman \u003ckhilman@ti.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\n"
    },
    {
      "commit": "a0bfa1373859e9d11dc92561a8667588803e42d8",
      "tree": "ef5768a313ac16a211830efc3edb9ca95487cb6a",
      "parents": [
        "4bfc8288bc4a64529c5547d17349a2a1f4675507"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 01 19:34:59 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 19:06:37 2011 -0400"
      },
      "message": "cpuidle: stop depending on pm_idle\n\ncpuidle users should call cpuidle_call_idle() directly\nrather than via (pm_idle)() function pointer.\n\nArchitecture may choose to continue using (pm_idle)(),\nbut cpuidle need not depend on it:\n\n  my_arch_cpu_idle()\n\t...\n\tif(cpuidle_call_idle())\n\t\tpm_idle();\n\ncc: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\ncc: Paul Mundt \u003clethal@linux-sh.org\u003e\ncc: x86@kernel.org\nAcked-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d91ee5863b71e8c90eaf6035bff3078a85e2e7b5",
      "tree": "7c4972d8d6f614f656720ec686a6288de68f4af3",
      "parents": [
        "62027aea23fcd14478abdddd3b74a4e0f5fb2984"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 01 18:28:35 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 19:06:36 2011 -0400"
      },
      "message": "cpuidle: replace xen access to x86 pm_idle and default_idle\n\nWhen a Xen Dom0 kernel boots on a hypervisor, it gets access\nto the raw-hardware ACPI tables.  While it parses the idle tables\nfor the hypervisor\u0027s beneift, it uses HLT for its own idle.\n\nRather than have xen scribble on pm_idle and access default_idle,\nhave it simply disable_cpuidle() so acpi_idle will not load and\narchitecture default HLT will be used.\n\ncc: xen-devel@lists.xensource.com\nTested-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "62027aea23fcd14478abdddd3b74a4e0f5fb2984",
      "tree": "1aaa5c1872e296f3448ae6c126175ac9d998e3b4",
      "parents": [
        "6dccf9c508d5d773859df1cc2dce75c5b19e35a0"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Fri Apr 01 18:13:10 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 19:06:36 2011 -0400"
      },
      "message": "cpuidle: create bootparam \"cpuidle.off\u003d1\"\n\nuseful for disabling cpuidle to fall back\nto architecture-default idle loop\n\ncpuidle drivers and governors will fail to register.\non x86 they\u0027ll say so:\n\nintel_idle: intel_idle yielding to (null)\nACPI: acpi_idle yielding to (null)\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "43952886f0b8b3c344c3392b88de067d5fa5419a",
      "tree": "c1a738f11a479246c09976902be5b73aaf731722",
      "parents": [
        "56dbed129df3fdd4caf9018b6e7599ee258a5420",
        "f77cfe4ea21760268c0277fa3e4b02dfd2a2c2f4"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:06:19 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:06:19 2011 -0500"
      },
      "message": "Merge branch \u0027cpuidle-perf-events\u0027 into idle-test\n"
    },
    {
      "commit": "56dbed129df3fdd4caf9018b6e7599ee258a5420",
      "tree": "b902491aef3a99efe0d9d49edd0f6e414dba654f",
      "parents": [
        "2a2d31c8dc6f1ebcf5eab1d93a0cb0fb4ed57c7c",
        "f878133bf022717b880d0e0995b8f91436fd605c"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:06:06 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:06:06 2011 -0500"
      },
      "message": "Merge branch \u0027linus\u0027 into idle-test\n"
    },
    {
      "commit": "f77cfe4ea21760268c0277fa3e4b02dfd2a2c2f4",
      "tree": "ffd83ee874d1cbe062cd70cade50c017725ba586",
      "parents": [
        "f878133bf022717b880d0e0995b8f91436fd605c"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Jan 07 11:29:44 2011 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 18:05:16 2011 -0500"
      },
      "message": "cpuidle/x86/perf: fix power:cpu_idle double end events and throw cpu_idle events from the cpuidle layer\n\nCurrently intel_idle and acpi_idle driver show double cpu_idle \"exit idle\"\nevents -\u003e this patch fixes it and makes cpu_idle events throwing less complex.\n\nIt also introduces cpu_idle events for all architectures which use\nthe cpuidle subsystem, namely:\n  - arch/arm/mach-at91/cpuidle.c\n  - arch/arm/mach-davinci/cpuidle.c\n  - arch/arm/mach-kirkwood/cpuidle.c\n  - arch/arm/mach-omap2/cpuidle34xx.c\n  - arch/drivers/acpi/processor_idle.c (for all cases, not only mwait)\n  - arch/x86/kernel/process.c (did throw events before, but was a mess)\n  - drivers/idle/intel_idle.c (did throw events before)\n\nConvention should be:\nFire cpu_idle events inside the current pm_idle function (not somewhere\ndown the the callee tree) to keep things easy.\n\nCurrent possible pm_idle functions in X86:\nc1e_idle, poll_idle, cpuidle_idle_call, mwait_idle, default_idle\n-\u003e this is really easy is now.\n\nThis affects userspace:\nThe type field of the cpu_idle power event can now direclty get\nmapped to:\n/sys/devices/system/cpu/cpuX/cpuidle/stateX/{name,desc,usage,time,...}\ninstead of throwing very CPU/mwait specific values.\nThis change is not visible for the intel_idle driver.\nFor the acpi_idle driver it should only be visible if the vendor\nmisses out C-states in his BIOS.\nAnother (perf timechart) patch reads out cpuidle info of cpu_idle\nevents from:\n/sys/.../cpuidle/stateX/*, then the cpuidle events are mapped\nto the correct C-/cpuidle state again, even if e.g. vendors miss\nout C-states in their BIOS and for example only export C1 and C3.\n-\u003e everything is fine.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCC: Robert Schoene \u003crobert.schoene@tu-dresden.de\u003e\nCC: Jean Pihet \u003cj-pihet@ti.com\u003e\nCC: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCC: linux-pm@lists.linux-foundation.org\nCC: linux-acpi@vger.kernel.org\nCC: linux-kernel@vger.kernel.org\nCC: linux-perf-users@vger.kernel.org\nCC: linux-omap@vger.kernel.org\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d247632c08c674864d438733280422ddb7130ff8",
      "tree": "d9c759480147cd867b72ceb8625554b2e7b550ed",
      "parents": [
        "0aae9f923bcc476a8e4725dd3ac37547b9816ee5"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 02:34:59 2011 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 12:47:31 2011 -0500"
      },
      "message": "cpuidle: delete NOP CPUIDLE_FLAG_POLL\n\nit serves no purpose\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "720f1c3010db6a411358b962a2007969117840bc",
      "tree": "aee96003008b8cb5873d2e0adc4188bdebef2cfa",
      "parents": [
        "d18960494f65ca4fa0d67c865aaca99452070d15"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Fri Jan 07 11:29:43 2011 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 12:47:31 2011 -0500"
      },
      "message": "cpuidle: Rename X86 specific idle poll state[0] from C0 to POLL\n\nC0 means and is well know as \"not idle\".\nAll documentation out there uses this term as \"running\"/\"not idle\"\nstate. Also Linux userspace tools (e.g. cpufreq-aperf and turbostat)\nshow C0 residency which there is correct, but means something totally\nelse than cpuidle \"POLL\" state.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d8c216cfa57e8a579f41729cbb88c97835d9ac8d",
      "tree": "0085ebf22bf3a05607e512102a3dab065c5514a9",
      "parents": [
        "ddbd550d503c9cdefcd6674a0ef168d57d3f0917"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sat Jan 08 00:29:20 2011 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jan 12 12:47:30 2011 -0500"
      },
      "message": "cpuidle: Make cpuidle_enable_device() call poll_idle_init()\n\nThe following scenario is possible with the current cpuidle code and\nthe ACPI cpuidle driver:\n(1) acpi_processor_cst_has_changed() is called,\n(2) cpuidle_disable_device() is called,\n(3) cpuidle_remove_state_sysfs() is called to remove the (presumably\n    outdated) states info from sysfs,\n(3) acpi_processor_get_power_info() is called, the first entry in the\n    pr-\u003epower.states[] table is filled with zeros,\n(4) acpi_processor_setup_cpuidle() is called and it doesn\u0027t fill the\n    first entry in pr-\u003epower.states[],\n(5) cpuidle_enable_device() is called,\n(6) __cpuidle_register_device() is _not_ called, since the device has\n    already been registered,\n(7) Consequently, poll_idle_init() is _not_ called either,\n(8) cpuidle_add_state_sysfs() is called to create the sysfs attributes\n    for the new states and it uses the bogus first table entry from\n    acpi_processor_get_power_info() for creating state0.\n\nThis problem is avoided if cpuidle_enable_device()\nunconditionally calls poll_idle_init().\n\nReported-by: Len Brown \u003clen.brown@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\ncc: stable@kernel.org\n"
    },
    {
      "commit": "72eb6a791459c87a0340318840bb3bd9252b627b",
      "tree": "3bfb8ad99f9c7e511f37f72d57b56a2cea06d753",
      "parents": [
        "23d69b09b78c4876e134f104a3814c30747c53f1",
        "55ee4ef30241a62b700f79517e6d5ef2ddbefa67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)\n  gameport: use this_cpu_read instead of lookup\n  x86: udelay: Use this_cpu_read to avoid address calculation\n  x86: Use this_cpu_inc_return for nmi counter\n  x86: Replace uses of current_cpu_data with this_cpu ops\n  x86: Use this_cpu_ops to optimize code\n  vmstat: User per cpu atomics to avoid interrupt disable / enable\n  irq_work: Use per cpu atomics instead of regular atomics\n  cpuops: Use cmpxchg for xchg to avoid lock semantics\n  x86: this_cpu_cmpxchg and this_cpu_xchg operations\n  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support\n  percpu,x86: relocate this_cpu_add_return() and friends\n  connector: Use this_cpu operations\n  xen: Use this_cpu_inc_return\n  taskstats: Use this_cpu_ops\n  random: Use this_cpu_inc_return\n  fs: Use this_cpu_inc_return in buffer.c\n  highmem: Use this_cpu_xx_return() operations\n  vmstat: Use this_cpu_inc_return for vm statistics\n  x86: Support for this_cpu_add, sub, dec, inc_return\n  percpu: Generic support for this_cpu_add, sub, dec, inc_return\n  ...\n\nFixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}\nas per Tejun.\n"
    },
    {
      "commit": "25e41933b58777f2d020c3b0186b430ea004ec28",
      "tree": "a4ea8bb52509139b52c35d540928c12b33098f40",
      "parents": [
        "61a0d49c33c7fd57c14895e5b0760bd02b65ac1f"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Mon Jan 03 17:50:44 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jan 04 08:16:54 2011 +0100"
      },
      "message": "perf: Clean up power events by introducing new, more generic ones\n\nAdd these new power trace events:\n\n power:cpu_idle\n power:cpu_frequency\n power:machine_suspend\n\nThe old C-state/idle accounting events:\n  power:power_start\n  power:power_end\n\nHave now a replacement (but we are still keeping the old\ntracepoints for compatibility):\n\n  power:cpu_idle\n\nand\n  power:power_frequency\n\nis replaced with:\n  power:cpu_frequency\n\npower:machine_suspend is newly introduced.\n\nJean Pihet has a patch integrated into the generic layer\n(kernel/power/suspend.c) which will make use of it.\n\nthe type\u003d field got removed from both, it was never\nused and the type is differed by the event type itself.\n\nperf timechart userspace tool gets adjusted in a separate patch.\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nAcked-by: Jean Pihet \u003cjean.pihet@newoldbits.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: rjw@sisk.pl\nLKML-Reference: \u003c1294073445-14812-3-git-send-email-trenn@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nLKML-Reference: \u003c1290072314-31155-2-git-send-email-trenn@suse.de\u003e\n"
    },
    {
      "commit": "4a6f4fe8377720e5a279fdbb769946c242e936d3",
      "tree": "9684b9d39fe8b3aa620465ca0a51e4aacbfdd633",
      "parents": [
        "12938a9220a38d555e38dc9b40021e664b99a1f1"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Mon Dec 06 11:16:24 2010 -0600"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Dec 17 15:07:18 2010 +0100"
      },
      "message": "drivers: Replace __get_cpu_var with __this_cpu_read if not used for an address.\n\n__get_cpu_var() can be replaced with this_cpu_read and will then use a single\nread instruction with implied address calculation to access the correct per cpu\ninstance.\n\nHowever, the address of a per cpu variable passed to __this_cpu_read() cannot be\ndetermed (since its an implied address conversion through segment prefixes).\nTherefore apply this only to uses of __get_cpu_var where the addres of the\nvariable is not used.\n\nV3-\u003eV4:\n\t- Move one instance of this_cpu_inc_return to a later patch\n\t  so that this one can go in without percpu infrastructrure\n\t  changes.\n\nSedat: fixed compile failure caused by an extra \u0027)\u0027.\n\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "71abbbf856a0e70ca478782505c800891260ba84",
      "tree": "00ae494afd2868056753984035e1bfc0c2040257",
      "parents": [
        "d2997b1042ec150616c1963b5e5e919ffd0b0ebf"
      ],
      "author": {
        "name": "Ai Li",
        "email": "aili@codeaurora.org",
        "time": "Mon Aug 09 17:20:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:04 2010 -0700"
      },
      "message": "cpuidle: extend cpuidle and menu governor to handle dynamic states\n\nOn some SoC chips, HW resources may be in use during any particular idle\nperiod.  As a consequence, the cpuidle states that the SoC is safe to\nenter can change from idle period to idle period.  In addition, the\nlatency and threshold of each cpuidle state can vary, depending on the\noperating condition when the CPU becomes idle, e.g.  the current cpu\nfrequency, the current state of the HW blocks, etc.\n\ncpuidle core and the menu governor, in the current form, are geared\ntowards cpuidle states that are static, i.e.  the availabiltiy of the\nstates, their latencies, their thresholds are non-changing during run\ntime.  cpuidle does not provide any hook that cpuidle drivers can use to\nadjust those values on the fly for the current idle period before the menu\ngovernor selects the target cpuidle state.\n\nThis patch extends cpuidle core and the menu governor to handle states\nthat are dynamic.  There are three additions in the patch and the patch\nmaintains backwards-compatibility with existing cpuidle drivers.\n\n1) add prepare() to struct cpuidle_device.  A cpuidle driver can hook\n   into the callback and cpuidle will call prepare() before calling the\n   governor\u0027s select function.  The callback gives the cpuidle driver a\n   chance to update the dynamic information of the cpuidle states for the\n   current idle period, e.g.  state availability, latencies, thresholds,\n   power values, etc.\n\n2) add CPUIDLE_FLAG_IGNORE as one of the state flags.  In the prepare()\n   function, a cpuidle driver can set/clear the flag to indicate to the\n   menu governor whether a cpuidle state should be ignored, i.e.  not\n   available, during the current idle period.\n\n3) add power_specified bit to struct cpuidle_device.  The menu governor\n   currently assumes that the cpuidle states are arranged in the order of\n   increasing latency, threshold, and power savings.  This is true or can\n   be made true for static states.  Once the state parameters are dynamic,\n   the latencies, thresholds, and power savings for the cpuidle states can\n   increase or decrease by different amounts from idle period to idle\n   period.  So the assumption of increasing latency, threshold, and power\n   savings from Cn to C(n+1) can no longer be guaranteed.\n\nIt can be straightforward to calculate the power consumption of each\navailable state and to specify it in power_usage for the idle period.\nUsing the power_usage fields, the menu governor then selects the state\nthat has the lowest power consumption and that still satisfies all other\ncritieria.  The power_specified bit defaults to 0.  For existing cpuidle\ndrivers, cpuidle detects that power_specified is 0 and fills in a dummy\nset of power_usage values.\n\nSigned-off-by: Ai Li \u003caili@codeaurora.org\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f4f2723d08534fd4e407e1ef8500b0f4d12c30c",
      "tree": "3422ba34e7c6bde7e8d4ca1f1f1ed772efc5cc4c",
      "parents": [
        "6b72e3934b42930fd40fc42fe762d21be413301c"
      ],
      "author": {
        "name": "Thomas Renninger",
        "email": "trenn@suse.de",
        "time": "Tue Apr 20 13:17:36 2010 +0200"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Tue Aug 03 13:47:05 2010 -0400"
      },
      "message": "[CPUFREQ] x86 cpufreq: Make trace_power_frequency cpufreq driver independent\n\nand fix the broken case if a core\u0027s frequency depends on others.\n\ntrace_power_frequency was only implemented in a rather ungeneric way\nin acpi-cpufreq driver\u0027s target() function only.\n-\u003e Move the call to trace_power_frequency to\n   cpufreq.c:cpufreq_notify_transition() where CPUFREQ_POSTCHANGE\n   notifier is triggered.\n   This will support power frequency tracing by all cpufreq drivers\n\ntrace_power_frequency did not trace frequency changes correctly when\nthe userspace governor was used or when CPU cores\u0027 frequency depend\non each other.\n-\u003e Moving this into the CPUFREQ_POSTCHANGE notifier and pass the cpu\n   which gets switched automatically fixes this.\n\nRobert Schoene provided some important fixes on top of my initial\nquick shot version which are integrated in this patch:\n- Forgot some changes in power_end trace (TP_printk/variable names)\n- Variable dummy in power_end must now be cpu_id\n- Use static 64 bit variable instead of unsigned int for cpu_id\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCC: davej@redhat.com\nCC: arjan@infradead.org\nCC: linux-kernel@vger.kernel.org\nCC: robert.schoene@tu-dresden.de\nTested-by: robert.schoene@tu-dresden.de\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "752138df0dc2daaae09379c754caeb08c97905dc",
      "tree": "4908627df11ccb42570fc3525c560f89c444781c",
      "parents": [
        "c0d64cb031c21f163a0ec15cf10844bcf0ceedcf"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat May 22 16:57:26 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu May 27 21:06:58 2010 -0400"
      },
      "message": "cpuidle: make cpuidle_curr_driver static\n\ncpuidle_register_driver() sets cpuidle_curr_driver\ncpuidle_unregister_driver() clears cpuidle_curr_driver\n\nWe should\u0027t expose cpuidle_curr_driver to\npotential modification except via these interfaces.\nSo make it static and create cpuidle_get_driver() to observe it.\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "246eb7f0ed1a8aeddec5313137767658f378949b",
      "tree": "25cfbdab4d133ebb1539b3c8b4e302f1ca7866b3",
      "parents": [
        "5e8d8f6f2844d4a663415c660ab5cc92e2e2477d"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@deeprootsystems.com",
        "time": "Mon Oct 26 16:50:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 29 07:39:31 2009 -0700"
      },
      "message": "cpuidle: always return with interrupts enabled\n\nIn the case where cpuidle_idle_call() returns before changing state due to\na need_resched(), it was returning with IRQs disabled.\n\nThe idle path assumes that the platform specific idle code returns with\ninterrupts enabled (although this too is undocumented AFAICT) and on ARM\nwe have a WARN_ON(!(irqs_disabled()) when returning from the idle loop, so\nthe user-visible effects were only a warning since interrupts were\neventually re-enabled later.\n\nOn x86, this same problem exists, but there is no WARN_ON() to detect it.\nAs on ARM, the interrupts are eventually re-enabled, so I\u0027m not sure of\nany actual bugs triggered by this.  It\u0027s primarily a\ncorrectness/consistency fix.\n\nThis patch ensures IRQs are (re)enabled before returning.\n\nReported-by: Hemanth V \u003chemanthv@ti.com\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nTested-by: Martin Michlmayr \u003ctbm@cyrius.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.31.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "288f023e708efd89d77ce9acf977a33a623ae83d",
      "tree": "c3fe7d1bcab32f9dcfd16d92b76098ef4c125178",
      "parents": [
        "964a0b3d2b1b1cac1d01e29b635831b3d92a3fdd"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sat Sep 19 13:35:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Sep 19 18:57:52 2009 +0200"
      },
      "message": "tracing, x86, cpuidle: Move the end point of a C state in the power tracer\n\nThe \"end of a C state\" trace point currently happens before\nthe code runs that corrects the TSC for having stopped during idle.\n\nThe result of this is that the timestamp of the end-of-C-state event\nis garbage on cpus where the TSC stops during idle.\n\nThis patch moves the end point of the C state to after the timekeeping\nengine of the kernel has been corrected.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: fweisbec@gmail.com\nCc: peterz@infradead.org\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20090919133533.139c2a46@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a6558371bcd01c2973b7638181db4ccc34eab4f",
      "tree": "8f7499a1718c0c158d69bb39e73b5592c84c07dd",
      "parents": [
        "6f1e94031f5891e8b375e5ff5d48672c250be353"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Nov 09 12:45:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 09 16:28:42 2008 -0800"
      },
      "message": "regression: disable timer peek-ahead for 2.6.28\n\nIt\u0027s showing up as regressions; disabling it very likely just papers\nover an underlying issue, but time is running out for 2.6.28, lets get\nback to this for 2.6.29\n\nFixes: #11826 and #11893\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f6d6e8ebe73ba9d9d4c693f7f6f50f661dbd6e4",
      "tree": "be7a2d20b1728da5a0d844a6f4cd382b2c2569fb",
      "parents": [
        "db563fc2e80534f98c7f9121a6f7dfe41f177a79",
        "268a3dcfea2077fca60d3715caa5c96f9b5e6ea7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:53:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:53:02 2008 -0700"
      },
      "message": "Merge branch \u0027v28-range-hrtimers-for-linus-v2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027v28-range-hrtimers-for-linus-v2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (37 commits)\n  hrtimers: add missing docbook comments to struct hrtimer\n  hrtimers: simplify hrtimer_peek_ahead_timers()\n  hrtimers: fix docbook comments\n  DECLARE_PER_CPU needs linux/percpu.h\n  hrtimers: fix typo\n  rangetimers: fix the bug reported by Ingo for real\n  rangetimer: fix BUG_ON reported by Ingo\n  rangetimer: fix x86 build failure for the !HRTIMERS case\n  select: fix alpha OSF wrapper\n  select: fix alpha OSF wrapper\n  hrtimer: peek at the timer queue just before going idle\n  hrtimer: make the futex() system call use the per process slack value\n  hrtimer: make the nanosleep() syscall use the per process slack\n  hrtimer: fix signed/unsigned bug in slack estimator\n  hrtimer: show the timer ranges in /proc/timer_list\n  hrtimer: incorporate feedback from Peter Zijlstra\n  hrtimer: add a hrtimer_start_range() function\n  hrtimer: another build fix\n  hrtimer: fix build bug found by Ingo\n  hrtimer: make select() and poll() use the hrtimer range feature\n  ...\n"
    },
    {
      "commit": "89cedfefca1d446ee2598fd3bcbb23ee3802e26a",
      "tree": "8b64a39b4bc1fda76dfdecdb9c97d05a017c99c2",
      "parents": [
        "addbad46ed0906cd584784423b9d0babc7476446"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Oct 16 19:00:08 2008 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Oct 16 19:00:08 2008 -0400"
      },
      "message": "cpuidle: upon BIOS bug, default to default_idle rather than polling\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11345\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "887e301aa1105326f1412a98749024263b1031c7",
      "tree": "0079a925ac94cb0205858aba07dc2d9714a7ddc4",
      "parents": [
        "3fa8749e584b55f1180411ab1b51117190bac1e5"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Sep 29 15:24:27 2008 -0700"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Oct 16 17:59:44 2008 -0400"
      },
      "message": "cpuidle: use last_state which can reflect the actual state entered\n\ncpuidle accounts the idle time for the C-state it was trying to enter and\nnot to the actual state that the driver eventually entered. The driver may\nselect a different state than the one chosen by cpuidle due to\nconstraints like bus-mastering, etc.\n\nChange the time acounting code to look at the dev-\u003elast_state after\nreturning from target_state-\u003eenter(). Driver can modify dev-\u003elast_state\ninternally, inside the enter routine to reflect the actual C-state\nentered.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nTested-by: Kevin Hilman \u003ckhilman@deeprootsystems.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "2e94d1f71f7e4404d997e6fb4f1618aa147d76f9",
      "tree": "73958a61dffff311cdcdc8edcb7e6a4953150601",
      "parents": [
        "ae4b748e81b7e366f04f55229d5e372e372c33af"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Sep 10 16:06:00 2008 -0700"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Thu Sep 11 07:17:49 2008 -0700"
      },
      "message": "hrtimer: peek at the timer queue just before going idle\n\nAs part of going idle, we already look at the time of the next timer event to determine\nwhich C-state to select etc.\n\nThis patch adds functionality that causes the timers that are past their\nsoft expire time, to fire at this time, before we calculate the next wakeup\ntime. This functionality will thus avoid wakeups by running timers before\ngoing idle rather than specially waking up for it.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "b032bf70df2e43149ce2b4e9a865b076c6140753",
      "tree": "ba022a0bc85598a29e21b7aa3f101c8043c24024",
      "parents": [
        "9ffc1699e36abd5baee188c8e36b1bb27d0d4278"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Jul 27 23:47:12 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 08:31:58 2008 -0700"
      },
      "message": "ACPI/CPUIDLE: prevent setting pm_idle to NULL\n\npm_idle_save resp. pm_idle_old can be NULL when the restore code in\nacpi_processor_cst_has_changed() resp. cpuidle_uninstall_idle_handler()\nis called. This can set pm_idle unconditinally to NULL, which causes the\nkernel to panic when calling pm_idle in the x86 idle code. This was\ncovered by an extra check for !pm_idle in the x86 idle code, which was\nremoved during the x86 idle code refactoring.\n\nInstead of restoring the pm_idle check in the x86 code prevent the\nacpi/cpuidle code to set pm_idle to NULL.\n\nReported by: Dhaval Giani http://lkml.org/lkml/2008/7/2/309\nBased on a debug patch from Ingo Molnar\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8691e5a8f691cc2a4fda0651e8d307aaba0e7d68",
      "tree": "6cb6767064d2d43441212566da2d83dcc9a0cd8e",
      "parents": [
        "490f5de52a87063fcb40e3b22f61b0779603ff6d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 06 11:18:06 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 26 11:24:35 2008 +0200"
      },
      "message": "smp_call_function: get rid of the unused nonatomic/retry argument\n\nIt\u0027s never used and the comments refer to nonatomic and retry\ninterchangably. So get rid of it.\n\nAcked-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "dcb84f335bee9c9a7781cfc5d74492dccaf066d2",
      "tree": "e24d4ca7df49b2a87862aa69c09d21ad45a024b7",
      "parents": [
        "e1094bfa26e5e94af2fea79e004614dbce42b008"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon May 19 19:09:27 2008 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Jun 11 19:13:45 2008 -0400"
      },
      "message": "cpuidle acpi driver: fix oops on AC\u003c-\u003eDC\n\ncpuidle and acpi driver interaction bug with the way cpuidle_register_driver()\nis called. Due to this bug, there will be oops on\nAC\u003c-\u003eDC on some systems, where they support C-states in one DC and not in AC.\n\nThe current code does\nON BOOT:\n\tLook at CST and other C-state info to see whether more than C1 is\n\tsupported. If it is, then acpi processor_idle does a\n\tcpuidle_register_driver() call, which internally enables the device.\n\nON CST change notification (AC\u003c-\u003eDC) and on suspend-resume:\n\tacpi driver temporarily disables device, updates the device with\n\tany new C-states, and reenables the device.\n\nThe problem is is on boot, there are no C2, C3 states supported and we skip\nthe register. Later on AC\u003c-\u003eDC, we may get a CST notification and we try\nto reevaluate CST and enabled the device, without actually registering it.\nThis causes breakage as we try to create /sys fs sub directory, without the\nparent directory which is created at register time.\n\nThanks to Sanjeev for reporting the problem here.\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10394\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "8e92b6605da989c0aa8ff7e33306f36f0efd957c",
      "tree": "aafbc4628b907f4134ad91db9b160941f246dfcf",
      "parents": [
        "8b78cf602fd3bd97c0080edd22fe8fd5d0fa7832"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Feb 29 10:24:32 2008 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Mar 26 00:58:19 2008 -0400"
      },
      "message": "cpuidle: fix 100% C0 statistics regression\n\ncommit 9b12e18cdc1553de62d931e73443c806347cd974\n\u0027ACPI: cpuidle: Support C1 idle time accounting\u0027\nwas implicated in a 100% C0 idle regression.\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10076\n\nIt pointed out a potential problem where the menu governor\nmay get confused by the C-state residency time from poll\nidle or C1 idle, where this timing info is not accurate.\nThis inaccuracy is due to interrupts being handled\nbefore we account for C-state exit.\n\nDo not mark TIME_VALID for CO poll state.\nMark C1 time as valid only with the MWAIT (CSTATE_FFH) entry method.\n\nThis makes governors use the timing information only when it is correct and\neliminates any wrong policy decisions that may result from invalid timing\ninformation.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "8b78cf602fd3bd97c0080edd22fe8fd5d0fa7832",
      "tree": "e5f8d7f74c0c1dbd03af793e0b7cb8fb1c06ccdf",
      "parents": [
        "996520c1fdd2948addb629be56c9febf2967e02b"
      ],
      "author": {
        "name": "Yi Yang",
        "email": "yi.y.yang@intel.com",
        "time": "Mon Feb 25 08:46:12 2008 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Mar 26 00:45:26 2008 -0400"
      },
      "message": "cpuidle: fix cpuidle time and usage overflow\n\ncpuidle C-state sysfs node time and usage are very easy to overflow because\nthey are all of unsigned int type, time will overflow within about two hours,\nusage will take longer time to overflow, but they are increasing for ever.\n\nThis patch will convert them to unsigned long long.\n\nSigned-off-by: Yi Yang \u003cyi.y.yang@intel.com\u003e\nAcked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4fcb2fcd4d0678b8ae103d257dcb28074cbfc7fa",
      "tree": "54bcf486976184804c8fc786d09a04e1ce26ef99",
      "parents": [
        "e760e716d47b48caf98da348368fd41b4a9b9e7e"
      ],
      "author": {
        "name": "Venkatesh Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Mon Feb 11 17:46:31 2008 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 14 00:09:55 2008 -0500"
      },
      "message": "ACPI, cpuidle: Clarify C-state description in sysfs\n\nAdd a new sysfs entry under cpuidle states. desc - can be used by driver to\ncommunicate to userspace any specific information about the state.\nThis helps in identifying the exact hardware C-states behind the ACPI C-state\ndefinition.\n\nIdea is to export this through powertop, which will help to map the C-state\nreported by powertop to actual hardware C-state.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a6869cc4cfd633d909918f1489a6a8ac668cd6aa",
      "tree": "4a21f9e00972c080efb6e3e455f63edc54cb4e40",
      "parents": [
        "b1d0e4f535e10775cffde922208b49629169aeaa"
      ],
      "author": {
        "name": "Venki Pallipadi",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Feb 08 17:05:44 2008 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Feb 09 03:33:40 2008 -0500"
      },
      "message": "cpuidle: build fix for non-x86\n\nThe last posted version of this patch gave compile error\non IA64. So, here goes yet another rewrite of the patch.\n\nConvert cpu_idle_wait() to cpuidle_kick_cpus() which is\nSMP-only, and gives error on non supported CPU.\n\nChanges from last patch sent by Kevin:\nMoved the definition of kick_cpus back to cpuidle.c from cpuidle.h:\n* Having it in .h gives #error on archs which includes the header file without\n  actually having CPU_IDLE configured. To make it work in .h, we need one more\n  #ifdef around that code which makes it messy.\n* Also, the function is only called from one file. So, it can be in declared\n  statically in .c rather than making it available to everyone who includes\n  the .h file.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Kevin Hilman \u003ckhilman@mvista.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "9b7131542178f5f948e4bb6bea6e1c545e697b06",
      "tree": "f502264c3768d4bf8ca28d8f5cc10d45e5897179",
      "parents": [
        "81e242d0efafb319938d511b115088a5c4523c91"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 07 04:16:34 2008 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 07 04:16:34 2008 -0500"
      },
      "message": "Revert \"cpuidle: build fix for non-x86\"\n\nThis reverts commit f757397097d0713c949af76dccabb65a2785782e.\nwhich ironically broke the ia64 build\n"
    },
    {
      "commit": "acf63867ae06ef95eea7bf445ded2f05528a81b1",
      "tree": "35f65ce7d7520b9c4920086382f1838107f836ca",
      "parents": [
        "c64768a7d671bcde80bca2aed93f9e07edc069c3",
        "f757397097d0713c949af76dccabb65a2785782e",
        "9a0b841586c3c6c846effdbe75885c2ebc0031b0"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 07 03:11:05 2008 -0500"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 07 03:11:05 2008 -0500"
      },
      "message": "Merge branches \u0027release\u0027, \u0027cpuidle-2.6.25\u0027 and \u0027idle\u0027 into release\n"
    },
    {
      "commit": "9a0b841586c3c6c846effdbe75885c2ebc0031b0",
      "tree": "d9522222094b6357c7933489b98c7249326e1cf8",
      "parents": [
        "9b12e18cdc1553de62d931e73443c806347cd974"
      ],
      "author": {
        "name": "venkatesh.pallipadi@intel.com",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Jan 31 17:35:06 2008 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Feb 07 02:20:15 2008 -0500"
      },
      "message": "cpuidle: Add a poll_idle method\n\nAdd a default poll idle state with 0 latency. Provides an option to users\nto use poll_idle by using 0 as the latency requirement.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "d82b35186eaa816267f044bd70cc0acb3c7971a3",
      "tree": "e8de56c122fd8040086e974895afbb8299045c0f",
      "parents": [
        "4ef7229ffa93695e346d510b871452811509ea65"
      ],
      "author": {
        "name": "Mark Gross",
        "email": "mgross@linux.intel.com",
        "time": "Mon Feb 04 22:30:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:22 2008 -0800"
      },
      "message": "pm qos infrastructure and interface\n\nThe following patch is a generalization of the latency.c implementation done\nby Arjan last year.  It provides infrastructure for more than one parameter,\nand exposes a user mode interface for processes to register pm_qos\nexpectations of processes.\n\nThis interface provides a kernel and user mode interface for registering\nperformance expectations by drivers, subsystems and user space applications on\none of the parameters.\n\nCurrently we have {cpu_dma_latency, network_latency, network_throughput} as\nthe initial set of pm_qos parameters.\n\nThe infrastructure exposes multiple misc device nodes one per implemented\nparameter.  The set of parameters implement is defined by pm_qos_power_init()\nand pm_qos_params.h.  This is done because having the available parameters\nbeing runtime configurable or changeable from a driver was seen as too easy to\nabuse.\n\nFor each parameter a list of performance requirements is maintained along with\nan aggregated target value.  The aggregated target value is updated with\nchanges to the requirement list or elements of the list.  Typically the\naggregated target value is simply the max or min of the requirement values\nheld in the parameter list elements.\n\n\u003eFrom kernel mode the use of this interface is simple:\n\npm_qos_add_requirement(param_id, name, target_value):\n\n  Will insert a named element in the list for that identified PM_QOS\n  parameter with the target value.  Upon change to this list the new target is\n  recomputed and any registered notifiers are called only if the target value\n  is now different.\n\npm_qos_update_requirement(param_id, name, new_target_value):\n\n  Will search the list identified by the param_id for the named list element\n  and then update its target value, calling the notification tree if the\n  aggregated target is changed.  with that name is already registered.\n\npm_qos_remove_requirement(param_id, name):\n\n  Will search the identified list for the named element and remove it, after\n  removal it will update the aggregate target and call the notification tree\n  if the target was changed as a result of removing the named requirement.\n\n\u003eFrom user mode:\n\n  Only processes can register a pm_qos requirement.  To provide for\n  automatic cleanup for process the interface requires the process to register\n  its parameter requirements in the following way:\n\n  To register the default pm_qos target for the specific parameter, the\n  process must open one of /dev/[cpu_dma_latency, network_latency,\n  network_throughput]\n\n  As long as the device node is held open that process has a registered\n  requirement on the parameter.  The name of the requirement is\n  \"process_\u003cPID\u003e\" derived from the current-\u003epid from within the open system\n  call.\n\n  To change the requested target value the process needs to write a s32\n  value to the open device node.  This translates to a\n  pm_qos_update_requirement call.\n\n  To remove the user mode request for a target value simply close the device\n  node.\n\n[akpm@linux-foundation.org: fix warnings]\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: fix build again]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: mark gross \u003cmgross@linux.intel.com\u003e\nCc: \"John W. Linville\" \u003clinville@tuxdriver.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Jaroslav Kysela \u003cperex@suse.cz\u003e\nCc: Takashi Iwai \u003ctiwai@suse.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Adam Belay \u003cabelay@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f757397097d0713c949af76dccabb65a2785782e",
      "tree": "b2f3ee95ae2e3c501cb0e1c8b1fd236969d97044",
      "parents": [
        "25de5718356e264820625600a9edca1df5ff26f8"
      ],
      "author": {
        "name": "Kevin Hilman",
        "email": "khilman@mvista.com",
        "time": "Thu Jan 31 17:28:18 2008 -0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jan 31 22:50:48 2008 -0500"
      },
      "message": "cpuidle: build fix for non-x86\n\nConvert cpu_idle_wait() to cpuidle_kick_cpus() macro which is\nSMP-only, and gives error on non supported CPU.\n\nSigned-off-by: Kevin Hilman \u003ckhilman@mvista.com\u003e\nAcked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "83788c0caed3a425f64fa88fde7c78746b9cdd76",
      "tree": "b153a7d92c3f9f40dba1706349ef7c583938516a",
      "parents": [
        "4d8b4e1e02b4bb200e81b2efc915da6ce59d5d72"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Mon Oct 29 13:49:13 2007 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Mon Oct 29 17:27:50 2007 -0400"
      },
      "message": "cpuidle: remove unused exports\n\nThis patch removes the following unused exports:\n- cpuidle_devices\n- cpuidle_register_governor\n- cpuidle_unregister_governor\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4f86d3a8e297205780cca027e974fd5f81064780",
      "tree": "3c89624dea48a9de756256c935660ff7b24d5376",
      "parents": [
        "bbf25010f1a6b761914430f5fca081ec8c7accd1"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Oct 03 18:58:00 2007 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Oct 10 00:12:41 2007 -0400"
      },
      "message": "cpuidle: consolidate 2.6.22 cpuidle branch into one patch\n\ncommit e5a16b1f9eec0af7cfa0830304b41c1c0833cf9f\nAuthor: Len Brown \u003clen.brown@intel.com\u003e\nDate:   Tue Oct 2 23:44:44 2007 -0400\n\n    cpuidle: shrink diff\n\n    processor_idle.c |  440 +++++++++++++++++++++++++++++++++++++++++--\n    1 file changed, 429 insertions(+), 11 deletions(-)\n\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit dfbb9d5aedfb18848a3e0d6f6e3e4969febb209c\nAuthor: Len Brown \u003clen.brown@intel.com\u003e\nDate:   Wed Sep 26 02:17:55 2007 -0400\n\n    cpuidle: reduce diff size\n\n    Reduces the cpuidle processor_idle.c diff vs 2.6.22 from this\n     processor_idle.c | 2006 ++++++++++++++++++++++++++-----------------\n     1 file changed, 1219 insertions(+), 787 deletions(-)\n\n    to this:\n     processor_idle.c |  502 +++++++++++++++++++++++++++++++++++++++----\n     1 file changed, 458 insertions(+), 44 deletions(-)\n\n    ...for the purpose of making the cpuilde patch less invasive\n    and easier to review.\n\n    no functional changes.  build tested only.\n\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 889172fc915f5a7fe20f35b133cbd205ce69bf6c\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Thu Sep 13 13:40:05 2007 -0700\n\n    cpuidle: Retain old ACPI policy for !CONFIG_CPU_IDLE\n\n    Retain the old policy in processor_idle, so that when CPU_IDLE is not\n    configured, old C-state policy will still be used. This provides a\n    clean gradual migration path from old ACPI policy to new cpuidle\n    based policy.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 9544a8181edc7ecc33b3bfd69271571f98ed08bc\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Thu Sep 13 13:39:17 2007 -0700\n\n    cpuidle: Configure governors by default\n\n    Quoting Len \"Do not give an option to users to shoot themselves in the foot\".\n\n    Remove the configurability of ladder and menu governors as they are\n    needed for default policy of cpuidle. That way users will not be able to\n    have cpuidle without any policy loosing all C-state power savings.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 8975059a2c1e56cfe83d1bcf031bcf4cb39be743\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Tue Aug 21 18:27:07 2007 -0400\n\n    CPUIDLE: load ACPI properly when CPUIDLE is disabled\n\n    Change the registration return codes for when CPUIDLE\n    support is not compiled into the kernel.  As a result, the ACPI\n    processor driver will load properly even if CPUIDLE is unavailable.\n    However, it may be possible to cleanup the ACPI processor driver further\n    and eliminate some dead code paths.\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Acked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit e0322e2b58dd1b12ec669bf84693efe0dc2414a8\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Tue Aug 21 18:26:06 2007 -0400\n\n    CPUIDLE: remove cpuidle_get_bm_activity()\n\n    Remove cpuidle_get_bm_activity() and updates governors\n    accordingly.\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Acked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 18a6e770d5c82ba26653e53d240caa617e09e9ab\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Tue Aug 21 18:25:58 2007 -0400\n\n    CPUIDLE: max_cstate fix\n\n    Currently max_cstate is limited to 0, resulting in no idle processor\n    power management on ACPI platforms.  This patch restores the value to\n    the array size.\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Acked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 1fdc0887286179b40ce24bcdbde663172e205ef0\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Tue Aug 21 18:25:40 2007 -0400\n\n    CPUIDLE: handle BM detection inside the ACPI Processor driver\n\n    Update the ACPI processor driver to detect BM activity and\n    limit state entry depth internally, rather than exposing such\n    requirements to CPUIDLE.  As a result, CPUIDLE can drop this\n    ACPI-specific interface and become more platform independent.  BM\n    activity is now handled much more aggressively than it was in the\n    original implementation, so some testing coverage may be needed to\n    verify that this doesn\u0027t introduce any DMA buffer under-run issues.\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Acked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 0ef38840db666f48e3cdd2b769da676c57228dd9\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Tue Aug 21 18:25:14 2007 -0400\n\n    CPUIDLE: menu governor updates\n\n    Tweak the menu governor to more effectively handle non-timer\n    break events.  Non-timer break events are detected by comparing the\n    actual sleep time to the expected sleep time.  In future revisions, it\n    may be more reliable to use the timer data structures directly.\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Acked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit bb4d74fca63fa96cf3ace644b15ae0f12b7df5a1\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Tue Aug 21 18:24:40 2007 -0400\n\n    CPUIDLE: fix \u0027current_governor\u0027 sysfs entry\n\n    Allow the \"current_governor\" sysfs entry to properly handle\n    input terminated with \u0027\\n\u0027.\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Acked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit df3c71559bb69b125f1a48971bf0d17f78bbdf47\nAuthor: Len Brown \u003clen.brown@intel.com\u003e\nDate:   Sun Aug 12 02:00:45 2007 -0400\n\n    cpuidle: fix IA64 build (again)\n\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit a02064579e3f9530fd31baae16b1fc46b5a7bca8\nAuthor: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Sun Aug 12 01:39:27 2007 -0400\n\n    cpuidle: Remove support for runtime changing of max_cstate\n\n    Remove support for runtime changeability of max_cstate. Drivers can use\n    use latency APIs.\n\n    max_cstate can still be used as a boot time option and dmi override.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 0912a44b13adf22f5e3f607d263aed23b4910d7e\nAuthor: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Sun Aug 12 01:39:16 2007 -0400\n\n    cpuidle: Remove ACPI cstate_limit calls from ipw2100\n\n    ipw2100 already has code to use accetable_latency interfaces to limit the\n    C-state. Remove the calls to acpi_set_cstate_limit and acpi_get_cstate_limit\n    as they are redundant.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit c649a76e76be6bff1fd770d0a775798813a3f6e0\nAuthor: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Sun Aug 12 01:35:39 2007 -0400\n\n    cpuidle: compile fix for pause and resume functions\n\n    Fix the compilation failure when cpuidle is not compiled in.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Acked-by: Adam Belay \u003cadam.belay@novell.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 2305a5920fb8ee6ccec1c62ade05aa8351091d71\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Thu Jul 19 00:49:00 2007 -0400\n\n    cpuidle: re-write\n\n    Some portions have been rewritten to make the code cleaner and lighter\n    weight.  The following is a list of changes:\n\n    1.) the state name is now included in the sysfs interface\n    2.) detection, hotplug, and available state modifications are handled by\n    CPUIDLE drivers directly\n    3.) the CPUIDLE idle handler is only ever installed when at least one\n    cpuidle_device is enabled and ready\n    4.) the menu governor BM code no longer overflows\n    5.) the sysfs attributes are now printed as unsigned integers, avoiding\n    negative values\n    6.) a variety of other small cleanups\n\n    Also, Idle drivers are no longer swappable during runtime through the\n    CPUIDLE sysfs inteface.  On i386 and x86_64 most idle handlers (e.g.\n    poll, mwait, halt, etc.) don\u0027t benefit from an infrastructure that\n    supports multiple states, so I think using a more general case idle\n    handler selection mechanism would be cleaner.\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Acked-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Acked-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit df25b6b56955714e6e24b574d88d1fd11f0c3ee5\nAuthor: Len Brown \u003clen.brown@intel.com\u003e\nDate:   Tue Jul 24 17:08:21 2007 -0400\n\n    cpuidle: fix IA64 buid\n\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit fd6ada4c14488755ff7068860078c437431fbccd\nAuthor: Adrian Bunk \u003cbunk@stusta.de\u003e\nDate:   Mon Jul 9 11:33:13 2007 -0700\n\n    cpuidle: static\n\n    make cpuidle_replace_governor() static\n\n    Signed-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n    Cc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit c1d4a2cebcadf2429c0c72e1d29aa2a9684c32e0\nAuthor: Adrian Bunk \u003cbunk@stusta.de\u003e\nDate:   Tue Jul 3 00:54:40 2007 -0400\n\n    cpuidle: static\n\n    This patch makes the needlessly global struct menu_governor static.\n\n    Signed-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit dbf8780c6e8d572c2c273da97ed1cca7608fd999\nAuthor: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nDate:   Tue Jul 3 00:49:14 2007 -0400\n\n    export symbol tick_nohz_get_sleep_length\n\n    ERROR: \"tick_nohz_get_sleep_length\" [drivers/cpuidle/governors/menu.ko] undefined!\n    ERROR: \"tick_nohz_get_idle_jiffies\" [drivers/cpuidle/governors/menu.ko] undefined!\n\n    And please be sure to get your changes to core kernel suitably reviewed.\n\n    Cc: Adam Belay \u003cabelay@novell.com\u003e\n    Cc: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Cc: Ingo Molnar \u003cmingo@elte.hu\u003e\n    Cc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n    Cc: john stultz \u003cjohnstul@us.ibm.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 29f0e248e7017be15f99febf9143a2cef00b2961\nAuthor: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nDate:   Tue Jul 3 00:43:04 2007 -0400\n\n    tick.h needs hrtimer.h\n\n    It uses hrtimers.\n\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit e40cede7d63a029e92712a3fe02faee60cc38fb4\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Tue Jul 3 00:40:34 2007 -0400\n\n    cpuidle: first round of documentation updates\n\n    Documentation changes based on Pavel\u0027s feedback.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 83b42be2efece386976507555c29e7773a0dfcd1\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Tue Jul 3 00:39:25 2007 -0400\n\n    cpuidle: add rating to the governors and pick the one with highest rating by default\n\n    Introduce a governor rating scheme to pick the right governor by default.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit d2a74b8c5e8f22def4709330d4bfc4a29209b71c\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Tue Jul 3 00:38:08 2007 -0400\n\n    cpuidle: make cpuidle sysfs driver governor switch off by default\n\n    Make default cpuidle sysfs to show current_governor and current_driver in\n    read-only mode.  More elaborate available_governors and available_drivers with\n    writeable current_governor and current_driver interface only appear with\n    \"cpuidle_sysfs_switch\" boot parameter.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 1f60a0e80bf83cf6b55c8845bbe5596ed8f6307b\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Tue Jul 3 00:37:00 2007 -0400\n\n    cpuidle: menu governor: change the early break condition\n\n    Change the C-state early break out algorithm in menu governor.\n\n    We only look at early breakouts that result in wakeups shorter than idle\n    state\u0027s target_residency.  If such a breakout is frequent enough, eliminate\n    the particular idle state upto a timeout period.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 45a42095cf64b003b4a69be3ce7f434f97d7af51\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Tue Jul 3 00:35:38 2007 -0400\n\n    cpuidle: fix uninitialized variable in sysfs routine\n\n    Fix the uninitialized usage of ret.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 80dca7cdba3e6ee13eae277660873ab9584eb3be\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Tue Jul 3 00:34:16 2007 -0400\n\n    cpuidle: reenable /proc/acpi//power interface for the time being\n\n    Keep /proc/acpi/processor/CPU*/power around for a while as powertop depends\n    on it. It will be marked deprecated and removed in future. powertop can use\n    cpuidle interfaces instead.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 589c37c2646c5e3813a51255a5ee1159cb4c33fc\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Tue Jul 3 00:32:37 2007 -0400\n\n    cpuidle: menu governor and hrtimer compile fix\n\n    Compile fix for menu governor.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 0ba80bd9ab3ed304cb4f19b722e4cc6740588b5e\nAuthor: Len Brown \u003clen.brown@intel.com\u003e\nDate:   Thu May 31 22:51:43 2007 -0400\n\n    cpuidle: build fix - cpuidle vs ipw2100 module\n\n    ERROR: \"acpi_set_cstate_limit\" [drivers/net/wireless/ipw2100.ko] undefined!\n\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit d7d8fa7f96a7f7682be7c6cc0cc53fa7a18c3b58\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Sat Mar 24 03:47:07 2007 -0400\n\n    cpuidle: add the \u0027menu\u0027 governor\n\n    Here is my first take at implementing an idle PM governor that takes\n    full advantage of NO_HZ.  I call it the \u0027menu\u0027 governor because it\n    considers the full list of idle states before each entry.\n\n    I\u0027ve kept the implementation fairly simple.  It attempts to guess the\n    next residency time and then chooses a state that would meet at least\n    the break-even point between power savings and entry cost.  To this end,\n    it selects the deepest idle state that satisfies the following\n    constraints:\n         1. If the idle time elapsed since bus master activity was detected\n            is below a threshold (currently 20 ms), then limit the selection\n            to C2-type or above.\n         2. Do not choose a state with a break-even residency that exceeds\n            the expected time remaining until the next timer interrupt.\n         3. Do not choose a state with a break-even residency that exceeds\n            the elapsed time between the last pair of break events,\n            excluding timer interrupts.\n\n    This governor has an advantage over \"ladder\" governor because it\n    proactively checks how much time remains until the next timer interrupt\n    using the tick infrastructure.  Also, it handles device interrupt\n    activity more intelligently by not including timer interrupts in break\n    event calculations.  Finally, it doesn\u0027t make policy decisions using the\n    number of state entries, which can have variable residency times (NO_HZ\n    makes these potentially very large), and instead only considers sleep\n    time deltas.\n\n    The menu governor can be selected during runtime using the cpuidle sysfs\n    interface like so:\n    \"echo \"menu\" \u003e /sys/devices/system/cpu/cpuidle/current_governor\"\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit a4bec7e65aa3b7488b879d971651cc99a6c410fe\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Sat Mar 24 03:47:03 2007 -0400\n\n    cpuidle: export time until next timer interrupt using NO_HZ\n\n    Expose information about the time remaining until the next\n    timer interrupt expires by utilizing the dynticks infrastructure.\n    Also modify the main idle loop to allow dynticks to handle\n    non-interrupt break events (e.g. DMA).  Finally, expose sleep ticks\n    information to external code.  Thomas Gleixner is responsible for much\n    of the code in this patch.  However, I\u0027ve made some additional changes,\n    so I\u0027m probably responsible if there are any bugs or oversights :)\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 2929d8996fbc77f41a5ff86bb67cdde3ca7d2d72\nAuthor: Adam Belay \u003cabelay@novell.com\u003e\nDate:   Sat Mar 24 03:46:58 2007 -0400\n\n    cpuidle: governor API changes\n\n    This patch prepares cpuidle for the menu governor.  It adds an optional\n    stage after idle state entry to give the governor an opportunity to\n    check why the state was exited.  Also it makes sure the idle loop\n    returns after each state entry, allowing the appropriate dynticks code\n    to run.\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 3a7fd42f9825c3b03e364ca59baa751bb350775f\nAuthor: Venki Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Thu Apr 26 00:03:59 2007 -0700\n\n    cpuidle: hang fix\n\n    Prevent hang on x86-64, when ACPI processor driver is added as a module on\n    a system that does not support C-states.\n\n    x86-64 expects all idle handlers to enable interrupts before returning from\n    idle handler.  This is due to enter_idle(), exit_idle() races.  Make\n    cpuidle_idle_call() confirm to this when there is no pm_idle_old.\n\n    Also, cpuidle look at the return values of attch_driver() and set\n    current_driver to NULL if attach fails on all CPUs.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 4893339a142afbd5b7c01ffadfd53d14746e858e\nAuthor: Shaohua Li \u003cshaohua.li@intel.com\u003e\nDate:   Thu Apr 26 10:40:09 2007 +0800\n\n    cpuidle: add support for max_cstate limit\n\n    With CPUIDLE framework, the max_cstate (to limit max cpu c-state)\n    parameter is ingored. Some systems require it to ignore C2/C3\n    and some drivers like ipw require it too.\n\n    Signed-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 43bbbbe1cb998cbd2df656f55bb3bfe30f30e7d1\nAuthor: Shaohua Li \u003cshaohua.li@intel.com\u003e\nDate:   Thu Apr 26 10:40:13 2007 +0800\n\n    cpuidle: add cpuidle_fore_redetect_devices API\n\n    add cpuidle_force_redetect_devices API,\n    which forces all CPU redetect idle states.\n    Next patch will use it.\n\n    Signed-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit d1edadd608f24836def5ec483d2edccfb37b1d19\nAuthor: Shaohua Li \u003cshaohua.li@intel.com\u003e\nDate:   Thu Apr 26 10:40:01 2007 +0800\n\n    cpuidle: fix sysfs related issue\n\n    Fix the cpuidle sysfs issue.\n    a. make kobject dynamicaly allocated\n    b. fixed sysfs init issue to avoid suspend/resume issue\n\n    Signed-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 7169a5cc0d67b263978859672e86c13c23a5570d\nAuthor: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nDate:   Wed Mar 28 22:52:53 2007 -0400\n\n    cpuidle: 1-bit field must be unsigned\n\n    A 1-bit bitfield has no room for a sign bit.\n    drivers/cpuidle/governors/ladder.c:54:16: error: dubious bitfield without explicit `signed\u0027 or `unsigned\u0027\n\n    Signed-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n    Cc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 4658620158dc2fbd9e4bcb213c5b6fb5d05ba7d4\nAuthor: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Wed Mar 28 22:52:41 2007 -0400\n\n    cpuidle: fix boot hang\n\n    Patch for cpuidle boot hang reported by Larry Finger here.\n    http://www.ussg.iu.edu/hypermail/linux/kernel/0703.2/2025.html\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Cc: Larry Finger \u003clarry.finger@lwfinger.net\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit c17e168aa6e5fe3851baaae8df2fbc1cf11443a9\nAuthor: Len Brown \u003clen.brown@intel.com\u003e\nDate:   Wed Mar 7 04:37:53 2007 -0500\n\n    cpuidle: ladder does not depend on ACPI\n\n    build fix for CONFIG_ACPI\u003dn\n\n    In file included from drivers/cpuidle/governors/ladder.c:21:\n    include/acpi/processor.h:88: error: expected specifier-qualifier-list before âacpi_integerâ\n    include/acpi/processor.h:106: error: expected specifier-qualifier-list before âacpi_integerâ\n    include/acpi/processor.h:168: error: expected specifier-qualifier-list before âacpi_handleâ\n\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 8c91d958246bde68db0c3f0c57b535962ce861cb\nAuthor: Adrian Bunk \u003cbunk@stusta.de\u003e\nDate:   Tue Mar 6 02:29:40 2007 -0800\n\n    cpuidle: make code static\n\n    This patch makes the following needlessly global code static:\n    - driver.c: __cpuidle_find_driver()\n    - governor.c: __cpuidle_find_governor()\n    - ladder.c: struct ladder_governor\n\n    Signed-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n    Cc: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Cc: Adam Belay \u003cabelay@novell.com\u003e\n    Cc: Shaohua Li \u003cshaohua.li@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 0c39dc3187094c72c33ab65a64d2017b21f372d2\nAuthor: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Wed Mar 7 02:38:22 2007 -0500\n\n    cpu_idle: fix build break\n\n    This patch fixes a build breakage with !CONFIG_HOTPLUG_CPU and\n    CONFIG_CPU_IDLE.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 8112e3b115659b07df340ef170515799c0105f82\nAuthor: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Tue Mar 6 02:29:39 2007 -0800\n\n    cpuidle: build fix for !CPU_IDLE\n\n    Fix the compile issues when CPU_IDLE is not configured.\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Cc: Adam Belay \u003cabelay@novell.com\u003e\n    Cc: Shaohua Li \u003cshaohua.li@intel.com\u003e\n    Signed-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 1eb4431e9599cd25e0d9872f3c2c8986821839dd\nAuthor: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Thu Feb 22 13:54:57 2007 -0800\n\n    cpuidle take2: Basic documentation for cpuidle\n\n    Documentation for cpuidle infrastructure\n\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Signed-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit ef5f15a8b79123a047285ec2e3899108661df779\nAuthor: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Thu Feb 22 13:54:03 2007 -0800\n\n    cpuidle take2: Hookup ACPI C-states driver with cpuidle\n\n    Hookup ACPI C-states onto generic cpuidle infrastructure.\n\n    drivers/acpi/procesor_idle.c is now a ACPI C-states driver that registers as\n    a driver in cpuidle infrastructure and the policy part is removed from\n    drivers/acpi/processor_idle.c. We use governor in cpuidle instead.\n\n    Signed-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\ncommit 987196fa82d4db52c407e8c9d5dec884ba602183\nAuthor: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nDate:   Thu Feb 22 13:52:57 2007 -0800\n\n    cpuidle take2: Core cpuidle infrastructure\n\n    Announcing \u0027cpuidle\u0027, a new CPU power management infrastructure to manage\n    idle CPUs in a clean and efficient manner.\n    cpuidle separates out the drivers that can provide support for multiple types\n    of idle states and policy governors that decide on what idle state to use\n    at run time.\n    A cpuidle driver can support multiple idle states based on parameters like\n    varying power consumption, wakeup latency, etc (ACPI C-states for example).\n    A cpuidle governor can be usage model specific (laptop, server,\n    laptop on battery etc).\n    Main advantage of the infrastructure being, it allows independent development\n    of drivers and governors and allows for better CPU power management.\n\n    A huge thanks to Adam Belay and Shaohua Li who were part of this mini-project\n    since its beginning and are greatly responsible for this patchset.\n\n    This patch:\n\n    Core cpuidle infrastructure.\n    Introduces a new abstraction layer for cpuidle:\n    * which manages drivers that can support multiple idles states. Drivers\n      can be generic or particular to specific hardware/platform\n    * allows pluging in multiple policy governors that can take idle state policy\n      decision\n    * The core also has a set of sysfs interfaces with which administrato can know\n      about supported drivers and governors and switch them at run time.\n\n    Signed-off-by: Adam Belay \u003cabelay@novell.com\u003e\n    Signed-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\n    Signed-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\n    Signed-off-by: Len Brown \u003clen.brown@intel.com\u003e\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    }
  ]
}
