Patch allows longer latencies for _CST provided c-states. (cmp. with ACPI spec (see 8.1.5 and 8.4.2)). --- linux-2.6.11.orig/drivers/acpi/processor_idle.c 2005-03-02 08:38:25.000000000 +0100 +++ linux-2.6.11/drivers/acpi/processor_idle.c 2005-04-19 13:47:17.000000000 +0200 @@ -646,7 +646,8 @@ } -static void acpi_processor_power_verify_c2(struct acpi_processor_cx *cx) +static void acpi_processor_power_verify_c2(struct acpi_processor *pr, + struct acpi_processor_cx *cx) { ACPI_FUNCTION_TRACE("acpi_processor_get_power_verify_c2"); @@ -657,7 +658,7 @@ * C2 latency must be less than or equal to 100 * microseconds. */ - else if (cx->latency > ACPI_PROCESSOR_MAX_C2_LATENCY) { + else if (!pr->flags.has_cst && cx->latency > ACPI_PROCESSOR_MAX_C2_LATENCY) { ACPI_DEBUG_PRINT((ACPI_DB_INFO, "latency too large [%d]\n", cx->latency)); @@ -695,7 +696,7 @@ * C3 latency must be less than or equal to 1000 * microseconds. */ - else if (cx->latency > ACPI_PROCESSOR_MAX_C3_LATENCY) { + else if (!pr->flags.has_cst && cx->latency > ACPI_PROCESSOR_MAX_C3_LATENCY) { ACPI_DEBUG_PRINT((ACPI_DB_INFO, "latency too large [%d]\n", cx->latency)); @@ -757,7 +758,7 @@ break; case ACPI_STATE_C2: - acpi_processor_power_verify_c2(cx); + acpi_processor_power_verify_c2(pr, cx); break; case ACPI_STATE_C3: