Merge branch 'master' into lenovo-legion-16ach6h

This commit is contained in:
ChaosAttractor 2022-12-19 23:10:30 +08:00
commit 8d2e13c847
2 changed files with 46 additions and 22 deletions

View file

@ -1,10 +1,22 @@
{ lib, config, ... }: { { lib, config, ... }:
let
kver = config.boot.kernelPackages.kernel.version;
in
{
# Enables the amd cpu scaling https://www.kernel.org/doc/html/latest/admin-guide/pm/amd-pstate.html # Enables the amd cpu scaling https://www.kernel.org/doc/html/latest/admin-guide/pm/amd-pstate.html
# On recent AMD CPUs this can be more energy efficient. # On recent AMD CPUs this can be more energy efficient.
imports = [ ./. ]; imports = [ ./. ];
boot = lib.mkIf (lib.versionAtLeast config.boot.kernelPackages.kernel.version "5.17") { boot = lib.mkMerge [
(lib.mkIf (
(lib.versionAtLeast kver "5.17")
&& (lib.versionOlder kver "6.1")
) {
kernelParams = [ "initcall_blacklist=acpi_cpufreq_init" ]; kernelParams = [ "initcall_blacklist=acpi_cpufreq_init" ];
kernelModules = [ "amd-pstate" ]; kernelModules = [ "amd-pstate" ];
}; })
(lib.mkIf (lib.versionAtLeast kver "6.1") {
kernelParams = [ "amd_pstate=passive" ];
})
];
} }

View file

@ -1,8 +1,15 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
{ {
boot.initrd.kernelModules = [ "amdgpu" ]; options.hardware.amdgpu.loadInInitrd = lib.mkEnableOption (lib.mdDoc
services.xserver.videoDrivers = [ "amdgpu" ]; "loading `amdgpu` kernelModule at stage 1. (Add `amdgpu` to `boot.initrd.kernelModules`)"
) // {
default = true;
};
config = lib.mkMerge [
{
services.xserver.videoDrivers = lib.mkDefault [ "amdgpu" ];
hardware.opengl.extraPackages = with pkgs; [ hardware.opengl.extraPackages = with pkgs; [
rocm-opencl-icd rocm-opencl-icd
@ -21,3 +28,8 @@
environment.variables.AMD_VULKAN_ICD = lib.mkDefault "RADV"; environment.variables.AMD_VULKAN_ICD = lib.mkDefault "RADV";
} }
(lib.mkIf config.hardware.amdgpu.loadInInitrd {
boot.initrd.kernelModules = [ "amdgpu" ];
})
];
}