MGA: implementing support for G550 dual-dvi

Tilman Sauerbeck tilman at
Tue Jan 2 07:33:46 PST 2007

I'm trying to implement support for G550's dual dvi feature in the MGA
driver. It seems I got it figured out mostly:
The G450 DH code that is in the driver now (mga_dh.c) works for dual-dvi
in general. Differences are that the 2nd TMDS uses the video PLL
(VID_PLL) for timing. Our driver miscalculates the PLL parameters for
that one, but once you fix them up and power on the 2nd TMDS, you get a
picture on the 2nd head.

The issue that remains is that when I enable CRTC2, the image on the
second head is always misaligned.
Say the expected picture is this:


It's off by zero pixels horizontally and zero pixels vertically.

Now when I enable CRTC2, I get a random offset both horizontally and
vertically. So I might get this eg:

-----      -----
|456|      |321|
|789| or   |654|   or ...
|123|      |987|
-----      -----

The framebuffer is set up correctly, there's no distortions or any
other weirdness in the displayed image except this one.

This is also reproducable with Matrox' official drivers. When I try to
disable and re-enable CRTC2 with my code, I get the same misalignments.
Which means it's not some register that just isn't initialized at all.

Does that look familiar to anyone? Any ideas what this could be related


A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <>

More information about the xorg mailing list