diff options
| author | Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com> | 2024-10-17 10:05:29 +0000 | 
|---|---|---|
| committer | Mario Limonciello <mario.limonciello@amd.com> | 2024-10-28 14:54:35 -0500 | 
| commit | e3591eebeca78117ce1d07985d42b75e6506252a (patch) | |
| tree | 1d39aada127ea0430d72c48fd5764a8def17fc3d | |
| parent | 6f241fa50a1a45018d01f2d79a122eb519618f0e (diff) | |
cpufreq/amd-pstate: Call amd_pstate_set_driver() in amd_pstate_register_driver()
Replace a similar chunk of code in amd_pstate_register_driver() with
amd_pstate_set_driver() call.
Signed-off-by: Dhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://lore.kernel.org/r/20241017100528.300143-3-Dhananjay.Ugwekar@amd.com
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
| -rw-r--r-- | drivers/cpufreq/amd-pstate.c | 47 | 
1 files changed, 22 insertions, 25 deletions
| diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c index 856f0d11983e..5155fc0019df 100644 --- a/drivers/cpufreq/amd-pstate.c +++ b/drivers/cpufreq/amd-pstate.c @@ -1191,16 +1191,32 @@ static void amd_pstate_driver_cleanup(void)  	current_pstate_driver = NULL;  } +static int amd_pstate_set_driver(int mode_idx) +{ +	if (mode_idx >= AMD_PSTATE_DISABLE && mode_idx < AMD_PSTATE_MAX) { +		cppc_state = mode_idx; +		if (cppc_state == AMD_PSTATE_DISABLE) +			pr_info("driver is explicitly disabled\n"); + +		if (cppc_state == AMD_PSTATE_ACTIVE) +			current_pstate_driver = &amd_pstate_epp_driver; + +		if (cppc_state == AMD_PSTATE_PASSIVE || cppc_state == AMD_PSTATE_GUIDED) +			current_pstate_driver = &amd_pstate_driver; + +		return 0; +	} + +	return -EINVAL; +} +  static int amd_pstate_register_driver(int mode)  {  	int ret; -	if (mode == AMD_PSTATE_PASSIVE || mode == AMD_PSTATE_GUIDED) -		current_pstate_driver = &amd_pstate_driver; -	else if (mode == AMD_PSTATE_ACTIVE) -		current_pstate_driver = &amd_pstate_epp_driver; -	else -		return -EINVAL; +	ret = amd_pstate_set_driver(mode); +	if (ret) +		return ret;  	cppc_state = mode; @@ -1726,25 +1742,6 @@ static struct cpufreq_driver amd_pstate_epp_driver = {  	.attr		= amd_pstate_epp_attr,  }; -static int __init amd_pstate_set_driver(int mode_idx) -{ -	if (mode_idx >= AMD_PSTATE_DISABLE && mode_idx < AMD_PSTATE_MAX) { -		cppc_state = mode_idx; -		if (cppc_state == AMD_PSTATE_DISABLE) -			pr_info("driver is explicitly disabled\n"); - -		if (cppc_state == AMD_PSTATE_ACTIVE) -			current_pstate_driver = &amd_pstate_epp_driver; - -		if (cppc_state == AMD_PSTATE_PASSIVE || cppc_state == AMD_PSTATE_GUIDED) -			current_pstate_driver = &amd_pstate_driver; - -		return 0; -	} - -	return -EINVAL; -} -  /*   * CPPC function is not supported for family ID 17H with model_ID ranging from 0x10 to 0x2F.   * show the debug message that helps to check if the CPU has CPPC support for loading issue. | 
