[drm-openchrome] Commit 484c66c400daa76bd6840f195e8effa9d39dfb3c breaks KMS on VX900 with HDMI
Submitted by Pascal Ernster
Assigned to Openchrome development list
Description
With commit 484c66c400daa76bd6840f195e8effa9d39dfb3c, the following change (among others) was introduced in the file drivers/gpu/drm/via/via_hdmi.c:
@@ -432,8 +433,8 @@ via_ddc_read_bytes_by_hdmi(struct drm_via_private *dev_priv, unsigned char *bloc if (status) status = via_check_hdmi_i2c_status(dev_priv, 0x0008, true);
- /* Offset - always read at start of buffer */
- temp = 0;
- /* Offset */
- temp = offset; temp <<= 16; temp |= VIA_READ(0xC0B4) & 0xFF00FFFF; VIA_WRITE(0xC0B4, temp);
This breaks KMS on my VX900, the (1920x1080 HDMI) display goes blank/into standby mode immediately after the module was loaded (from initrd). Changing the line temp = offset; back to temp = 0; fixes the problem (but of course this renders the offset parameter of the function useless).
My guess is that line 525 in the same file needs to be changed from offset = (valid_extensions + 1) * EDID_LENGTH; to offset = (valid_extensions) * EDID_LENGTH;
I haven't tested this, though.
Version: git