<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - [drm-openchrome] Commit 484c66c400daa76bd6840f195e8effa9d39dfb3c breaks KMS on VX900 with HDMI"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=65591">65591</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>openchrome-devel@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[drm-openchrome] Commit 484c66c400daa76bd6840f195e8effa9d39dfb3c breaks KMS on VX900 with HDMI
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>major
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>bugs.freedesktop.org@hardfalcon.net
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Driver/openchrome
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>xorg
          </td>
        </tr></table>
      <p>
        <div>
        <pre>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.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>