ACPI: Only enumerate acpi_device_is_present_and_enabled() devices
Today the ACPI enumeration code 'visits' all devices that are present.
This is a problem for arm64, where CPUs are always present, but not
always enabled. When a device-check occurs because the firmware-policy
has changed and a CPU is now enabled, the following error occurs:
| acpi ACPI0007:48: Enumeration failure
This is ultimately because acpi_dev_ready_for_enumeration() returns
true for a device that is not enabled. The ACPI Processor driver
will not register such CPUs.
Add acpi_device_is_present_and_enabled(), and use this in the
enumeration code.
It may be necessary to make this behaviour only occur for CPUs.
Its possible there are platforms 'out there' with broken firmware
that only reports devices as present, as this was previously
sufficient.
Signed-off-by:
James Morse <james.morse@arm.com>
Loading
Please register or sign in to comment