ACPI: processor: idle: Ignore _LPI states with SYSTEMIO entry method

The only entry method for _LPI states supported by acpi_idle_lpi_enter()
is FFH and it is better to ignore _LPI states with the SYSTEMIO entry
method upfront than return an error from acpi_idle_lpi_enter() on
attempts to use them.

Update acpi_processor_evaluate_lpi() accordingly.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Sudeep Holla <sudeep.holla@kernel.org>
Acked-by: Huisong Li <lihuisong@huawei.com>
Link: https://patch.msgid.link/2268989.irdbgypaU6@rafael.j.wysocki
This commit is contained in:
Rafael J. Wysocki
2026-07-09 14:31:28 +02:00
parent d5c13047a1
commit 291c2047e7

View File

@@ -935,14 +935,15 @@ static int acpi_processor_evaluate_lpi(acpi_handle handle,
}
reg = (struct acpi_power_register *)obj->buffer.pointer;
if (reg->space_id != ACPI_ADR_SPACE_SYSTEM_IO &&
reg->space_id != ACPI_ADR_SPACE_FIXED_HARDWARE)
if (reg->space_id != ACPI_ADR_SPACE_FIXED_HARDWARE) {
acpi_handle_debug(handle,
"Unsupported entry method for _LPI state %d\n",
state_idx);
continue;
}
lpi_state->entry_method = ACPI_CSTATE_FFH;
lpi_state->address = reg->address;
lpi_state->entry_method =
reg->space_id == ACPI_ADR_SPACE_FIXED_HARDWARE ?
ACPI_CSTATE_FFH : ACPI_CSTATE_SYSTEMIO;
} else if (obj->type == ACPI_TYPE_INTEGER) {
lpi_state->entry_method = ACPI_CSTATE_INTEGER;
lpi_state->address = obj->integer.value;