diff options
author | njl <njl@FreeBSD.org> | 2004-04-09 06:55:50 +0000 |
---|---|---|
committer | njl <njl@FreeBSD.org> | 2004-04-09 06:55:50 +0000 |
commit | 6c09d371b9306fe75463ad7af1b0a27ea13c8a51 (patch) | |
tree | e76f978793ddc11823c5adc2c8b545396bd2fae4 /sys/dev/acpica/acpi_powerres.c | |
parent | 2c8ba3e867635eb4b515d463795e90d9031e5c79 (diff) | |
download | FreeBSD-src-6c09d371b9306fe75463ad7af1b0a27ea13c8a51.zip FreeBSD-src-6c09d371b9306fe75463ad7af1b0a27ea13c8a51.tar.gz |
Replace more ad-hoc versions of acpi_GetReference(). Since the type of
Reference objects changed from ACPI_TYPE_ANY to ACPI_TYPE_LOCAL_REFERENCE
in Oct. 2002, this may help systems where switching the cooler on failed.
We support both types for now until this sorts out.
Diffstat (limited to 'sys/dev/acpica/acpi_powerres.c')
-rw-r--r-- | sys/dev/acpica/acpi_powerres.c | 26 |
1 files changed, 3 insertions, 23 deletions
diff --git a/sys/dev/acpica/acpi_powerres.c b/sys/dev/acpica/acpi_powerres.c index a0d8eb7..7bbcc01 100644 --- a/sys/dev/acpica/acpi_powerres.c +++ b/sys/dev/acpica/acpi_powerres.c @@ -488,30 +488,10 @@ acpi_pwr_reference_resource(ACPI_OBJECT *obj, void *arg) ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); - /* check the object type */ - switch (obj->Type) { - case ACPI_TYPE_ANY: - ACPI_DEBUG_PRINT((ACPI_DB_OBJECTS, "building reference from %s to %s\n", - acpi_name(pc->ac_consumer), - acpi_name(obj->Reference.Handle))); - res = obj->Reference.Handle; - break; - case ACPI_TYPE_STRING: - ACPI_DEBUG_PRINT((ACPI_DB_OBJECTS, "building reference from %s to %s\n", - acpi_name(pc->ac_consumer), obj->String.Pointer)); - - /* Get the handle of the resource */ - status = AcpiGetHandle(NULL, obj->String.Pointer, &res); - if (ACPI_FAILURE(status)) { - ACPI_DEBUG_PRINT((ACPI_DB_OBJECTS, - "couldn't find power resource %s\n", - obj->String.Pointer)); - return_VOID; - } - break; - default: + res = acpi_GetReference(NULL, obj); + if (res == NULL) { ACPI_DEBUG_PRINT((ACPI_DB_OBJECTS, - "can't create a power reference for object type %d\n", + "can't create a power reference for object type %d\n", obj->Type)); return_VOID; } |