Commit 206b6612 authored by Jie Zhan's avatar Jie Zhan Committed by Viresh Kumar
Browse files

cpufreq: CPPC: Factor out cppc_fie_kworker_init()



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: default avatarLifeng Zheng <zhenglifeng1@huawei.com>
Reviewed-by: default avatarPierre Gondois <pierre.gondois@arm.com>
Signed-off-by: default avatarJie Zhan <zhanjie9@hisilicon.com>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
parent f9cadb3d
Loading
Loading
Loading
Loading
+17 −12
Original line number Diff line number Diff line
@@ -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)