tree 6c8287371612ddc9070991cd5c6b6c011c7d5dc1
parent 127aa93066261c2b8f03cb38e7165de8cd71736e
parent f67ffa95836b31be5d8fe336aee3bfc6412c5696
author Linus Torvalds <torvalds@linux-foundation.org> 1357604238 -0800
committer Linus Torvalds <torvalds@linux-foundation.org> 1357604238 -0800
mergetag object f67ffa95836b31be5d8fe336aee3bfc6412c5696
 type commit
 tag pm+acpi-for-3.8-rc3
 tagger Rafael J. Wysocki <rjw@sisk.pl> 1357602016 +0100
 
 ACPI and power management fixes for 3.8-rc3
 
 * Removal of some ACPICA code that the kernel will never use from Lv Zheng.
 
 * APEI fix from Adrian Huang.
 
 * Removal of unnecessary ACPI memory hotplug driver code from Liu Jinsong.
 
 * Minor ACPI power management fixes.
 
 * ACPI debug code fix from Joe Perches.
 
 * ACPI fix to make system bus device nodes get the right names.
 
 * PNP resources handling fixes from Witold Szczeponik.
 
 * cpuidle fix for a recent regression stalling boot on systems with great
   numbers of CPUs from Daniel Lezcano.
 
 * cpuidle fixes from Sivaram Nair.
 
 * intel_idle debug message fix from Youquan Song.
 
 * cpufreq build regression fix from Larry Finger.
 
 * cpufreq fix for an obscure initialization race related to statistics from
   Konstantin Khlebnikov.
 
 * cpufreq change disabling the Longhaul driver by default from Rafał Bilski.
 
 * PM core fix preventing device suspend errors from happening during system
   suspend due to obscure race conditions.
 
 * PM QoS local variable name cleanup.
 
 --
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.19 (GNU/Linux)
 
 iQIcBAABAgAGBQJQ61zgAAoJEKhOf7ml8uNsaYsQAK6EXORIIIvHtudjkcxcOxPp
 pQaHQ1/YHjxoO3N/dZpjgbozwSnkrf5iJs6BaN+LpbqLS3eRJDEJm3Hx8YAkt+bx
 ZcMUlPqr90W5AXvjlbJjyHIrupOX7TChgyyC0a8uTvDSylJMimWtEGn/VeYVRaCs
 GLfyVmDwMlMmC85vK+x27IoUxNuGzPiGx2s//thHv4HRL7d+5xn2Da0AHPSeZTZe
 ZuNCyWKwVzpJ8mjclAOTtwMUHGYys0x+T+7wa5IZq4yH0gEQZoKfLGW3uOg+h4R5
 wp8XhipORQh5A1AMGpC3bDhsplGggL1ImN2k50h4lKIAtpY8t1m++63i7hHiHX1I
 mfvNyinMJsnud80AZN5MgMAqykYDvgwO562LmaSBc+zNq2B1cfHuex9iA7CC+WAY
 5IKxN3EGPyQomkBRSYGnAEKw5jvktPMRT6JuLjLiwaz7NcWN72lWv66Xq34RLEld
 zZavCmo+fS7PWk5ofNh4RDrH+Zi02XixsgycmeKFxG+U1i/aM6tO3t9fcetUzIlJ
 JqCHAjyA8AyCApbm4GgVQBkw1MP8SsXeJ3FnYynx8n23EmHvh7gIUiG/Hk1vOEpF
 0ExwJMOOTXcv5BcfoCoF0VBJNBGq1wzipwN43Nj55LLUfJ4Ovp/T+ySXOc6seb3C
 nqx2e4VzVs0Gu2Cdt+wy
 =k35e
 -----END PGP SIGNATURE-----

Merge tag 'pm+acpi-for-3.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

Pull ACPI and power management fixes from Rafael Wysocki:

 - Removal of some ACPICA code that the kernel will never use from Lv
   Zheng.

 - APEI fix from Adrian Huang.

 - Removal of unnecessary ACPI memory hotplug driver code from Liu
   Jinsong.

 - Minor ACPI power management fixes.

 - ACPI debug code fix from Joe Perches.

 - ACPI fix to make system bus device nodes get the right names.

 - PNP resources handling fixes from Witold Szczeponik.

 - cpuidle fix for a recent regression stalling boot on systems with
   great numbers of CPUs from Daniel Lezcano.

 - cpuidle fixes from Sivaram Nair.

 - intel_idle debug message fix from Youquan Song.

 - cpufreq build regression fix from Larry Finger.

 - cpufreq fix for an obscure initialization race related to statistics
   from Konstantin Khlebnikov.

 - cpufreq change disabling the Longhaul driver by default from Rafał
   Bilski.

 - PM core fix preventing device suspend errors from happening during
   system suspend due to obscure race conditions.

 - PM QoS local variable name cleanup.

* tag 'pm+acpi-for-3.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  PM: Move disabling/enabling runtime PM to late suspend/early resume
  PM / QoS: Rename local variable in dev_pm_qos_add_ancestor_request()
  ACPI / scan: Do not use dummy HID for system bus ACPI nodes
  cpufreq / governor: Fix problem with cpufreq_ondemand or cpufreq_conservative
  cpufreq / Longhaul: Disable driver by default
  cpufreq / stats: fix race between stats allocation and first usage
  cpuidle: fix lock contention in the idle path
  intel_idle: pr_debug information need separated
  cpuidle / coupled: fix ready counter decrement
  cpuidle: Fix finding state with min power_usage
  PNP: Handle IORESOURCE_BITS in resource allocation
  PNP: Simplify setting of resources
  ACPI / power: Remove useless message from device registering routine
  ACPI / glue: Update DBG macro to include KERN_DEBUG
  ACPI / PM: Do not apply ACPI_SUCCESS() to acpi_bus_get_device() result
  ACPI / memhotplug: remove redundant logic of acpi memory hotadd
  ACPI / APEI: Fix the returned value in erst_dbg_read
  ACPICA: Remove useless mini-C library.
