Bug #1604
closedACPI C-states not working properly
0%
Description
Hi,
after the recent ACPI update, setting hw.acpi.cpu.cx_lowest=C3 caused
clock interrupt issues on my ThinkPad X60.
This is because the special handling that sets the clock interrupt
source to i8254 when C3 is enabled was no longer working. The type
field of struct acpi_cx in acpi_cpu_cstate.c was overwritten due to a
typo. The patch below fixes the issue.
Cheers,
Johannes
diff --git a/sys/dev/acpica5/acpi_cpu_cstate.c b/sys/dev/acpica5/acpi_cpu_cstate.c
index 21b9b92..2113f22 100644
--- a/sys/dev/acpica5/acpi_cpu_cstate.c
+++ b/sys/dev/acpica5/acpi_cpu_cstate.c@ -641,7 +641,7
@ acpi_cpu_cx_cst(struct acpi_cpu_softc *sc)
/* Allocate the control register for C2 or C3. */
cx_ptr->rid = sc->cpu_parent->cpux_next_rid;
- acpi_PkgGas(sc->cpu_dev, pkg, 0, &cx_ptr->type, &cx_ptr->rid, &cx_ptr->p_lvlx,
+ acpi_PkgGas(sc->cpu_dev, pkg, 0, &cx_ptr->res_type, &cx_ptr->rid, &cx_ptr->p_lvlx,
RF_SHAREABLE);
if (cx_ptr->p_lvlx) {
sc->cpu_parent->cpux_next_rid++;
Updated by dillon about 15 years ago
:Hi,
:
:after the recent ACPI update, setting hw.acpi.cpu.cx_lowest=C3 caused
:clock interrupt issues on my ThinkPad X60.
:This is because the special handling that sets the clock interrupt
:source to i8254 when C3 is enabled was no longer working. The type
:field of struct acpi_cx in acpi_cpu_cstate.c was overwritten due to a
:typo. The patch below fixes the issue.
:
:Cheers,
:Johannes
:
:- acpi_PkgGas(sc->cpu_dev, pkg, 0, &cx_ptr->type, &cx_ptr->rid, &cx_ptr->p_lvlx,
:+ acpi_PkgGas(sc->cpu_dev, pkg, 0, &cx_ptr->res_type, &cx_ptr->rid, &cx_ptr->p_lvlx,
Nice catch. Committed!
-Matt
Matthew Dillon
<dillon@backplane.com>
Updated by Johannes.Hofmann over 14 years ago
fixed with 7d6c19d3c3ee4dd042ed8f5348cab7c4152652fa