Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 30 Mar 2012 23:45:38 +0000 (16:45 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 30 Mar 2012 23:45:39 +0000 (16:45 -0700)
Pull ACPI & Power Management changes from Len Brown:
 - ACPI 5.0 after-ripples, ACPICA/Linux divergence cleanup
 - cpuidle evolving, more ARM use
 - thermal sub-system evolving, ditto
 - assorted other PM bits

Fix up conflicts in various cpuidle implementations due to ARM cpuidle
cleanups (ARM at91 self-refresh and cpu idle code rewritten into
"standby" in asm conflicting with the consolidation of cpuidle time
keeping), trivial SH include file context conflict and RCU tracing fixes
in generic code.

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (77 commits)
  ACPI throttling: fix endian bug in acpi_read_throttling_status()
  Disable MCP limit exceeded messages from Intel IPS driver
  ACPI video: Don't start video device until its associated input device has been allocated
  ACPI video: Harden video bus adding.
  ACPI: Add support for exposing BGRT data
  ACPI: export acpi_kobj
  ACPI: Fix logic for removing mappings in 'acpi_unmap'
  CPER failed to handle generic error records with multiple sections
  ACPI: Clean redundant codes in scan.c
  ACPI: Fix unprotected smp_processor_id() in acpi_processor_cst_has_changed()
  ACPI: consistently use should_use_kmap()
  PNPACPI: Fix device ref leaking in acpi_pnp_match
  ACPI: Fix use-after-free in acpi_map_lsapic
  ACPI: processor_driver: add missing kfree
  ACPI, APEI: Fix incorrect APEI register bit width check and usage
  Update documentation for parameter *notrigger* in einj.txt
  ACPI, APEI, EINJ, new parameter to control trigger action
  ACPI, APEI, EINJ, limit the range of einj_param
  ACPI, APEI, Fix ERST header length check
  cpuidle: power_usage should be declared signed integer
  ...

1  2 
arch/arm/kernel/Makefile
arch/arm/mach-at91/cpuidle.c
arch/arm/mach-shmobile/cpuidle.c
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/smpboot.c
drivers/acpi/ec.c
drivers/acpi/processor_driver.c
drivers/cpuidle/cpuidle.c
include/linux/acpi.h

index 8269d892874232f59f6e49537dc6df49e8c0927b,940c27fde498f9277a7ac2460d651876bd1fdca0..7b787d642af4fe2ac3c9f81be97c8913ea8b2e95
@@@ -23,8 -21,9 +23,8 @@@ obj-$(CONFIG_DEPRECATED_PARAM_STRUCT) +
  
  obj-$(CONFIG_LEDS)            += leds.o
  obj-$(CONFIG_OC_ETM)          += etm.o
+ obj-$(CONFIG_CPU_IDLE)                += cpuidle.o
  obj-$(CONFIG_ISA_DMA_API)     += dma.o
 -obj-$(CONFIG_ARCH_ACORN)      += ecard.o 
  obj-$(CONFIG_FIQ)             += fiq.o fiqasm.o
  obj-$(CONFIG_MODULES)         += armksyms.o module.o
  obj-$(CONFIG_ARTHUR)          += arthur.o
index 555d956b3a574b3a4d96be46c199c087d991080d,d40b3f317f7f7058ff29b657033b3cc0d747dce9..ece1f9aefb47a0ff46a0fe0f0bfeedd4d2bac27f
@@@ -37,23 -33,15 +33,8 @@@ static int at91_enter_idle(struct cpuid
                        struct cpuidle_driver *drv,
                               int index)
  {
-       struct timeval before, after;
-       int idle_time;
 -      u32 saved_lpr;
--
-       local_irq_disable();
-       do_gettimeofday(&before);
-       if (index == 0)
-               /* Wait for interrupt state */
-               cpu_do_idle();
-       else if (index == 1)
-               at91_standby();
 -      __asm__("b 1f; .align 5; 1:\n"
 -      "       mcr p15, 0, r0, c7, c10, 4");   /* drain write buffer */
 -
 -      saved_lpr = sdram_selfrefresh_enable();
 -      cpu_do_idle();
 -      sdram_selfrefresh_disable(saved_lpr);
++      at91_standby();
  
-       do_gettimeofday(&after);
-       local_irq_enable();
-       idle_time = (after.tv_sec - before.tv_sec) * USEC_PER_SEC +
-                       (after.tv_usec - before.tv_usec);
-       dev->last_residency = idle_time;
        return index;
  }
  
index 21b09b6455e4b7788057df17d624f3778a7cad21,ca23b202b02d9df22e7bf241b11aab11f8d413ec..7e6559105d40f27be8ffbdbc394cc377cec65ade
@@@ -13,6 -13,8 +13,7 @@@
  #include <linux/suspend.h>
  #include <linux/module.h>
  #include <linux/err.h>
 -#include <asm/system.h>
+ #include <asm/cpuidle.h>
  #include <asm/io.h>
  
  static void shmobile_enter_wfi(void)
Simple merge
Simple merge
Simple merge
Simple merge
index 6588f43017bd2803d29e04cd28961d858430828d,3e146b2ada4a1c4682ecaa5aca1394f15c2c3238..87411cebc57725223a994eb6467ad0aa209d3515
@@@ -92,15 -137,13 +137,13 @@@ int cpuidle_idle_call(void
                return 0;
        }
  
-       target_state = &drv->states[next_state];
 -      trace_power_start(POWER_CSTATE, next_state, dev->cpu);
 -      trace_cpu_idle(next_state, dev->cpu);
 +      trace_power_start_rcuidle(POWER_CSTATE, next_state, dev->cpu);
 +      trace_cpu_idle_rcuidle(next_state, dev->cpu);
  
-       entered_state = target_state->enter(dev, drv, next_state);
+       entered_state = cpuidle_enter_ops(dev, drv, next_state);
  
 -      trace_power_end(dev->cpu);
 -      trace_cpu_idle(PWR_EVENT_EXIT, dev->cpu);
 +      trace_power_end_rcuidle(dev->cpu);
 +      trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, dev->cpu);
  
        if (entered_state >= 0) {
                /* Update cpuidle counters */
Simple merge