summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2005-02-04 18:07:03 +0000
committernjl <njl@FreeBSD.org>2005-02-04 18:07:03 +0000
commit6701a5bbfebafd343fd6d2bb9fa27bb85720bf59 (patch)
tree8da72966ceaeba93ed535742df98570452c77ee3
parentd00831d3e069584355266cc3a8e6a0072f7ba229 (diff)
downloadFreeBSD-src-6701a5bbfebafd343fd6d2bb9fa27bb85720bf59.zip
FreeBSD-src-6701a5bbfebafd343fd6d2bb9fa27bb85720bf59.tar.gz
Return a special status of "not supported" for functional fixed hardware
since this type of register should be handled by another driver.
-rw-r--r--sys/dev/acpica/acpi_package.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/acpica/acpi_package.c b/sys/dev/acpica/acpi_package.c
index 41f7581..1ed55e4 100644
--- a/sys/dev/acpica/acpi_package.c
+++ b/sys/dev/acpica/acpi_package.c
@@ -111,12 +111,12 @@ acpi_PkgGas(device_t dev, ACPI_OBJECT *res, int idx, int *rid,
obj = &res->Package.Elements[idx];
if (obj == NULL || obj->Type != ACPI_TYPE_BUFFER ||
- obj->Buffer.Length < sizeof(ACPI_GENERIC_ADDRESS) + 3) {
-
+ obj->Buffer.Length < sizeof(ACPI_GENERIC_ADDRESS) + 3)
return (EINVAL);
- }
memcpy(&gas, obj->Buffer.Pointer + 3, sizeof(gas));
+ if (gas.AddressSpaceId == ACPI_ADR_SPACE_FIXED_HARDWARE)
+ return (EOPNOTSUPP);
*dst = acpi_bus_alloc_gas(dev, rid, &gas);
if (*dst == NULL)
return (ENXIO);
OpenPOWER on IntegriCloud