|
Lines 202-207
struct acpi_resource_context {
Link Here
|
| 202 |
struct acpi_parse_resource_set *set; |
202 |
struct acpi_parse_resource_set *set; |
| 203 |
device_t dev; |
203 |
device_t dev; |
| 204 |
void *context; |
204 |
void *context; |
|
|
205 |
bool ignore_producer_flag; |
| 205 |
}; |
206 |
}; |
| 206 |
|
207 |
|
| 207 |
#ifdef ACPI_DEBUG_OUTPUT |
208 |
#ifdef ACPI_DEBUG_OUTPUT |
|
Lines 385-391
acpi_parse_resource(ACPI_RESOURCE *res, void *cont
Link Here
|
| 385 |
} |
386 |
} |
| 386 |
if (length <= 0) |
387 |
if (length <= 0) |
| 387 |
break; |
388 |
break; |
| 388 |
if (res->Type == ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 && |
389 |
if (!arc->ignore_producer_flag && |
| 389 |
res->Data.Address.ProducerConsumer != ACPI_CONSUMER) { |
390 |
res->Data.Address.ProducerConsumer != ACPI_CONSUMER) { |
| 390 |
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, |
391 |
ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, |
| 391 |
"ignored %s %s producer\n", name, |
392 |
"ignored %s %s producer\n", name, |
|
Lines 474-479
acpi_parse_resources(device_t dev, ACPI_HANDLE han
Link Here
|
| 474 |
set->set_init(dev, arg, &arc.context); |
475 |
set->set_init(dev, arg, &arc.context); |
| 475 |
arc.set = set; |
476 |
arc.set = set; |
| 476 |
arc.dev = dev; |
477 |
arc.dev = dev; |
|
|
478 |
arc.ignore_producer_flag = false; |
| 479 |
|
| 480 |
/* UARTs on ThunderX2 set ResourceProducer on memory resources. */ |
| 481 |
if (acpi_MatchHid(handle, "ARMH0011") != ACPI_MATCHHID_NOMATCH) |
| 482 |
arc.ignore_producer_flag = true; |
| 483 |
|
| 477 |
status = AcpiWalkResources(handle, "_CRS", acpi_parse_resource, &arc); |
484 |
status = AcpiWalkResources(handle, "_CRS", acpi_parse_resource, &arc); |
| 478 |
if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { |
485 |
if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { |
| 479 |
printf("can't fetch resources for %s - %s\n", |
486 |
printf("can't fetch resources for %s - %s\n", |