linux/common-config: replace simplefb with simpledrm

Arch and Fedora have been shipping it for a while now, we should
probably join them in the happy non-fbdev future. Legacy fbdev
drivers are still enabled for now, so non-simpledrm-friendly
devices don't break.
This commit is contained in:
K900 2024-03-23 14:16:11 +03:00
parent cb39b35304
commit 1ed5df1e70

View File

@ -392,8 +392,8 @@ let
FRAMEBUFFER_CONSOLE_ROTATION = yes; FRAMEBUFFER_CONSOLE_ROTATION = yes;
FRAMEBUFFER_CONSOLE_DETECT_PRIMARY = yes; FRAMEBUFFER_CONSOLE_DETECT_PRIMARY = yes;
FB_GEODE = mkIf (stdenv.hostPlatform.system == "i686-linux") yes; FB_GEODE = mkIf (stdenv.hostPlatform.system == "i686-linux") yes;
# On 5.14 this conflicts with FB_SIMPLE. # Use simplefb on older kernels where we don't have simpledrm (enabled below)
DRM_SIMPLEDRM = whenAtLeast "5.14" no; FB_SIMPLE = whenOlder "5.15" yes;
DRM_FBDEV_EMULATION = yes; DRM_FBDEV_EMULATION = yes;
}; };
@ -409,10 +409,19 @@ let
video = let video = let
whenHasDevicePrivate = mkIf (!stdenv.isx86_32 && versionAtLeast version "5.1"); whenHasDevicePrivate = mkIf (!stdenv.isx86_32 && versionAtLeast version "5.1");
in { in {
# compile in DRM so simpledrm can load before initrd if necessary
AGP = yes;
DRM = yes;
DRM_LEGACY = whenOlder "6.8" no; DRM_LEGACY = whenOlder "6.8" no;
NOUVEAU_LEGACY_CTX_SUPPORT = whenBetween "5.2" "6.3" no; NOUVEAU_LEGACY_CTX_SUPPORT = whenBetween "5.2" "6.3" no;
# Enable simpledrm and use it for generic framebuffer
# Technically added in 5.14, but adding more complex configuration is not worth it
DRM_SIMPLEDRM = whenAtLeast "5.15" yes;
SYSFB_SIMPLEFB = whenAtLeast "5.15" yes;
# Allow specifying custom EDID on the kernel command line # Allow specifying custom EDID on the kernel command line
DRM_LOAD_EDID_FIRMWARE = yes; DRM_LOAD_EDID_FIRMWARE = yes;
VGA_SWITCHEROO = yes; # Hybrid graphics support VGA_SWITCHEROO = yes; # Hybrid graphics support
@ -1178,11 +1187,6 @@ let
CMA_DEBUGFS = yes; CMA_DEBUGFS = yes;
CMA_SYSFS = yes; CMA_SYSFS = yes;
# Many ARM SBCs hand off a pre-configured framebuffer.
# This always can can be replaced by the actual native driver.
# Keeping it a built-in ensures it will be used if possible.
FB_SIMPLE = yes;
# https://docs.kernel.org/arch/arm/mem_alignment.html # https://docs.kernel.org/arch/arm/mem_alignment.html
# tldr: # tldr:
# when buggy userspace code emits illegal misaligned LDM, STM, # when buggy userspace code emits illegal misaligned LDM, STM,