From ed5623f40f22b3e4f2d87110e268be55aa83e99d Mon Sep 17 00:00:00 2001 From: Liav A Date: Sat, 5 Mar 2022 22:36:31 +0200 Subject: [PATCH] Kernel/Graphics: Override first byte of the EDID in Intel Native driver --- Kernel/Graphics/Intel/NativeGraphicsAdapter.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Kernel/Graphics/Intel/NativeGraphicsAdapter.cpp b/Kernel/Graphics/Intel/NativeGraphicsAdapter.cpp index d018b7b2a6..3c3fae30ba 100644 --- a/Kernel/Graphics/Intel/NativeGraphicsAdapter.cpp +++ b/Kernel/Graphics/Intel/NativeGraphicsAdapter.cpp @@ -378,6 +378,10 @@ void IntelNativeGraphicsAdapter::gmbus_read_edid() SpinlockLocker control_lock(m_control_lock); gmbus_write(DDC2_I2C_ADDRESS, 0); gmbus_read(DDC2_I2C_ADDRESS, (u8*)&m_crt_edid_bytes, sizeof(m_crt_edid_bytes)); + // FIXME: It seems like the returned EDID is almost correct, + // but the first byte is set to 0xD0 instead of 0x00. + // For now, this "hack" works well enough. + m_crt_edid_bytes[0] = 0x0; } if (auto parsed_edid = EDID::Parser::from_bytes({ m_crt_edid_bytes, sizeof(m_crt_edid_bytes) }); !parsed_edid.is_error()) { m_crt_edid = parsed_edid.release_value();