2023-06-25 21:11:52 +00:00
|
|
|
{ config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
2024-06-26 06:55:30 +00:00
|
|
|
inherit (lib) mkEnableOption mkIf mkMerge;
|
2023-06-25 21:11:52 +00:00
|
|
|
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 [
|
|
|
|
(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"
|
|
|
|
];
|
|
|
|
})
|
|
|
|
];
|
|
|
|
}
|