diff options
Diffstat (limited to 'drivers/acpi/processor_idle.c')
| -rw-r--r-- | drivers/acpi/processor_idle.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index e8e2d886923..788da9781f8 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c @@ -1487,7 +1487,6 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,  		return 0;  	} -	acpi_unlazy_tlb(smp_processor_id());  	/*  	 * Must be done before busmaster disable as we might need to  	 * access HPET ! @@ -1577,6 +1576,8 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,  		return 0;  	} +	acpi_unlazy_tlb(smp_processor_id()); +  	/* Tell the scheduler that we are going deep-idle: */  	sched_clock_idle_sleep_event();  	/* @@ -1692,7 +1693,9 @@ static int acpi_processor_setup_cpuidle(struct acpi_processor *pr)  		switch (cx->type) {  			case ACPI_STATE_C1:  			state->flags |= CPUIDLE_FLAG_SHALLOW; -			state->flags |= CPUIDLE_FLAG_TIME_VALID; +			if (cx->entry_method == ACPI_CSTATE_FFH) +				state->flags |= CPUIDLE_FLAG_TIME_VALID; +  			state->enter = acpi_idle_enter_c1;  			dev->safe_state = state;  			break;  |