[PATCH] ACPI: processor: idle: Simplify acpi_processor_get_cstate_info() logic
From: Zhang, Rui
Date: Mon Mar 31 2025 - 03:29:57 EST
Since commit 496121c02127 ("ACPI: processor: idle: Allow probing on
platforms with one ACPI C-state"), acpi_idle driver can be probed with
C1 only.
Optimize the logic for setting pr->power.count and pr->flags.power by
1. unconditionally set pr->flags.power leveraging the fact that C1 is
always valid after acpi_processor_get_power_info_default().
2. update acpi_processor_power_verify() to return the highest valid
C-state directly.
No functional change intended.
Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx>
---
drivers/acpi/processor_idle.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 698897b29de2..7ce8c3802937 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -442,7 +442,7 @@ static int acpi_processor_power_verify(struct acpi_proc=
essor *pr)
=20
lapic_timer_check_state(i, pr, cx);
tsc_check_state(cx->type);
- working++;
+ working =3D i;
}
=20
if (buggy_latency) {
@@ -457,7 +457,6 @@ static int acpi_processor_power_verify(struct acpi_proc=
essor *pr)
=20
static int acpi_processor_get_cstate_info(struct acpi_processor *pr)
{
- unsigned int i;
int result;
=20
=20
@@ -477,17 +476,7 @@ static int acpi_processor_get_cstate_info(struct acpi_=
processor *pr)
acpi_processor_get_power_info_default(pr);
=20
pr->power.count =3D acpi_processor_power_verify(pr);
-
- /*
- * if one state of type C2 or C3 is available, mark this
- * CPU as being "idle manageable"
- */
- for (i =3D 1; i < ACPI_PROCESSOR_MAX_POWER; i++) {
- if (pr->power.states[i].valid) {
- pr->power.count =3D i;
- pr->flags.power =3D 1;
- }
- }
+ pr->flags.power =3D 1;
=20
return 0;
}
--=20
2.43.0