Merge branch 'hpet' into release
authorLen Brown <len.brown@intel.com>
Fri, 24 Apr 2009 14:41:31 +0000 (10:41 -0400)
committerLen Brown <len.brown@intel.com>
Fri, 24 Apr 2009 14:41:31 +0000 (10:41 -0400)
1  2 
drivers/acpi/processor_idle.c

index eed3b458ebac7a66c65f799b4f2f8466754e1946,ea23c64bd766022277fab15add54c6e9b7901b77..07c7d216c89d2aef4586bce090bcc7842911720c
@@@ -581,11 -581,6 +581,11 @@@ static int acpi_processor_power_verify(
        for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) {
                struct acpi_processor_cx *cx = &pr->power.states[i];
  
 +#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
 +              /* TSC could halt in idle, so notify users */
 +              if (tsc_halts_in_c(cx->type))
 +                      mark_tsc_unstable("TSC halts in idle");;
 +#endif
                switch (cx->type) {
                case ACPI_STATE_C1:
                        cx->valid = 1;
@@@ -662,9 -657,11 +662,9 @@@ static int acpi_processor_power_seq_sho
  
        seq_printf(seq, "active state:            C%zd\n"
                   "max_cstate:              C%d\n"
 -                 "bus master activity:     %08x\n"
                   "maximum allowed latency: %d usec\n",
                   pr->power.state ? pr->power.state - pr->power.states : 0,
 -                 max_cstate, (unsigned)pr->power.bm_activity,
 -                 pm_qos_requirement(PM_QOS_CPU_DMA_LATENCY));
 +                 max_cstate, pm_qos_requirement(PM_QOS_CPU_DMA_LATENCY));
  
        seq_puts(seq, "states:\n");
  
@@@ -874,6 -871,11 +874,6 @@@ static int acpi_idle_enter_simple(struc
        kt2 = ktime_get_real();
        idle_time =  ktime_to_us(ktime_sub(kt2, kt1));
  
 -#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
 -      /* TSC could halt in idle, so notify users */
 -      if (tsc_halts_in_c(cx->type))
 -              mark_tsc_unstable("TSC halts in idle");;
 -#endif
        sleep_ticks = us_to_pm_timer_ticks(idle_time);
  
        /* Tell the scheduler how much we idled: */
@@@ -953,6 -955,7 +953,7 @@@ static int acpi_idle_enter_bm(struct cp
         */
        acpi_state_timer_broadcast(pr, cx, 1);
  
+       kt1 = ktime_get_real();
        /*
         * disable bus master
         * bm_check implies we need ARB_DIS
                ACPI_FLUSH_CPU_CACHE();
        }
  
-       kt1 = ktime_get_real();
        acpi_idle_do_entry(cx);
-       kt2 = ktime_get_real();
-       idle_time =  ktime_to_us(ktime_sub(kt2, kt1));
  
        /* Re-enable bus master arbitration */
        if (pr->flags.bm_check && pr->flags.bm_control) {
                c3_cpu_count--;
                spin_unlock(&c3_lock);
        }
+       kt2 = ktime_get_real();
+       idle_time =  ktime_to_us(ktime_sub(kt2, kt1));
  
 -#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
 -      /* TSC could halt in idle, so notify users */
 -      if (tsc_halts_in_c(ACPI_STATE_C3))
 -              mark_tsc_unstable("TSC halts in idle");
 -#endif
        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);