[Intel-gfx] Questions on display pipes on 835GM

Thomas Richter thor at math.tu-berlin.de
Sat Oct 5 10:33:44 CEST 2013

Hi Daniel, hi folks,

just playing again with the support code for the NS2501 DVO in my old 
laptop. Despite finding one bug I'll send a patch
for soon, there is something else that makes we wonder, and that is the 
connection to external monitors.

Just to remind you, the NS2501 in this specific laptop, or probably in 
general, seems to be clocked by parts of the
sync signal of the display pipe. If the display pipe does not deliver 
the right clock, the DVO locks up and does not
react anymore to any commands on the i2c bus. The current ns2501 DVO 
driver code thus includes a little hack that,
if it detects that the DVO remains silent, forces the pipe A DLL to the 
right values to reactivate it. This is a hack, though
it works.

Now, interesting things happen if I connect an external monitor: The 
i915 code reads the edid data from the monitor,
finds that the monitor prefers a high clock rate (here an old CRT) of 
75Hz vertical, and reconfigures the display pipe.
Interestingly, this *also* seems to modify the display pipe of the DVO 
which should actually be connected to a
different pipe. Anyhow, as now the DVO sees a clock signal out of its 
operating range (60Hz vertical) it locks up and
no display appears *on the internal* LCD. In fact, the display breaks 
down completely and all you get is a residual
display on the TFT which no longer receives refresh. If I force the 
clocking of the external monitor to 60Hz, both
displays work again. So for me it looks like the role of the display 
pipes is somehow swapped if I connect an external
monitor - it seems as if in this case either both monitors are driven by 
the same pipe (why?) of that now pipe B feeds
the DVI1 hence the DVO and the TFT, and pipe A feeds the external monitor.

Thus, here my questions:
*) Can I, within the dvo driver code, somehow detect to which display 
pipe the DVO and thus the TFT is actually connected
*) Can I somehow prohibit that the DVO is driven by *anything but* the 
60Hz signal it likes, thus to prevent the lock-up
and disable the weird hack I'm currently using?

Somehow, the logic which display pipe drives which output is still 
unclear to me. Would be great if somebody could help
me out here.


More information about the Intel-gfx mailing list