Module Name: src Committed By: jmcneill Date: Tue Dec 31 13:39:15 UTC 2019
Modified Files: src/sys/dev/acpi: acpi_resource.c acpivar.h Log Message: Include device decoding type in acpi_mem resources To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/dev/acpi/acpi_resource.c cvs rdiff -u -r1.79 -r1.80 src/sys/dev/acpi/acpivar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/acpi/acpi_resource.c diff -u src/sys/dev/acpi/acpi_resource.c:1.39 src/sys/dev/acpi/acpi_resource.c:1.40 --- src/sys/dev/acpi/acpi_resource.c:1.39 Tue Dec 31 12:27:50 2019 +++ src/sys/dev/acpi/acpi_resource.c Tue Dec 31 13:39:15 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: acpi_resource.c,v 1.39 2019/12/31 12:27:50 jmcneill Exp $ */ +/* $NetBSD: acpi_resource.c,v 1.40 2019/12/31 13:39:15 jmcneill Exp $ */ /* * Copyright 2001 Wasabi Systems, Inc. @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: acpi_resource.c,v 1.39 2019/12/31 12:27:50 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: acpi_resource.c,v 1.40 2019/12/31 13:39:15 jmcneill Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -148,7 +148,7 @@ acpi_resource_parse_callback(ACPI_RESOUR (*ops->memory)(arg->dev, arg->context, res->Data.FixedMemory32.Address, res->Data.FixedMemory32.AddressLength, - 0); + 0, 0); break; case ACPI_RESOURCE_TYPE_MEMORY32: @@ -162,7 +162,7 @@ acpi_resource_parse_callback(ACPI_RESOUR (*ops->memory)(arg->dev, arg->context, res->Data.Memory32.Minimum, res->Data.Memory32.AddressLength, - 0); + 0, 0); } else { ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "Memory32 0x%x-0x%x/%u\n", @@ -189,7 +189,7 @@ acpi_resource_parse_callback(ACPI_RESOUR (*ops->memory)(arg->dev, arg->context, res->Data.Memory24.Minimum, res->Data.Memory24.AddressLength, - 0); + 0, 0); } else { ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "Memory24 0x%x-0x%x/%u\n", @@ -259,7 +259,8 @@ acpi_resource_parse_callback(ACPI_RESOUR (*ops->memory)(arg->dev, arg->context, res->Data.Address32.Address.Minimum, res->Data.Address32.Address.AddressLength, - res->Data.Address32.Address.TranslationOffset); + res->Data.Address32.Address.TranslationOffset, + res->Data.Address32.Decode); } else { if (ops->memrange) (*ops->memrange)(arg->dev, arg->context, @@ -313,7 +314,8 @@ acpi_resource_parse_callback(ACPI_RESOUR (*ops->memory)(arg->dev, arg->context, res->Data.Address64.Address.Minimum, res->Data.Address64.Address.AddressLength, - res->Data.Address64.Address.TranslationOffset); + res->Data.Address64.Address.TranslationOffset, + res->Data.Address64.Decode); } else { if (ops->memrange) (*ops->memrange)(arg->dev, arg->context, @@ -652,7 +654,7 @@ static void acpi_res_parse_iorange(devic uint32_t, uint32_t, uint32_t); static void acpi_res_parse_memory(device_t, void *, uint64_t, - uint64_t, uint64_t); + uint64_t, uint64_t, uint8_t); static void acpi_res_parse_memrange(device_t, void *, uint64_t, uint64_t, uint64_t, uint64_t); @@ -802,7 +804,7 @@ acpi_res_parse_iorange(device_t dev, voi static void acpi_res_parse_memory(device_t dev, void *context, uint64_t base, - uint64_t length, uint64_t offset) + uint64_t length, uint64_t offset, uint8_t decode) { struct acpi_resources *res = context; struct acpi_mem *ar; @@ -819,6 +821,7 @@ acpi_res_parse_memory(device_t dev, void ar->ar_base = base; ar->ar_length = length; ar->ar_offset = offset; + ar->ar_decode = decode; SIMPLEQ_INSERT_TAIL(&res->ar_mem, ar, ar_list); } Index: src/sys/dev/acpi/acpivar.h diff -u src/sys/dev/acpi/acpivar.h:1.79 src/sys/dev/acpi/acpivar.h:1.80 --- src/sys/dev/acpi/acpivar.h:1.79 Tue Dec 31 12:27:50 2019 +++ src/sys/dev/acpi/acpivar.h Tue Dec 31 13:39:15 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: acpivar.h,v 1.79 2019/12/31 12:27:50 jmcneill Exp $ */ +/* $NetBSD: acpivar.h,v 1.80 2019/12/31 13:39:15 jmcneill Exp $ */ /* * Copyright 2001 Wasabi Systems, Inc. @@ -227,6 +227,7 @@ struct acpi_mem { bus_addr_t ar_base; bus_size_t ar_length; bus_addr_t ar_offset; + uint8_t ar_decode; }; struct acpi_memrange { @@ -285,7 +286,8 @@ struct acpi_resource_parse_ops { void (*iorange)(device_t, void *, uint32_t, uint32_t, uint32_t, uint32_t); - void (*memory)(device_t, void *, uint64_t, uint64_t, uint64_t); + void (*memory)(device_t, void *, uint64_t, uint64_t, + uint64_t, uint8_t); void (*memrange)(device_t, void *, uint64_t, uint64_t, uint64_t, uint64_t);