Hi Daniel, hi folks,
still a couple of observations from my side on this. The 1024x786x24
mode here uses a clock of 65MHz (65000kHz), if that is inserted into the
watermark computation, it computes from that a prefetch of 40 entries,
and thus a watermark level of four, which is much much too high. To get
a stable display, the watermark level can be at most eight.
However, if I program the FW_BLC register by hand, I can set the
watermark down to 32, i.e. 15(!) entries, and I still get a wonderful
stable display, scrolling and everything included.
If I compare that with what is required by intel_calculate_wm() to get
the same value, I find that the input is, in some place, off by about a
factor of two. Which could mean:
a) the latency is too high by a factor of two. Even with a latency of
2500ns, I do get a good watermark level and a stable display. The limit
is around 1500ns.
b) the I830_FIFO_LINE_SIZE is off by a factor of two. Is it really 32
bytes? Is it *measured* in bytes? With a line size twice as large, the
result would fit again.
c) Is the I830 FIFO_SIZE really 47? This is the value I get when I debug
i9xx_update_wm(). It seems the code splits the totally available fifo
(unified fifo of the 830GM) of 95 entries approximately in half for pipe
A and pipe B. Is the *unit* correct? Is the fifo size measured in *entries*?
What makes me wonder is that there is really approximately a factor of
two between the *real* limit and the value computed by the code, which
looks to me that at some point a division or multiplication by two is
missing.
Finally, a regression with the 3.15.0 code: I already had the phenomenon
that the boot console is vertically shifted, which is caused by the
pipe-a quirk (without that quirk, the display is correct), but it now
also happens from time to time that the DVO is again not clocked
correctly. The screen then goes dead in the boot console, but as soon as
X starts up, I get again a display. This display is sometimes a bit
broken (flickers, as if the frequency is about 40Hz, not 60Hz) or no
display at all. Switching to the boot console and back to X resolves the
issue. As said, disable the pipe_A quirk and we are good.
A second observation is that the boot console now reports PIPE_A (and
sometimes also) PIPE_B underruns during the bootstrap, only once. The
system recovers from this (if you call a dead boot console as above
"recovery"), so something is likely broken with the quirk. (No news, of
course).
Greetings,
Thomas
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx