summaryrefslogtreecommitdiff
path: root/src/i830_crt.c
AgeCommit message (Collapse)Author
2007-03-04Support new CRTC/Output prepare/commit hooks.Keith Packard
New hooks replace explicit invocation of DPMS functions to manage mode setting sequencing.
2007-02-16Change rotation pixmap creation API to permit start-time rotation.Keith Packard
Start time rotation requires that the pixmap be created after the server has initialized the screens. Delay the pixmap creation until the first block handler invocation.
2007-01-16Interim work on rotation support with new xf86 code.Keith Packard
Yes, there are lots of bits tied together here, and we should split this patch apart. Move I830 mode setting to xf86 mode setting. Make mode setting function also set the base address. This should fix problems where the base gets set incorrectly at times. Add driver-independent rotation support, requires driver-specific hooks for shadow pixmap allocation, otherwise it uses Render for painting.
2007-01-15Convert I830PipeSetMode to xf86CrtcSetMode. Add rotation structures.Keith Packard
Makes the mode setting logic device independent. Magic rename hooks allow multiple drivers to provide the generic code without name conflicts. Rotation code requires special pixmap creation hook, and uses Render to perform the actual rotation.
2006-12-30Detect in ProbeModes. Let get_modes set edid. Prune interlace/dblscan.Keith Packard
Move output connection status detection from RandR code up to ProbeModes so it is done before mode sets are built. Otherwise, the mode building code will elide all modes the first time through as it ignores outputs that are disconnected. Most get_modes functions fetch EDID data; make sure that any EDID changes are used in the ProbeModes filtering of default modes. Otherwise, stale EDID data will be used. Allow outputs to advertise support for interlaced and double scan modes; prune such modes from the default mode list when outputs do not support them.
2006-12-28Configuration support: per-output mode lines, preferred mode.Keith Packard
Add the modelines specified in the per-output monitor and all of the default modes to the list to each output. Prune the resulting list to specified sync limits and virtual sizes. Sort the resulting mode list on preferred/size/refresh.
2006-12-06Merge branch 'modesetting' into nonrandr-setupnonrandr-setupKeith Packard
Also, fix buffer overflow in i830_debug.c
2006-12-06Merge branch 'generic-mode-set' into modesettingEric Anholt
2006-12-06Use xf86 structures for default config instead of RandR.Keith Packard
To avoid requiring RandR 1.2 in the X server, use the xf86 Crtc and Output structures as the basis for the default configuration computation (and, eventually, the config-file based configuration as well).
2006-12-05fix up misleading comment in i830_crt.c about border registerKeith Packard
2006-12-05WIP code to move mode set sequencing to XFree86 handlers.Eric Anholt
It compiles. It definitely doesn't run.
2006-11-30Merge branch 'restructure-outputs' into modesetting.Keith Packard
Outputs and Crtcs now have a driver-independent representation which should permit generic code to control RandR 1.2 and startup configuration.
2006-11-28Conditionally compile old-server compatibility code in.Eric Anholt
This also replaces calls to compat code with the real names of the functions, and slips #defines to an i830-namespaced version in when doing compat. The current server version (7.1.99.2) is still left as requiring compat code, since the version hasn't been bumped yet. This also fixes some failures to call the compat code, and some failures to actually compile the compat code. Oops.
2006-11-27Move crtc/output config to sub-structure.Keith Packard
Place crtc/output in separate structure at head of driver private structure. Use this from the config code to make it driver-independent. Still lots of effectively driver independent code that continues to use driver dependent stuff, but that will change.
2006-11-26Remove mode setting from load detect CRTC allocation.Keith Packard
To share load-detect CRTC allocation with TV driver, move it to the output driver
2006-11-26Clean up reworked data structure code so the server actually starts.Keith Packard
Use i830GeLoadDetectPipe again (instead of missing xf86AllocCrtc). Actually create new Crtc structures. Fix a few other NULL pointer dereferences.
2006-11-26Start output/crtc restructuring work. It compiles.Keith Packard
Outputs and Crtcs are now split between 'generic' and 'driver specific' pieces in the hope that more code will be able to migrate to the xf86-generic layer. Right now, the code remains tangled together, significant work remains to tease the pieces apart. First the code needs to be made to actually work as-is though.
2006-11-08Adapt to RandR updates that split object creation from screen association.Keith Packard
RandR DIX code is preparing for xf86 drivers that want to allocate RandR objects at PreInit time. This patch adapts to that change without taking advantage of it.
2006-11-08Merge branch 'modesetting-keithp' into modesettingKeith Packard
Conflicts in PipeSetMode were resolved to use the keithp changes that pushed more modesetting stuff into the per-pipe function. Switched availablePipes to num_pipes. Used modesetting default output configuration.
2006-11-08Clean up i830_crt_detect_load() a bit more.Eric Anholt
ADPA might not have been set right in some cases (DPMS-off monitor, for example), and a wait for vsync that the bios does was missing.
2006-11-07Eliminate operatingDevices member and PIPE_* values.Keith Packard
operatingDevices and MonType1/MonType2 duplicate information already stored in the device structures. Eliminate them and replace uses with direct references to the appropriate other data. (cherry picked from 3ab7f9693217d8fe993bdc94c376b219b0082961 commit)
2006-11-05Fix CRT output on 965 chipset.Keith Packard
A few more register settings are needed to get CRT output working on the 965 chipset, in particular the the SDVO/UDI clock multiplier register needed to get set to the default value (3). No, I really don't know what this does, but it does get the CRT running at a wide range of sizes.
2006-11-04Rename availablePipes to num_pipesKeith Packard
2006-11-04Eliminate operatingDevices member and PIPE_* values.Keith Packard
operatingDevices and MonType1/MonType2 duplicate information already stored in the device structures. Eliminate them and replace uses with direct references to the appropriate other data.
2006-11-03Add support for load-based CRT detection.Eric Anholt
2006-11-01Attempt to pull monitor physical size information out of DDC EDID data.Eric Anholt
2006-11-01Move mode lists from per-pipe to per-output.Eric Anholt
This should let RandR do the right thing in exposing the modes to userland. As a side effect of getting this working, the SDVO pixel clock range code was fixed and the mode valid tests for various outputs got extended. Also, LVDS grew a get_modes for the fixed panel mode. Note that we now no longer do automatic enabling of outputs at xrandr -s 0, hotkey, or VT switch. That will be left to generic RandR code later. Also, generic modes and user-defined modes are once again not validated into the lists, so this is a regression there.
2006-10-31Give each output a get_modes function and expose those modes through RandR.Eric Anholt
The get_modes should return the probed modes only. The driver should then append to the list (for example, compatible modes listed in other outputs, or standard VESA modes) to create the list to expose through RandR. That isn't done yet.
2006-10-31Move output connection detection to a per-output method.Eric Anholt
This will be used by RandR, and should let us clean up some of the initial display configuration, hopefully. Also, analog hotplug-based detection is now enabled on G965.
2006-10-16Add a per-output mode-valid method.Eric Anholt
This is currently disconnected, but will be used in more overhaul work. This should be where any output limitations, such as clocks, resolution, scaling limits, or other options, are validated. Other limitations, such as chipset resolution limits, CRTC clock limits, etc. should be elsewhere.
2006-10-09Move per-output mode setting code to per-output methods.Eric Anholt
This is not a very clean interface, as a number of outputs require tweaks to the DPLL registers. When possible, the DPLLs are just adjusted in the per-output post_set_mode, which happens just after the DPLL is enabled. However, this seems better than the previous method of having all outputs programmed in the same function.
2006-10-05Give each output type an init method in its file, making other methods static.Eric Anholt
2006-10-04Move the save, restore, and DPMS per-output settings to per-output files.Eric Anholt