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