acpi_cpu: do not apply P_LVLx_LAT rules to latencies returned by _CST
ACPI specification sates that if P_LVL2_LAT > 100, then a system doesn't support C2; if P_LVL3_LAT > 1000, then C3 is not supported. But there are no such rules for Cx state data returned by _CST. If a state is not supported it should not be included into the return package. In other words, any latency value returned by _CST is valid, it's up to the OS and/or user to decide whether to use it. Submitted by: nork Suggested by: mav MFC after: 1 week
This commit is contained in:
parent
fa1efe5efd
commit
09c22c66e1
@ -690,19 +690,11 @@ acpi_cpu_cx_cst(struct acpi_cpu_softc *sc)
|
||||
sc->cpu_cx_count++;
|
||||
continue;
|
||||
case ACPI_STATE_C2:
|
||||
if (cx_ptr->trans_lat > 100) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"acpi_cpu%d: C2[%d] not available.\n",
|
||||
device_get_unit(sc->cpu_dev), i));
|
||||
continue;
|
||||
}
|
||||
sc->cpu_non_c3 = i;
|
||||
break;
|
||||
case ACPI_STATE_C3:
|
||||
default:
|
||||
if (cx_ptr->trans_lat > 1000 ||
|
||||
(cpu_quirks & CPU_QUIRK_NO_C3) != 0) {
|
||||
|
||||
if ((cpu_quirks & CPU_QUIRK_NO_C3) != 0) {
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||
"acpi_cpu%d: C3[%d] not available.\n",
|
||||
device_get_unit(sc->cpu_dev), i));
|
||||
|
Loading…
x
Reference in New Issue
Block a user