]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
cpufreq: CPPC: Factor out cppc_fie_kworker_init()
authorJie Zhan <zhanjie9@hisilicon.com>
Tue, 23 Dec 2025 07:21:18 +0000 (15:21 +0800)
committerViresh Kumar <viresh.kumar@linaro.org>
Tue, 27 Jan 2026 05:51:23 +0000 (11:21 +0530)
Factor out the CPPC FIE kworker init in cppc_freq_invariance_init() because
it's a standalone procedure for use when the CPC regs are in PCC channels.

Reviewed-by: Lifeng Zheng <zhenglifeng1@huawei.com>
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: Jie Zhan <zhanjie9@hisilicon.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/cpufreq/cppc_cpufreq.c

index 9eac77c4f2944ecdb8b79d35cad181497d1e183e..947b4e2e1d4edd1be74a38c5a0f55bf5d905ef69 100644 (file)
@@ -184,7 +184,7 @@ static void cppc_cpufreq_cpu_fie_exit(struct cpufreq_policy *policy)
        }
 }
 
-static void __init cppc_freq_invariance_init(void)
+static void cppc_fie_kworker_init(void)
 {
        struct sched_attr attr = {
                .size           = sizeof(struct sched_attr),
@@ -201,17 +201,6 @@ static void __init cppc_freq_invariance_init(void)
        };
        int ret;
 
-       if (fie_disabled != FIE_ENABLED && fie_disabled != FIE_DISABLED) {
-               fie_disabled = FIE_ENABLED;
-               if (cppc_perf_ctrs_in_pcc()) {
-                       pr_info("FIE not enabled on systems with registers in PCC\n");
-                       fie_disabled = FIE_DISABLED;
-               }
-       }
-
-       if (fie_disabled)
-               return;
-
        kworker_fie = kthread_run_worker(0, "cppc_fie");
        if (IS_ERR(kworker_fie)) {
                pr_warn("%s: failed to create kworker_fie: %ld\n", __func__,
@@ -229,6 +218,22 @@ static void __init cppc_freq_invariance_init(void)
        }
 }
 
+static void __init cppc_freq_invariance_init(void)
+{
+       if (fie_disabled != FIE_ENABLED && fie_disabled != FIE_DISABLED) {
+               fie_disabled = FIE_ENABLED;
+               if (cppc_perf_ctrs_in_pcc()) {
+                       pr_info("FIE not enabled on systems with registers in PCC\n");
+                       fie_disabled = FIE_DISABLED;
+               }
+       }
+
+       if (fie_disabled)
+               return;
+
+       cppc_fie_kworker_init();
+}
+
 static void cppc_freq_invariance_exit(void)
 {
        if (fie_disabled)