Project

General

Profile

Bug #1604

ACPI C-states not working properly

Added by Johannes.Hofmann almost 11 years ago. Updated over 10 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

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++;

History

#1

Updated by dillon almost 11 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
<>

#2

Updated by Johannes.Hofmann over 10 years ago

fixed with 7d6c19d3c3ee4dd042ed8f5348cab7c4152652fa

Also available in: Atom PDF