[PATCH v4 1/3] ACPI: CPPC: Factor out and export per-cpu cppc_perf_ctrs_in_pcc_cpu()
Jie Zhan
zhanjie9 at hisilicon.com
Sun Dec 7 20:02:16 PST 2025
On 12/5/2025 11:13 PM, Rafael J. Wysocki wrote:
> On Wed, Dec 3, 2025 at 4:25 AM Jie Zhan <zhanjie9 at hisilicon.com> wrote:
>>
>> Factor out cppc_perf_ctrs_in_pcc_cpu() for checking whether per-cpu CPC
>> regs are defined in PCC channels, and export it out for further use.
>>
>> Signed-off-by: Jie Zhan <zhanjie9 at hisilicon.com>
>> ---
>> drivers/acpi/cppc_acpi.c | 45 +++++++++++++++++++++-------------------
>> include/acpi/cppc_acpi.h | 5 +++++
>> 2 files changed, 29 insertions(+), 21 deletions(-)
>>
>> diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
>> index 3bdeeee3414e..aa80dbcf42c0 100644
>> --- a/drivers/acpi/cppc_acpi.c
>> +++ b/drivers/acpi/cppc_acpi.c
>> @@ -1422,6 +1422,29 @@ int cppc_get_perf_caps(int cpunum, struct cppc_perf_caps *perf_caps)
>> }
>> EXPORT_SYMBOL_GPL(cppc_get_perf_caps);
>>
>> +bool cppc_perf_ctrs_in_pcc_cpu(unsigned int cpu)
>> +{
>> + struct cpc_desc *cpc_desc = per_cpu(cpc_desc_ptr, cpu);
>> + struct cpc_register_resource *ref_perf_reg;
>> +
>> + /*
>> + * If reference perf register is not supported then we should use the
>> + * nominal perf value
>> + */
>> + ref_perf_reg = &cpc_desc->cpc_regs[REFERENCE_PERF];
>> + if (!CPC_SUPPORTED(ref_perf_reg))
>> + ref_perf_reg = &cpc_desc->cpc_regs[NOMINAL_PERF];
>> +
>> + if (CPC_IN_PCC(&cpc_desc->cpc_regs[DELIVERED_CTR]) ||
>> + CPC_IN_PCC(&cpc_desc->cpc_regs[REFERENCE_CTR]) ||
>> + CPC_IN_PCC(&cpc_desc->cpc_regs[CTR_WRAP_TIME]) ||
>> + CPC_IN_PCC(ref_perf_reg))
>> + return true;
>> +
>> + return false;
>
> Why not
>
> return CPC_IN_PCC(&cpc_desc->cpc_regs[DELIVERED_CTR]) ||
> CPC_IN_PCC(&cpc_desc->cpc_regs[REFERENCE_CTR]) ||
> CPC_IN_PCC(&cpc_desc->cpc_regs[CTR_WRAP_TIME]) ||
> CPC_IN_PCC(ref_perf_reg);
>
Yes, that would save a few more lines.
Thanks!
More information about the linux-arm-kernel
mailing list