mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-12-19 08:09:45 +01:00
59 lines
1.5 KiB
Nix
59 lines
1.5 KiB
Nix
|
{ config,
|
||
|
lib,
|
||
|
pkgs,
|
||
|
...
|
||
|
}:
|
||
|
|
||
|
let
|
||
|
inherit (lib) mkDefault mkEnableOption mkIf mkMerge;
|
||
|
cfg = config.hardware.asus.zephyrus.ga402x;
|
||
|
|
||
|
in {
|
||
|
imports = [
|
||
|
../shared.nix
|
||
|
];
|
||
|
|
||
|
options.hardware.asus.zephyrus.ga402x.amdgpu = {
|
||
|
recovery.enable = (mkEnableOption "Enable amdgpu.gpu_recovery kernel boot param") // { default = false; };
|
||
|
sg_display.enable = (mkEnableOption "Enable amdgpu.gpu_recovery kernel boot param") // { default = true; };
|
||
|
psr.enable = (mkEnableOption "Enable amdgpu.dcdebugmask=0x10 kernel boot param") // { default = true; };
|
||
|
};
|
||
|
|
||
|
config = mkMerge [
|
||
|
{
|
||
|
# AMD RX680
|
||
|
services.xserver.videoDrivers = mkDefault [ "amdgpu" ];
|
||
|
|
||
|
hardware = {
|
||
|
amdgpu.loadInInitrd = true;
|
||
|
opengl.extraPackages = with pkgs; [
|
||
|
vaapiVdpau
|
||
|
libvdpau-va-gl
|
||
|
];
|
||
|
};
|
||
|
}
|
||
|
|
||
|
(mkIf cfg.amdgpu.recovery.enable {
|
||
|
# Hopefully fixes for where the kernel sometimes hangs when suspending or hibernating
|
||
|
# (Though, I'm very suspicious of the Mediatek Wifi...)
|
||
|
boot.kernelParams = [
|
||
|
"amdgpu.gpu_recovery=1"
|
||
|
];
|
||
|
})
|
||
|
|
||
|
(mkIf (!cfg.amdgpu.sg_display.enable) {
|
||
|
# Can help solve flickering/glitching display issues since Scatter/Gather code was reenabled
|
||
|
boot.kernelParams = [
|
||
|
"amdgpu.sg_display=0"
|
||
|
];
|
||
|
})
|
||
|
|
||
|
(mkIf (!cfg.amdgpu.psr.enable) {
|
||
|
# Can help solve flickering/glitching display issues since Scatter/Gather code was reenabled
|
||
|
boot.kernelParams = [
|
||
|
"amdgpu.dcdebugmask=0x10"
|
||
|
];
|
||
|
})
|
||
|
];
|
||
|
}
|