[Intel-gfx] [PATCH] 835GM DLL setup

Thomas Richter thor at math.tu-berlin.de
Sun Oct 6 01:04:14 CEST 2013


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
	



More information about the Intel-gfx mailing list