[PATCH] xf86SetDesiredModes enhancements

Jesse Barnes jbarnes at virtuousgeek.org
Mon Mar 17 11:17:40 PDT 2008

Ok, I'm hoping this one is good enough since I'd really like to be done with 
it. :)

Currently, xf86SetDesiredModes disables all outputs & CRTCs before doing 
anything so subsequent modesetting occurs with a known configuration.  This 
is important since it's called both at startup and EnterVT time typically.

Disabling the outputs & CRTCs has the nasty side-effect of causing flicker on 
attached displays, however, so it would be nice if we had a less blunt method 
for getting the current config.

So the server part of this patchset adds a new callback, ->get_crtc, to the 
xf86OutputFuncs structure.  The new xf86GetCurrentConfig routine uses this 
callback to build an accurate picture of which CRTCs are mapped to which 
outputs (or NULL if the output is currently disabled) and which outputs are 
currently active.  The call to xf86GetCurrentConfig replaces the output & 
CRTC DPMS off calls, which eliminates one set of flicker from the startup & 
VT switch code paths.

The Intel part of this patch provides an example of how to use the new 
interface, and removes another source of mode setting flicker.  Unlike the 
last patchset, this version leaves one LVDS off->on cycle in place, due to 
the call to xf86DisableUnusedFunctions in the load detection code.

Assuming this looks good, it would be nice to see some reports of testing with 
other drivers before I push it.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: xserver-randr-get-crtc-config.patch
Type: text/x-diff
Size: 2713 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20080317/819b64f3/attachment.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: i830-no-flicker-4.patch
Type: text/x-diff
Size: 7307 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20080317/819b64f3/attachment-0001.patch>

More information about the xorg mailing list