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
ac1cdddd7f
commit
c294549cbd
@ -690,19 +690,11 @@ acpi_cpu_cx_cst(struct acpi_cpu_softc *sc)
|
|||||||
sc->cpu_cx_count++;
|
sc->cpu_cx_count++;
|
||||||
continue;
|
continue;
|
||||||
case ACPI_STATE_C2:
|
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;
|
sc->cpu_non_c3 = i;
|
||||||
break;
|
break;
|
||||||
case ACPI_STATE_C3:
|
case ACPI_STATE_C3:
|
||||||
default:
|
default:
|
||||||
if (cx_ptr->trans_lat > 1000 ||
|
if ((cpu_quirks & CPU_QUIRK_NO_C3) != 0) {
|
||||||
(cpu_quirks & CPU_QUIRK_NO_C3) != 0) {
|
|
||||||
|
|
||||||
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
|
||||||
"acpi_cpu%d: C3[%d] not available.\n",
|
"acpi_cpu%d: C3[%d] not available.\n",
|
||||||
device_get_unit(sc->cpu_dev), i));
|
device_get_unit(sc->cpu_dev), i));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user