mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-11-16 16:09:40 +01:00
262146dc76
Fix the problem that the edid of the built-in display only provided 60hz mode when use Hybrid Graphics It appears to be a Lenovo firmware issue and i try to fix it. This issue still reproducible on BIOS version GKCN58WW(22/12/16) Lenovo Legion 5 Pro is a laptop which support a technology called "DDG" that can allow you switch between discrete graphics mode and hybrid mode (optiums). In discrete graphics mode, the firmware provides the correct edid and anything works fine, the built-in display work well at 165hz. But if switch to hybrid mode, the firmware provides a different edid, causing the built-in display only can work at 60hz. So I extracted the edid file of discrete graphics mode and override the edid that built-in display provide to solve this problem. Co-Authored-By: Jörg Thalheim <Mic92@users.noreply.github.com>
15 lines
No EOL
499 B
Nix
15 lines
No EOL
499 B
Nix
{ config, pkgs, lib, ...}:
|
|
|
|
let
|
|
# This file was obtained from the display while "DDG" mode was enabled.
|
|
chip_edid = pkgs.runCommandNoCC "chip_edid" { } ''
|
|
mkdir -p $out/lib/firmware/edid
|
|
cp ${./16ach6h.bin} $out/lib/firmware/edid/16ach6h.bin
|
|
'';
|
|
in
|
|
{
|
|
hardware.firmware = [ chip_edid ];
|
|
|
|
boot.kernelParams = [ "drm.edid_firmware=edid/16ach6h.bin" ];
|
|
boot.initrd.extraFiles."lib/firmware/edid/16ach6h.bin".source = pkgs.runCommandLocal "chip_edid" { } "cp ${./16ach6h.bin} $out";
|
|
} |