Skip to content

Commit 1025bc5

Browse files
committed
nixos/nvidia: use kernel suspend notifiers if available
1 parent e99215c commit 1025bc5

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

nixos/modules/hardware/video/nvidia.nix

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ let
2020
busIDType = lib.types.strMatching "([[:print:]]+:[0-9]{1,3}(@[0-9]{1,10})?:[0-9]{1,2}:[0-9])?";
2121
ibtSupport = useOpenModules || (nvidia_x11.ibtSupport or false);
2222
settingsFormat = pkgs.formats.keyValue { };
23+
kernelSuspendNotifier = useOpenModules && lib.versionAtLeast nvidia_x11.version "595";
2324
in
2425
{
2526
options = {
@@ -592,7 +593,7 @@ in
592593
};
593594
in
594595
lib.mkMerge [
595-
(lib.mkIf cfg.powerManagement.enable {
596+
(lib.mkIf (cfg.powerManagement.enable && !kernelSuspendNotifier) {
596597
nvidia-suspend = nvidiaService "suspend";
597598
nvidia-hibernate = nvidiaService "hibernate";
598599
nvidia-resume = (nvidiaService "resume") // {
@@ -669,6 +670,9 @@ in
669670
++ lib.optional (
670671
(offloadCfg.enable || cfg.modesetting.enable) && lib.versionAtLeast nvidia_x11.version "545"
671672
) "nvidia-drm.fbdev=1"
673+
++ lib.optional (
674+
cfg.powerManagement.enable && kernelSuspendNotifier
675+
) "nvidia.NVreg_UseKernelSuspendNotifiers=1"
672676
++ lib.optional cfg.powerManagement.enable "nvidia.NVreg_PreserveVideoMemoryAllocations=1"
673677
++ lib.optional useOpenModules "nvidia.NVreg_OpenRmEnableUnsupportedGpus=1"
674678
++ lib.optional (config.boot.kernelPackages.kernel.kernelAtLeast "6.2" && !ibtSupport) "ibt=off";

0 commit comments

Comments
 (0)