Commit 2605e4ab authored by Lifeng Zheng's avatar Lifeng Zheng Committed by Rafael J. Wysocki
Browse files

ACPI: CPPC: Modify cppc_get_auto_sel_caps() to cppc_get_auto_sel()



Modify cppc_get_auto_sel_caps() to cppc_get_auto_sel(). Using a
cppc_perf_caps to carry the value is unnecessary.

Add a check to ensure the pointer 'enable' is not null.

Reviewed-by: default avatarPierre Gondois <pierre.gondois@arm.com>
Signed-off-by: default avatarLifeng Zheng <zhenglifeng1@huawei.com>
Reviewed-by: default avatarMario Limonciello <mario.limonciello@amd.com>
Link: https://patch.msgid.link/20250411093855.982491-8-zhenglifeng1@huawei.com


Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent ab482f1b
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -1602,23 +1602,27 @@ int cppc_set_epp_perf(int cpu, struct cppc_perf_ctrls *perf_ctrls, bool enable)
EXPORT_SYMBOL_GPL(cppc_set_epp_perf);

/**
 * cppc_get_auto_sel_caps - Read autonomous selection register.
 * @cpunum : CPU from which to read register.
 * @perf_caps : struct where autonomous selection register value is updated.
 * cppc_get_auto_sel() - Read autonomous selection register.
 * @cpu: CPU from which to read register.
 * @enable: Return address.
 */
int cppc_get_auto_sel_caps(int cpunum, struct cppc_perf_caps *perf_caps)
int cppc_get_auto_sel(int cpu, bool *enable)
{
	u64 auto_sel;
	int ret;

	ret = cppc_get_reg_val(cpunum, AUTO_SEL_ENABLE, &auto_sel);
	if (enable == NULL)
		return -EINVAL;

	ret = cppc_get_reg_val(cpu, AUTO_SEL_ENABLE, &auto_sel);
	if (ret)
		return ret;

	perf_caps->auto_sel = (bool)auto_sel;
	*enable = (bool)auto_sel;

	return 0;
}
EXPORT_SYMBOL_GPL(cppc_get_auto_sel_caps);
EXPORT_SYMBOL_GPL(cppc_get_auto_sel);

/**
 * cppc_set_auto_sel - Write autonomous selection register.
+2 −1
Original line number Diff line number Diff line
@@ -417,6 +417,7 @@ static int shmem_init_perf(struct amd_cpudata *cpudata)
	struct cppc_perf_caps cppc_perf;
	union perf_cached perf = READ_ONCE(cpudata->perf);
	u64 numerator;
	bool auto_sel;

	int ret = cppc_get_perf_caps(cpudata->cpu, &cppc_perf);
	if (ret)
@@ -438,7 +439,7 @@ static int shmem_init_perf(struct amd_cpudata *cpudata)
	if (cppc_state == AMD_PSTATE_ACTIVE)
		return 0;

	ret = cppc_get_auto_sel_caps(cpudata->cpu, &cppc_perf);
	ret = cppc_get_auto_sel(cpudata->cpu, &auto_sel);
	if (ret) {
		pr_warn("failed to get auto_sel, ret: %d\n", ret);
		return 0;
+3 −3
Original line number Diff line number Diff line
@@ -159,7 +159,7 @@ extern int cpc_read_ffh(int cpunum, struct cpc_reg *reg, u64 *val);
extern int cpc_write_ffh(int cpunum, struct cpc_reg *reg, u64 val);
extern int cppc_get_epp_perf(int cpunum, u64 *epp_perf);
extern int cppc_set_epp_perf(int cpu, struct cppc_perf_ctrls *perf_ctrls, bool enable);
extern int cppc_get_auto_sel_caps(int cpunum, struct cppc_perf_caps *perf_caps);
extern int cppc_get_auto_sel(int cpu, bool *enable);
extern int cppc_set_auto_sel(int cpu, bool enable);
extern int amd_get_highest_perf(unsigned int cpu, u32 *highest_perf);
extern int amd_get_boost_ratio_numerator(unsigned int cpu, u64 *numerator);
@@ -229,11 +229,11 @@ static inline int cppc_get_epp_perf(int cpunum, u64 *epp_perf)
{
	return -EOPNOTSUPP;
}
static inline int cppc_set_auto_sel(int cpu, bool enable)
static inline int cppc_get_auto_sel(int cpu, bool *enable)
{
	return -EOPNOTSUPP;
}
static inline int cppc_get_auto_sel_caps(int cpunum, struct cppc_perf_caps *perf_caps)
static inline int cppc_set_auto_sel(int cpu, bool enable)
{
	return -EOPNOTSUPP;
}