2023-05-10 14:03:02 -04:00
|
|
|
{ lib, config, ... }:
|
2022-12-16 09:43:40 -05:00
|
|
|
let
|
2023-05-10 14:03:02 -04:00
|
|
|
kver = config.boot.kernelPackages.kernel.version;
|
2022-12-16 09:43:40 -05:00
|
|
|
in
|
|
|
|
{
|
2022-08-01 06:03:29 -04:00
|
|
|
# Enables the amd cpu scaling https://www.kernel.org/doc/html/latest/admin-guide/pm/amd-pstate.html
|
2022-08-01 08:14:12 -04:00
|
|
|
# On recent AMD CPUs this can be more energy efficient.
|
2022-07-30 12:21:03 -04:00
|
|
|
|
|
|
|
imports = [ ./. ];
|
2022-12-16 09:43:40 -05:00
|
|
|
boot = lib.mkMerge [
|
2023-05-10 14:03:02 -04:00
|
|
|
(lib.mkIf
|
|
|
|
(
|
|
|
|
(lib.versionAtLeast kver "5.17")
|
|
|
|
&& (lib.versionOlder kver "6.1")
|
|
|
|
)
|
|
|
|
{
|
|
|
|
kernelParams = [ "initcall_blacklist=acpi_cpufreq_init" ];
|
|
|
|
kernelModules = [ "amd-pstate" ];
|
|
|
|
})
|
|
|
|
(lib.mkIf
|
|
|
|
(
|
|
|
|
(lib.versionAtLeast kver "6.1")
|
|
|
|
&& (lib.versionOlder kver "6.3")
|
|
|
|
)
|
|
|
|
{
|
|
|
|
kernelParams = [ "amd_pstate=passive" ];
|
|
|
|
})
|
|
|
|
(lib.mkIf (lib.versionAtLeast kver "6.3") {
|
|
|
|
kernelParams = [ "amd_pstate=active" ];
|
2022-12-16 09:43:40 -05:00
|
|
|
})
|
|
|
|
];
|
2022-07-30 12:21:03 -04:00
|
|
|
}
|