summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica/acpi_powerres.c
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2004-04-09 06:55:50 +0000
committernjl <njl@FreeBSD.org>2004-04-09 06:55:50 +0000
commit6c09d371b9306fe75463ad7af1b0a27ea13c8a51 (patch)
treee76f978793ddc11823c5adc2c8b545396bd2fae4 /sys/dev/acpica/acpi_powerres.c
parent2c8ba3e867635eb4b515d463795e90d9031e5c79 (diff)
downloadFreeBSD-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.c26
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;
}
OpenPOWER on IntegriCloud