diff options
author | Leah Rowe <leah@libreboot.org> | 2025-07-13 15:21:46 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2025-07-13 15:21:46 +0100 |
commit | 122d009af149b3af83176fcf77a962bdc8b52d64 (patch) | |
tree | 3283ed01c1d2cdedf255257cbcf0849e24f54566 | |
parent | dac3d6d06aa00cbf764a60494761f74dd043a310 (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>
-rw-r--r-- | config/submodule/coreboot/default/libgfxinit/patches/0002-re-try-EDID-reading-when-it-fails.patch | 38 |
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 + |