Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 28 May 2010 23:14:17 +0000 (16:14 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 28 May 2010 23:14:17 +0000 (16:14 -0700)
* 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6:
  intel_idle: native hardware cpuidle driver for latest Intel processors
  ACPI: acpi_idle: touch TS_POLLING only in the non-MWAIT case
  acpi_pad: uses MONITOR/MWAIT, so it doesn't need to clear TS_POLLING
  sched: clarify commment for TS_POLLING
  ACPI: allow a native cpuidle driver to displace ACPI
  cpuidle: make cpuidle_curr_driver static
  cpuidle: add cpuidle_unregister_driver() error check
  cpuidle: fail to register if !CONFIG_CPU_IDLE

1  2 
MAINTAINERS
arch/x86/include/asm/thread_info.h
drivers/acpi/acpi_pad.c
drivers/acpi/processor_idle.c

diff --cc MAINTAINERS
Simple merge
@@@ -239,9 -241,10 +239,9 @@@ static inline struct thread_info *curre
  #define TS_USEDFPU            0x0001  /* FPU was used by this task
                                           this quantum (SMP) */
  #define TS_COMPAT             0x0002  /* 32bit syscall active (64BIT)*/
- #define TS_POLLING            0x0004  /* true if in idle loop
-                                          and not sleeping */
+ #define TS_POLLING            0x0004  /* idle task polling need_resched,
+                                          skip sending interrupt */
  #define TS_RESTORE_SIGMASK    0x0008  /* restore signal mask in do_signal() */
 -#define TS_XSAVE              0x0010  /* Use xsave/xrstor */
  
  #define tsk_is_polling(t) (task_thread_info(t)->status & TS_POLLING)
  
Simple merge
@@@ -908,10 -916,11 +909,11 @@@ static int acpi_idle_enter_simple(struc
        sleep_ticks = us_to_pm_timer_ticks(idle_time);
  
        /* Tell the scheduler how much we idled: */
 -      sched_clock_idle_wakeup_event(sleep_ticks*PM_TIMER_TICK_NS);
 +      sched_clock_idle_wakeup_event(idle_time_ns);
  
        local_irq_enable();
-       current_thread_info()->status |= TS_POLLING;
+       if (cx->entry_method != ACPI_CSTATE_FFH)
+               current_thread_info()->status |= TS_POLLING;
  
        cx->usage++;
  
@@@ -1025,10 -1032,11 +1028,11 @@@ static int acpi_idle_enter_bm(struct cp
  
        sleep_ticks = us_to_pm_timer_ticks(idle_time);
        /* Tell the scheduler how much we idled: */
 -      sched_clock_idle_wakeup_event(sleep_ticks*PM_TIMER_TICK_NS);
 +      sched_clock_idle_wakeup_event(idle_time_ns);
  
        local_irq_enable();
-       current_thread_info()->status |= TS_POLLING;
+       if (cx->entry_method != ACPI_CSTATE_FFH)
+               current_thread_info()->status |= TS_POLLING;
  
        cx->usage++;