diff options
| author | Len Brown <len.brown@intel.com> | 2010-06-04 15:23:02 -0400 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2010-06-04 15:23:02 -0400 |
| commit | 85f1bb4ace038289d587bcff64128be10613f9f3 (patch) | |
| tree | eb49b8bebcca5d43e93ef38dcc956a784f7243ca | |
| parent | b42f5b0f0fd8c1c442c1b29a3fbcb338e8bd7732 (diff) | |
| parent | bceefad59ab66d1b1a815a1738744ea013da966e (diff) | |
Merge branch 'acpi-idle' into release
| -rw-r--r-- | drivers/acpi/processor_idle.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index 2e8c27d48f2b..b1b385692f46 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
| @@ -80,7 +80,7 @@ module_param(nocst, uint, 0000); | |||
| 80 | static unsigned int latency_factor __read_mostly = 2; | 80 | static unsigned int latency_factor __read_mostly = 2; |
| 81 | module_param(latency_factor, uint, 0644); | 81 | module_param(latency_factor, uint, 0644); |
| 82 | 82 | ||
| 83 | static s64 us_to_pm_timer_ticks(s64 t) | 83 | static u64 us_to_pm_timer_ticks(s64 t) |
| 84 | { | 84 | { |
| 85 | return div64_u64(t * PM_TIMER_FREQUENCY, 1000000); | 85 | return div64_u64(t * PM_TIMER_FREQUENCY, 1000000); |
| 86 | } | 86 | } |
| @@ -731,10 +731,10 @@ static int acpi_processor_power_seq_show(struct seq_file *seq, void *offset) | |||
| 731 | 731 | ||
| 732 | seq_puts(seq, "demotion[--] "); | 732 | seq_puts(seq, "demotion[--] "); |
| 733 | 733 | ||
| 734 | seq_printf(seq, "latency[%03d] usage[%08d] duration[%020llu]\n", | 734 | seq_printf(seq, "latency[%03d] usage[%08d] duration[%020Lu]\n", |
| 735 | pr->power.states[i].latency, | 735 | pr->power.states[i].latency, |
| 736 | pr->power.states[i].usage, | 736 | pr->power.states[i].usage, |
| 737 | (unsigned long long)pr->power.states[i].time); | 737 | us_to_pm_timer_ticks(pr->power.states[i].time)); |
| 738 | } | 738 | } |
| 739 | 739 | ||
| 740 | end: | 740 | end: |
| @@ -861,7 +861,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, | |||
| 861 | ktime_t kt1, kt2; | 861 | ktime_t kt1, kt2; |
| 862 | s64 idle_time_ns; | 862 | s64 idle_time_ns; |
| 863 | s64 idle_time; | 863 | s64 idle_time; |
| 864 | s64 sleep_ticks = 0; | ||
| 865 | 864 | ||
| 866 | pr = __get_cpu_var(processors); | 865 | pr = __get_cpu_var(processors); |
| 867 | 866 | ||
| @@ -906,8 +905,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, | |||
| 906 | idle_time = idle_time_ns; | 905 | idle_time = idle_time_ns; |
| 907 | do_div(idle_time, NSEC_PER_USEC); | 906 | do_div(idle_time, NSEC_PER_USEC); |
| 908 | 907 | ||
| 909 | sleep_ticks = us_to_pm_timer_ticks(idle_time); | ||
| 910 | |||
| 911 | /* Tell the scheduler how much we idled: */ | 908 | /* Tell the scheduler how much we idled: */ |
| 912 | sched_clock_idle_wakeup_event(idle_time_ns); | 909 | sched_clock_idle_wakeup_event(idle_time_ns); |
| 913 | 910 | ||
| @@ -918,7 +915,7 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, | |||
| 918 | cx->usage++; | 915 | cx->usage++; |
| 919 | 916 | ||
| 920 | lapic_timer_state_broadcast(pr, cx, 0); | 917 | lapic_timer_state_broadcast(pr, cx, 0); |
| 921 | cx->time += sleep_ticks; | 918 | cx->time += idle_time; |
| 922 | return idle_time; | 919 | return idle_time; |
| 923 | } | 920 | } |
| 924 | 921 | ||
| @@ -940,7 +937,6 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, | |||
| 940 | ktime_t kt1, kt2; | 937 | ktime_t kt1, kt2; |
| 941 | s64 idle_time_ns; | 938 | s64 idle_time_ns; |
| 942 | s64 idle_time; | 939 | s64 idle_time; |
| 943 | s64 sleep_ticks = 0; | ||
| 944 | 940 | ||
| 945 | 941 | ||
| 946 | pr = __get_cpu_var(processors); | 942 | pr = __get_cpu_var(processors); |
| @@ -1022,11 +1018,10 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, | |||
| 1022 | spin_unlock(&c3_lock); | 1018 | spin_unlock(&c3_lock); |
| 1023 | } | 1019 | } |
| 1024 | kt2 = ktime_get_real(); | 1020 | kt2 = ktime_get_real(); |
| 1025 | idle_time_ns = ktime_to_us(ktime_sub(kt2, kt1)); | 1021 | idle_time_ns = ktime_to_ns(ktime_sub(kt2, kt1)); |
| 1026 | idle_time = idle_time_ns; | 1022 | idle_time = idle_time_ns; |
| 1027 | do_div(idle_time, NSEC_PER_USEC); | 1023 | do_div(idle_time, NSEC_PER_USEC); |
| 1028 | 1024 | ||
| 1029 | sleep_ticks = us_to_pm_timer_ticks(idle_time); | ||
| 1030 | /* Tell the scheduler how much we idled: */ | 1025 | /* Tell the scheduler how much we idled: */ |
| 1031 | sched_clock_idle_wakeup_event(idle_time_ns); | 1026 | sched_clock_idle_wakeup_event(idle_time_ns); |
| 1032 | 1027 | ||
| @@ -1037,7 +1032,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, | |||
| 1037 | cx->usage++; | 1032 | cx->usage++; |
| 1038 | 1033 | ||
| 1039 | lapic_timer_state_broadcast(pr, cx, 0); | 1034 | lapic_timer_state_broadcast(pr, cx, 0); |
| 1040 | cx->time += sleep_ticks; | 1035 | cx->time += idle_time; |
| 1041 | return idle_time; | 1036 | return idle_time; |
| 1042 | } | 1037 | } |
| 1043 | 1038 | ||
