Reading performance feedback counters on offline or low-power idle CPUs may return 0, which is interpreted as -EFAULT. This leads to two issues related to the CPPC FIE: 1. When booting a subset of CPUs in policy->related_cpus (some CPUs under the cpufreq policy is offline), there are warnings of "failed to read perf counters for cpu" during the CPPC FIE initialization. 2. On our platform with the CPC regs in System Memory and a power-down idle state enabled, if the CPPC FIE is registered successfully, there are repeated warnings of "failed to read perf counters" because cppc_scale_freq_workfn() is trying to access the counters of remote CPUs that enters the idle state. To solve the above issues: Patch 1 removes the warning when the CPPC FIE initialization fails to read counters on offline CPUs and changes the log leve to debug. This can be applied separately. Patch 2 moves the update of FIE arch_freq_scale into ticks for non-PCC regs and maintains the existing mechanism for PCC regs, such that reading counters would be triggered on the local CPU only. This inherently solves the issue in [1]. We have tested this on Kunpeng SoCs with the CPC regs both in System Memory and FFH. More tests on other platforms are welcome though. [1] https://lore.kernel.org/linux-pm/20250730032312.167062-3-yubowen8@xxxxxxxxxx/ Changelog: v2: - Update the cover letter and the commit log based on v1 discussion - Update FIE arch_freq_scale in ticks for non-PCC regs v1: https://lore.kernel.org/linux-pm/20250730032312.167062-1-yubowen8@xxxxxxxxxx/ Jie Zhan (2): cpufreq: CPPC: Don't warn if FIE init fails to read counters cpufreq: CPPC: Update FIE arch_freq_scale in ticks for non-PCC regs drivers/cpufreq/cppc_cpufreq.c | 64 +++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 25 deletions(-) -- 2.33.0