These two patches are trying to fix how we handle I2C-Over_AUX transactions when sink side can only complte partial data at one time.
We encounter EDID reading error with specific monitor and cause mode list can only be lower resolutions. After analysis, the monitor will reply I2C_ACK|AUX_ACK followed by a byte indicating the read data length fewer than the requested one. Under this case, we should update the request length and request again. Code we have today doesn't handle such case. Meanwhile, how we handle Write_Status_Update_Request for I2C write over AUX transactions seems wrong as well. The request format should be address only transaction without length and data, and we don't really send it out. Further more, it should be constrained for I2C write case only. Not for I2C read request. 1st patch to fix the I2C write problem and 2nd one to fix the I2C read. --- Wayne Lin (2): drm/dp: Correct Write_Status_Update_Request handling drm/dp: Add handling for partially read under I2-readC-over-AUX drivers/gpu/drm/display/drm_dp_helper.c | 28 +++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) -- 2.43.0