Page MenuHomeFreeBSD

D31110.diff
No OneTemporary

D31110.diff

diff --git a/sys/dev/acpica/acpi_resource.c b/sys/dev/acpica/acpi_resource.c
--- a/sys/dev/acpica/acpi_resource.c
+++ b/sys/dev/acpica/acpi_resource.c
@@ -421,6 +421,27 @@
(uintmax_t)min, (uintmax_t)length));
set->set_ioport(dev, arc->context, min, length);
}
+ } else if (res->Data.Address.MinAddressFixed != ACPI_ADDRESS_FIXED &&
+ res->Data.Address.MaxAddressFixed != ACPI_ADDRESS_FIXED) {
+ /* Fixed size, variable location resource descriptor */
+ min = roundup(min, gran + 1);
+ if ((min + length - 1) > max) {
+ device_printf(dev,
+ "invalid memory range: start: %jx end: %jx max: %jx\n",
+ (uintmax_t)min, (uintmax_t)(min + length - 1),
+ (uintmax_t)max);
+ } else {
+ if (res->Data.Address.ResourceType == ACPI_MEMORY_RANGE) {
+ ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,
+ "%s/Memory 0x%jx/%ju\n", name, (uintmax_t)min,
+ (uintmax_t)length));
+ set->set_memory(dev, arc->context, min, length);
+ } else {
+ ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "%s/IO 0x%jx/%ju\n",
+ name, (uintmax_t)min, (uintmax_t)length));
+ set->set_ioport(dev, arc->context, min, length);
+ }
+ }
} else {
if (res->Data.Address32.ResourceType == ACPI_MEMORY_RANGE) {
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES,

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 16, 7:04 AM (19 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15821808
Default Alt Text
D31110.diff (1 KB)

Event Timeline