Messages in this thread Patch in this message | | | From | Mario Limonciello <> | Subject | [PATCH 2/3] cpufreq: amd-pstate: Allow replacing existing cpufreq drivers when loaded | Date | Fri, 25 Mar 2022 00:42:27 -0500 |
| |
`amd-pstate` can be compiled as a module. This however can be a deficiency because `acpi-cpufreq` will be loaded earlier when compiled into the kernel meaning `amd-pstate` doesn't get a chance. `acpi-cpufreq` is also unable to be unloaded in this circumstance.
To better improve the usability of `amd-pstate` when compiled as a module, add an optional module parameter that will force it to replace other cpufreq drivers at startup.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> --- drivers/cpufreq/amd-pstate.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c index 9ce75ed11f8e..31a04e818195 100644 --- a/drivers/cpufreq/amd-pstate.c +++ b/drivers/cpufreq/amd-pstate.c @@ -63,6 +63,11 @@ module_param(shared_mem, bool, 0444); MODULE_PARM_DESC(shared_mem, "enable amd-pstate on processors with shared memory solution (false = disabled (default), true = enabled)"); +static bool replace = false; +module_param(replace, bool, 0444); +MODULE_PARM_DESC(replace, + "replace other cpufreq drivers upon init if necessary"); + static struct cpufreq_driver amd_pstate_driver; /** @@ -598,9 +603,11 @@ static int __init amd_pstate_init(void) return -ENODEV; } - /* don't keep reloading if cpufreq_driver exists */ - if (cpufreq_get_current_driver()) - return -EEXIST; + if (cpufreq_get_current_driver()) { + ret = replace ? cpufreq_unregister_driver(NULL) : -EEXIST; + if (ret) + return ret; + } /* capability check */ if (boot_cpu_has(X86_FEATURE_CPPC)) { -- 2.34.1
| |