[PATCH v3 0/4] Support for autonomous selection in cppc_cpufreq

From: Lifeng Zheng
Date: Mon Dec 16 2024 - 04:17:24 EST


Add sysfs interfaces for CPPC autonomous selection in the cppc_cpufreq
driver.

The patch series is organized in two parts:

- patch 1-2 refactor out the general CPPC register get and set functions
in cppc_acpi.c

- patches 3-4 expose sysfs files for users to control CPPC autonomous
selection when supported

Since Pierre and me have discussed about whether or not to show
auto_act_window and energy_perf when auto_select is disabled. It seems
like whether to show these two files has their own points. We'd like to
ask for some advice.

Relevant discussion:
[1] https://lore.kernel.org/all/522721da-1a5c-439c-96a8-d0300dd0f906@xxxxxxxxxx/

Change since v2:
- change cppc_get_reg() and cppc_set_reg() name to cppc_get_reg_val() and
cppc_set_reg_val()
- extract cppc_get_reg_val_in_pcc() and cppc_set_reg_val_in_pcc()
- return the result of cpc_read() in cppc_get_reg_val()
- add pr_debug() in cppc_get_reg_val_in_pcc() when pcc_ss_id < 0
- rename 'cpunum' to 'cpu' in cppc_get_reg_val()
- move some macros from drivers/cpufreq/cppc_cpufreq.c to
include/acpi/cppc_acpi.h with a CPPC_XXX prefix

Change since v1:
- fix some incorrect placeholder
- change kstrtoul to kstrtobool in store_auto_select

Lifeng Zheng (4):
ACPI: CPPC: Add cppc_get_reg_val and cppc_set_reg_val function
ACPI: CPPC: Refactor register value get and set ABIs
ACPI: CPPC: Add autonomous selection ABIs
cpufreq: CPPC: Support for autonomous selection in cppc_cpufreq

.../ABI/testing/sysfs-devices-system-cpu | 54 ++++
drivers/acpi/cppc_acpi.c | 266 +++++++++---------
drivers/cpufreq/cppc_cpufreq.c | 129 +++++++++
include/acpi/cppc_acpi.h | 29 ++
4 files changed, 347 insertions(+), 131 deletions(-)

--
2.33.0