[2/5] cpufreq: amd-pstate: change amd-pstate driver to be built-in type

Message ID 20221117024955.3319484-3-Perry.Yuan@amd.com
State New
Headers
Series AMD Pstate driver Urgent Change |

Commit Message

Yuan, Perry Nov. 17, 2022, 2:49 a.m. UTC
  Currently when the amd-pstate and acpi_cpufreq are both built into
kernel as module driver, amd-pstate will not be loaded by default
in this case.

Change amd-pstate driver as built-in type, it will resolve the loading
sequence problem to allow user to make amd-pstate driver as the default
cpufreq scaling driver.

Fixes: ec437d71db77 ("cpufreq: amd-pstate: Introduce a new AMD P-State driver to support future processors")
Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>
---
 drivers/cpufreq/Kconfig.x86  |  2 +-
 drivers/cpufreq/amd-pstate.c | 11 +----------
 2 files changed, 2 insertions(+), 11 deletions(-)
  

Comments

Gautham R. Shenoy Nov. 17, 2022, 4:09 a.m. UTC | #1
On Thu, Nov 17, 2022 at 10:49:52AM +0800, Perry Yuan wrote:
> Currently when the amd-pstate and acpi_cpufreq are both built into
> kernel as module driver, amd-pstate will not be loaded by default
> in this case.
> 
> Change amd-pstate driver as built-in type, it will resolve the loading
> sequence problem to allow user to make amd-pstate driver as the default
> cpufreq scaling driver.
> 
> Fixes: ec437d71db77 ("cpufreq: amd-pstate: Introduce a new AMD P-State driver to support future processors")
> Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>

Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com>

> ---
>  drivers/cpufreq/Kconfig.x86  |  2 +-
>  drivers/cpufreq/amd-pstate.c | 11 +----------
>  2 files changed, 2 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86
> index 310779b07daf..00476e94db90 100644
> --- a/drivers/cpufreq/Kconfig.x86
> +++ b/drivers/cpufreq/Kconfig.x86
> @@ -35,7 +35,7 @@ config X86_PCC_CPUFREQ
>  	  If in doubt, say N.
>  
>  config X86_AMD_PSTATE
> -	tristate "AMD Processor P-State driver"
> +	bool "AMD Processor P-State driver"
>  	depends on X86 && ACPI
>  	select ACPI_PROCESSOR
>  	select ACPI_CPPC_LIB if X86_64
> diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> index d844c6f97caf..701f49d6d240 100644
> --- a/drivers/cpufreq/amd-pstate.c
> +++ b/drivers/cpufreq/amd-pstate.c
> @@ -663,16 +663,7 @@ static int __init amd_pstate_init(void)
>  
>  	return ret;
>  }
> -
> -static void __exit amd_pstate_exit(void)
> -{
> -	cpufreq_unregister_driver(&amd_pstate_driver);
> -
> -	amd_pstate_enable(false);
> -}
> -
> -module_init(amd_pstate_init);
> -module_exit(amd_pstate_exit);
> +device_initcall(amd_pstate_init);
>  
>  MODULE_AUTHOR("Huang Rui <ray.huang@amd.com>");
>  MODULE_DESCRIPTION("AMD Processor P-state Frequency Driver");
> -- 
> 2.25.1
>
  
Wyes Karny Nov. 17, 2022, 5:04 a.m. UTC | #2
On 11/17/2022 8:19 AM, Perry Yuan wrote:
> Currently when the amd-pstate and acpi_cpufreq are both built into
> kernel as module driver, amd-pstate will not be loaded by default
> in this case.
> 
> Change amd-pstate driver as built-in type, it will resolve the loading
> sequence problem to allow user to make amd-pstate driver as the default
> cpufreq scaling driver.
> 
> Fixes: ec437d71db77 ("cpufreq: amd-pstate: Introduce a new AMD P-State driver to support future processors")
> Signed-off-by: Perry Yuan <Perry.Yuan@amd.com>

Tested-by: Wyes Karny <wyes.karny@amd.com>

> ---
>  drivers/cpufreq/Kconfig.x86  |  2 +-
>  drivers/cpufreq/amd-pstate.c | 11 +----------
>  2 files changed, 2 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86
> index 310779b07daf..00476e94db90 100644
> --- a/drivers/cpufreq/Kconfig.x86
> +++ b/drivers/cpufreq/Kconfig.x86
> @@ -35,7 +35,7 @@ config X86_PCC_CPUFREQ
>  	  If in doubt, say N.
>  
>  config X86_AMD_PSTATE
> -	tristate "AMD Processor P-State driver"
> +	bool "AMD Processor P-State driver"
>  	depends on X86 && ACPI
>  	select ACPI_PROCESSOR
>  	select ACPI_CPPC_LIB if X86_64
> diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> index d844c6f97caf..701f49d6d240 100644
> --- a/drivers/cpufreq/amd-pstate.c
> +++ b/drivers/cpufreq/amd-pstate.c
> @@ -663,16 +663,7 @@ static int __init amd_pstate_init(void)
>  
>  	return ret;
>  }
> -
> -static void __exit amd_pstate_exit(void)
> -{
> -	cpufreq_unregister_driver(&amd_pstate_driver);
> -
> -	amd_pstate_enable(false);
> -}
> -
> -module_init(amd_pstate_init);
> -module_exit(amd_pstate_exit);
> +device_initcall(amd_pstate_init);
>  
>  MODULE_AUTHOR("Huang Rui <ray.huang@amd.com>");
>  MODULE_DESCRIPTION("AMD Processor P-state Frequency Driver");
  

Patch

diff --git a/drivers/cpufreq/Kconfig.x86 b/drivers/cpufreq/Kconfig.x86
index 310779b07daf..00476e94db90 100644
--- a/drivers/cpufreq/Kconfig.x86
+++ b/drivers/cpufreq/Kconfig.x86
@@ -35,7 +35,7 @@  config X86_PCC_CPUFREQ
 	  If in doubt, say N.
 
 config X86_AMD_PSTATE
-	tristate "AMD Processor P-State driver"
+	bool "AMD Processor P-State driver"
 	depends on X86 && ACPI
 	select ACPI_PROCESSOR
 	select ACPI_CPPC_LIB if X86_64
diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index d844c6f97caf..701f49d6d240 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -663,16 +663,7 @@  static int __init amd_pstate_init(void)
 
 	return ret;
 }
-
-static void __exit amd_pstate_exit(void)
-{
-	cpufreq_unregister_driver(&amd_pstate_driver);
-
-	amd_pstate_enable(false);
-}
-
-module_init(amd_pstate_init);
-module_exit(amd_pstate_exit);
+device_initcall(amd_pstate_init);
 
 MODULE_AUTHOR("Huang Rui <ray.huang@amd.com>");
 MODULE_DESCRIPTION("AMD Processor P-state Frequency Driver");