ACPI: TSC breaks atkbd suspend
TSC is used even on machines when CONFIG_X86_TSC is not set (X86_TSC means _require_ TSC), but it is not properly disabled when it is unusable, because ACPI code understood the config switch as "may use TSC". This actually fixes suspend problems on my x60. Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
00e962c540
commit
6133116849
|
@ -364,7 +364,7 @@ int acpi_processor_resume(struct acpi_device * device)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86_TSC)
|
||||
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
|
||||
static int tsc_halts_in_c(int state)
|
||||
{
|
||||
switch (boot_cpu_data.x86_vendor) {
|
||||
|
@ -544,7 +544,7 @@ static void acpi_processor_idle(void)
|
|||
/* Get end time (ticks) */
|
||||
t2 = inl(acpi_gbl_FADT.xpm_timer_block.address);
|
||||
|
||||
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86_TSC)
|
||||
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
|
||||
/* TSC halts in C2, so notify users */
|
||||
if (tsc_halts_in_c(ACPI_STATE_C2))
|
||||
mark_tsc_unstable("possible TSC halt in C2");
|
||||
|
@ -609,7 +609,7 @@ static void acpi_processor_idle(void)
|
|||
acpi_set_register(ACPI_BITREG_ARB_DISABLE, 0);
|
||||
}
|
||||
|
||||
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86_TSC)
|
||||
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
|
||||
/* TSC halts in C3, so notify users */
|
||||
if (tsc_halts_in_c(ACPI_STATE_C3))
|
||||
mark_tsc_unstable("TSC halts in C3");
|
||||
|
@ -1500,7 +1500,7 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
|
|||
acpi_idle_do_entry(cx);
|
||||
t2 = inl(acpi_gbl_FADT.xpm_timer_block.address);
|
||||
|
||||
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86_TSC)
|
||||
#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");;
|
||||
|
@ -1614,7 +1614,7 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
|
|||
spin_unlock(&c3_lock);
|
||||
}
|
||||
|
||||
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86_TSC)
|
||||
#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");
|
||||
|
|
Loading…
Reference in a new issue