Hi Daniel, hi folks,
after another evening of debugging, I believe I know now how to prevent
the ns2501 DVO from locking up. It rather seems that this is due to a
bug in the intel_display module, in specific in the pll update function.
That is, edit intel_display.c, function i8xx_update_dll(), and insert
the following lines to setup the PLL value:
if (inten_pipe_has_type(&crtc->base,INTEL_OUTPUT_DVO)) {
dpll |= DPLL_DVO_HIGH_SPEED;
}
This is actually pretty much the same logic as in the i9xx setup, and
this is the very same bit the ns2501 "hack" logic sets to enable the
DVO. With this patch, I no longer see that the ns2501 hack actually has
to re-activate the DVO, it just continues to run in all modes (1024x768
to 640x480).
There might still be a catch with external monitors connected, I'm not
quite sure how this works. Screen duplication with 1024x768 and 800x600
works, but it does not work with 640x480 for reasons not quite clear to
me. Maybe the DVO sits then on pipe B and the update logic is not called
correctly, or the DVO does not need the high-speed flag in this specific
case. Also, during bootup, the external monitor flickers as if the
"watermark" levels are not set correctly. This goes away as soon as X
starts up.
But anyhow, at least I believe the problem for the DVO "lockup" issue is
found. The above patch probably needs to go into some other functions
that modify the PLL settings.
I will try how much of the "ns2501 dvo hack" can now go away. It should
hopefully no longer be necessary.
Greetings,
Thomas
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx