<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - legacy modesetting removal breaks CLE266"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=96397#c20">Comment # 20</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - legacy modesetting removal breaks CLE266"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=96397">bug 96397</a>
              from <span class="vcard"><a class="email" href="mailto:kevinbrace@gmx.com" title="Kevin Brace <kevinbrace@gmx.com>"> <span class="fn">Kevin Brace</span></a>
</span></b>
        <pre>(In reply to Xavier Bachelot from <a href="show_bug.cgi?id=96397#c18">comment #18</a>)

Hi Xavier,

<span class="quote">> This might indeed be related to TV out. If I disable the call to via_tv_init
> in via_outputs.c (with 0.4.169), I get a working display without manually
> setting crtc registers 6b and 6c.
> In this case, 3d5.6b = 0x04 and 3d5.6c = 0x00.</span >

I searched through OpenChrome source code, and I did not think the code ran
through the portion that explicitly uses "division by 2" mode in your case.
3X5.6B[7:6] is set inside VT1621ModeCrtc and VT1622ModeCrtc function inside
via_vt162x.c.
Since both of these functions should display a message identifying that the
code is running those functions (i.e., Xorg.0.log message identifying
VT1621ModeCrtc or VT1622ModeCrtc), but I did not see it in the log file you
attached.
CH7xxxModeCrtc function inside via_ch7xxx.c also can change this field, but
since you did not run the code with Chrontel encoder, it will not execute this
code.
   In my situation, the log file I uploaded is with EPIA-M (same as yours)
mainboard with only VGA.
TV out will cause a hang during boot, so I did not bother with it.
You may want to take a look at the BIOS setup, and find the area where you can
specify what type of display device is connected to the chipset.
Currently OpenChrome relies on this BIOS based interface (the BIOS writes the
settings to what VIA calls scratch pad register; CR3A - CR3F) for non-I2C bus
FP screen resolution detection.
James Simmons using this in the sort of forgotten OpenChrome DRM / KMS module,
so I fully activated this functionality in a commit I made around late March
2016.

<a href="https://cgit.freedesktop.org/openchrome/xf86-video-openchrome/commit/?id=aba5302d9017e3ed993909cafdd1ff5b7b39779d">https://cgit.freedesktop.org/openchrome/xf86-video-openchrome/commit/?id=aba5302d9017e3ed993909cafdd1ff5b7b39779d</a>

This was really critical to use these registers since there are so many non-I2C
bus FP out there, and this is the only reason OpenChrome is currently working
okay without the use of that big "known device table" that used exist until
Version 0.3.3.
    It appears that for non-TV out use (i.e., VGA), 3X5.6B[7:6] appears not to
be touched by OpenChrome.
I think this register should be set when IGA1 mode setting is done regardless
of what display device is connected.
As an alternative, we can let individual display output device mode setting
routines to handle this (i.e., VGA and in the future, DVI).</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>