Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux
Linus Torvalds [Fri, 30 Mar 2012 23:45:38 +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

@@@ -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
@@@ -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;
-       local_irq_disable();
-       do_gettimeofday(&before);
-       if (index == 0)
-               /* Wait for interrupt state */
-               cpu_do_idle();
-       else if (index == 1)
-               at91_standby();
 -      u32 saved_lpr;
 -
 -      __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;
  }
  
@@@ -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
@@@ -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