[Intel-gfx] 830GM still woes

Thomas Richter richter at rus.uni-stuttgart.de
Thu May 29 16:10:43 CEST 2014


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





More information about the Intel-gfx mailing list