summaryrefslogtreecommitdiff
path: root/config/submodule
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2025-07-13 15:21:46 +0100
committerLeah Rowe <leah@libreboot.org>2025-07-13 15:21:46 +0100
commit122d009af149b3af83176fcf77a962bdc8b52d64 (patch)
tree3283ed01c1d2cdedf255257cbcf0849e24f54566 /config/submodule
parentdac3d6d06aa00cbf764a60494761f74dd043a310 (diff)
coreboot/default: probe EDID twice in libgfxinit
this mitigates buggy video converters e.g. displayport to hdmi, where sometimes the display doesn't come up. sometimes you have to probe them twice. this is apparently what linux does, according to nicholas chin's interpretation. this is a really quick and dirty patch that worked for Noisytoot on IRC, tested on their Dell OptiPlex 5050 SFF which they are porting; the port otherwise works, and this patch enables them to use their displayport adapter. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'config/submodule')
-rw-r--r--config/submodule/coreboot/default/libgfxinit/patches/0002-re-try-EDID-reading-when-it-fails.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/config/submodule/coreboot/default/libgfxinit/patches/0002-re-try-EDID-reading-when-it-fails.patch b/config/submodule/coreboot/default/libgfxinit/patches/0002-re-try-EDID-reading-when-it-fails.patch
new file mode 100644
index 00000000..889218fe
--- /dev/null
+++ b/config/submodule/coreboot/default/libgfxinit/patches/0002-re-try-EDID-reading-when-it-fails.patch
@@ -0,0 +1,38 @@
+From cbac507d93dc357a75ccc11fdda5c7ed60935538 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <leah@libreboot.org>
+Date: Sun, 13 Jul 2025 15:18:53 +0100
+Subject: [PATCH 1/1] re-try EDID reading when it fails
+
+some video converters are a bit buggy and have to be
+probed twice; linux works fine, but in these cases,
+coreboot won't set up the display.
+
+try it twice, to mitigate, when probing the EDID
+
+This entire function should probably be rewritten, since
+it's buggy in general.
+
+Signed-off-by: Leah Rowe <leah@libreboot.org>
+---
+ common/hw-gfx-gma-display_probing.adb | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/common/hw-gfx-gma-display_probing.adb b/common/hw-gfx-gma-display_probing.adb
+index 67f8ddf..0500217 100644
+--- a/common/hw-gfx-gma-display_probing.adb
++++ b/common/hw-gfx-gma-display_probing.adb
+@@ -122,6 +122,11 @@ is
+ Read_EDID (Raw_EDID, Port, Success);
+ end if;
+
++ if not Success then
++ Panel.Wait_On (Config_Helpers.To_Panel (Port));
++ Read_EDID (Raw_EDID, Port, Success);
++ end if;
++
+ if Success and then
+ ((not Is_DVI_I (Port) or EDID.Compatible_Display
+ (Raw_EDID, Config_Helpers.To_Display_Type (Port))) and
+--
+2.39.5
+