|
@@ -953,6 +953,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
|
|
|
*/
|
|
|
acpi_state_timer_broadcast(pr, cx, 1);
|
|
|
|
|
|
+ kt1 = ktime_get_real();
|
|
|
/*
|
|
|
* disable bus master
|
|
|
* bm_check implies we need ARB_DIS
|
|
@@ -974,10 +975,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
|
|
|
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) {
|
|
@@ -986,6 +984,8 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
|
|
|
c3_cpu_count--;
|
|
|
spin_unlock(&c3_lock);
|
|
|
}
|
|
|
+ kt2 = ktime_get_real();
|
|
|
+ idle_time = ktime_to_us(ktime_sub(kt2, kt1));
|
|
|
|
|
|
sleep_ticks = us_to_pm_timer_ticks(idle_time);
|
|
|
/* Tell the scheduler how much we idled: */
|