mirror of
https://github.com/RGBCube/serenity
synced 2025-05-28 19:25:10 +00:00
Kernel: Fix a long-standing problem with GMBus in Intel Grahpics code
Thanks to Andrew Kaster, which gave a review back in October, about a big PR I opened (#15502), I managed to figure out why we always had a problem with the first byte being read into the EDID buffer with the GMBus code. It turns out that this simple invalid cast was making the entire problem and using the correct AK::Array::data() method fixed this notorious long standing problem for good.
This commit is contained in:
parent
5220afcf73
commit
ddc5c41253
1 changed files with 1 additions and 5 deletions
|
@ -418,11 +418,7 @@ void IntelNativeDisplayConnector::gmbus_read_edid()
|
|||
{
|
||||
SpinlockLocker control_lock(m_control_lock);
|
||||
gmbus_write(DDC2_I2C_ADDRESS, 0);
|
||||
gmbus_read(DDC2_I2C_ADDRESS, (u8*)&crt_edid_bytes, sizeof(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.
|
||||
crt_edid_bytes[0] = 0x0;
|
||||
gmbus_read(DDC2_I2C_ADDRESS, crt_edid_bytes.data(), crt_edid_bytes.size());
|
||||
}
|
||||
set_edid_bytes(crt_edid_bytes);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue