Christer,
 You have the idea right but there are a couple incorrect
ideas in your answer. Here is some clarification and a way
that will probably work to fix this for everyone.

>The i815 has an extended set of registers that allows
>control of the digital output timing independently from
>the normal analog output.

They are not really "independent"...

>The XFree driver is only aware of the normal analog
>registers, and so the registers controlling the digital
>output remain at whatever values were put in there by the
>BIOS at system initialization.

This is correct. You should only change the digital timings
if you know how to change the encoder on the other end of
the dvo. They work as a pair.

>This is a nice feature which basically allows the i815 to
>output both digital and analog video at the same time,
>with different timing parameters (although they will
>both display the same framebuffer).

This isn't correct. The i815 has only one display pipe and
cannot send analog and digital at the same time with different
timings. When the dvo part is active the entire i815 is running
off a clock provided by the dvo device (the TV encoder). The
digital timings are used in this case. Also, when you are
using centering mode, the output will center the Analog timings
inside the digital timings. This allows vga compatibility
(through centering) while using the TV as your display.

So why is there a problem?

The issue is that the bios set up some timings that work best
for displaying vga on the TV. These timings are obviously not
the same for all TV encoders (or flatpanels) as the video bios
has separate, vendor supplied, modules to set of the dvo 
device. For some combinations of dvo devices and vbioses the
timings set up by XFree do not match the timings set up on the
dvo device. XFree sets the OVRACT regs based on the timings
that it set (the analog ones), but the digital ones don't seem
to like those values.

What we need to do is to set the OVRACT values based on the
values programmed into the digital timings set. (Apparently
this is not set up by the vbios since vga clients would not
be using the overlay)  It should be an easy fix if someone
wants to take a shot at it. Just convert from using the analog
HSYNC etc. to using the digital HSYNC... if the digital set
hasn't been set up it shouldn't matter since in that case the
dvo device isn't in use anyway.

 -Matt

_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to