summaryrefslogtreecommitdiff
path: root/src/i830_display.c
AgeCommit message (Collapse)Author
2009-06-06Merge branch 'ulf' into dlfPaul Menzel
2009-05-31Add frame rate control.Thomas Hilber
- Full functionality of Radeon based original patch now ported to recent Intel graphics hardware. This includes support for i945G chipsets as found on EEE PCs and D945GCLF[2] boards. - Exploits some special features of i945G chipsets like vertical phase registers and fine tuning of vertical scaling. This enables us to compensate for interference effects observed when driving modern digital displays through a SCART interface. Signed-off-by: Thomas Hilber <sparkie@lowbyte.de> Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
2008-07-27Improve FBC size checkingJesse Barnes
In hindsight, this is obvious, since nowhere do we tell the FBC unit how much memory it has available. We need to make sure the compressed buffer is big enough to handle the uncompresed buffer, both in terms of vertical size and total framebuffer size, or the compressor could overwrite the memory immediately following the compressed buffer. (cherry picked from commit 7332132a79e5b5c208d43e93dfe0c8b12eb1728d) (cherry picked from commit 7d1aa118a24195833466a4a4342c71f37db673f8)
2008-07-27Fix official name for GM45 chipsetZhenyu Wang
(cherry picked from commit a34a4e3f6420e2b06bbdaa124fe0ccb1bc6a0bd9)
2008-07-27The phase shift its are now reserved.Julien Cristau
(cherry picked from commit 9a05662918223477eb1cf6f80ffac08712721c70) (cherry picked from commit 82300116af8b01fc3c071d9c8625ffea122431fa) Conflicts: src/i830_hdmi.c
2008-06-12Move debug clock printout from ErrorF to X_INFO.Eric Anholt
(cherry picked from commit bff180e6cac4452ef491c81855eb12bfa03d0bf3)
2008-04-12Bug #14935: Fix i9xx reference clock for spread spectrum.Hong Liu
(cherry picked from commit 5c9cde37e769287fb7bf4e08c3600a33c2e92dce)
2008-04-12Fix compiler warning from 24-bit lvds change.Eric Anholt
(cherry picked from commit 152a50703aa5e9ebaa9abbe448518742734a5eb7)
2008-04-10Implement support for 24 bit pixel formatMike Isely
The Intel driver appears to be coded to only work with displays expecting 18 bit pixels. However I have an application using a LCD display that expects pixel data in 24 bit format. The difference is only 2 bits in a single GPU register. This patch implements that change, controlled by a new driver option, "LVDS24Bit". The default value is false, which is the previous behavior. When set to true, then 24 bit panels should work (at least the one I'm testing here does). Fd.o bug #15201 Signed-off-by: Mike Isely <isely@pobox.com> (cherry picked from commit e031cc02e65acfbafb48136dad414751e04425c5)
2008-04-09Fix LVDS regressionJesse Barnes
Disable panel fitting on 855GM, and fix dither setting. (cherry picked from commit 2b720262e1235f1c9da860ba3e9181f0c377aa5e)
2008-03-31Disable cursors while switching modesKeith Packard
(cherry picked from commit 7dcb6e627449c80cea9812462ce6a3e125bd1240)
2008-03-13Remove fbc enable/disable messagesJesse Barnes
Tired of them filling up my logs.
2008-03-11Remove i830+ driver's use of CARD*/INT* types for great justice.Eric Anholt
Several uses are actually left, which are determined by the X Server interfaces we're implementing.
2008-03-05Really print adjusted_mode for mode debugZhenyu Wang
2008-03-04Fix DPLL programming in CRTC mode setHong Liu
The following patch fixes the display problem on internal development machines. The code in commit 3c22ed633be2ac96eea7bc533839e956f1f31b84 (Jesse's force pipe A enable patch) broke DPLL programming. Moving the DPLL set back up in the function solves the problem. Fix for internal bug #309.
2008-03-04Change FBC idle mode back to defaultJesse Barnes
Use the "immediate idle" mode for FBC. Rather than waiting for the current compression pass to finish before signalling to the CPU that it's idle, this mode should stop any current compression pass and tell the CPU that the GPU is idle right away. Seems to fix #13326.
2008-02-19Fix last 8XX clock's p2 value commitZhenyu Wang
My fault to change Hong's origin patch reversely.
2008-02-06Only disable FBC if registers are availableJesse Barnes
The call to disable FBC should only occur if the FBC feature is actually present or we may end up hanging on a read from a non-existent register.
2008-02-05Only enable FBC if one pipe is activeJesse Barnes
Some chips can't support FBC if multiple pipes are active. So if more than one pipe is on or we're going from one->two pipes enabled, make sure FBC is disabled. Intended to fix 13418, 13326, 13152.
2008-02-05Program FBC fence offset registerJesse Barnes
Just a partial fix for some of the FBC issues people have been seeing. The other half is to disable FBC if both pipes are running.
2008-02-04Bug 10773: fix i8xx pll p2 value in i830_crtc_clock_get()Hong Liu
Also fix debug dump, slightly modified to use macro instead.
2008-01-30Frame buffer compression support on new chipsetJesse Barnes
2008-01-24Clear shadow memory after allocationZhenyu Wang
2008-01-09Add pipe A force enable quirkJesse Barnes
On some platforms, the firmware may read & write GPU registers on lid close, suspend/resume time or during various SMM events. If one of the graphics pipes is disabled at that time, the GPU may hang due to the programming dependencies of the various registers. This patch adds a quirk to force the driver to keep pipe A enabled if necessary, through user configuration in xorg.conf or via a platform specific quirk. Leaving the pipe enabled comes at a power cost however, so the quirk should only be enabled when strictly necessary. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=11432.
2007-11-15remove unnecessary i830_reg.h includesZhenyu Wang
i830_reg.h only contains 3d engine cmds for 8XX chips.
2007-11-14Correct FBC debug messageJesse Barnes
To be consistent, it should say 'plane' rather than 'pipe'.
2007-11-13Review PLL spreadsheet and update register ranges.Keith Packard
The PLL spreadsheet makes the precise register ranges allowed for each mode quite clear, and shows a few inaccuracies in the b-spec. In particular, the N register value may range from 1 to 6 instead of 3 to 8. This should close the gap we've seen in the reachable frequencies.
2007-11-01Framebuffer compression fix: front buffer may not be at fence 0Jesse Barnes
Fix a long standing bug in the framebuffer compression code (thanks to Pierre Willenbrock!) that prevented FBC from working correctly if the front buffer was anywhere but fence register 0.
2007-10-30Clear compiler error: "void functions cannot return values"Alan Coopersmith
2007-10-18Warn in the log if we choose a PLL clock that's way out of line.Eric Anholt
2007-09-10Only swap planes and pipes if DRM supports itJesse Barnes
We want to associate plane A with pipe B on pre-965 mobile chips, since that's the only way to get framebuffer compression on the builtin LVDS on those platforms. However, if we do this swapping and DRM isn't aware of it, we may end up requesting vblank events for the wrong pipe, or setting up SAREA buffer swap state incorrectly. This mod checks whether DRM supports the new plane->pipe swapping behavior, and only enables the swapping if so. This should fix the bugs Lukas found and debugged. Reviewed by Michel Danzer.
2007-08-26Mechanical API conversions for libpciaccess.Keith Packard
Uncomplicated API transistions for libpciaccess usage: Legacy xf86 API libpciaccess API --------------- ---------------- xf86ReadPciBIOS pci_device_read_rom pciReadWord pci_device_cfg_read_u16 pciWriteByte pci_device_cfg_write_u8 And, more use of the API-independent DEVICE_ID/SUBVENDOR_ID/SUBSYS_ID macros to pull PCI identification data from the underlying structure.
2007-08-17Replace AA allocator usage with i830_memory.c for RandR rotation.Eric Anholt
This requires EXA 2.2 (server 1.3) for rotated performance with EXA, because the i830_memory.c allocation may not fall within what EXA considers the offscreen area, so the PixmapIsOffscreen hook is needed.
2007-08-16Disambiguate plane and pipe mapping, use plane A on pipe B on pre-965 LVDSJesse Barnes
Add a new 'plane' field to the intel_crtc private structure for tracking planes separate from pipes. This allows pre-965 chips to use plane A on pipe B, enabling framebuffer compression for builtin LVDS displays.
2007-08-14Fix seg fault introduced in tiling patch when TV detectZhenyu Wang
When TV does load detect, fb hasn't been setup, so we should check that in i830_display_tiled(). Caught by Nanhai.
2007-08-10Set DSPATILEOFF/DSPBTILEOFF to handle 965 tiled frame buffers.Keith Packard
DSPATILEOFF and DSPBTILEOFF replace DSPASURF and DSPBSURF when the frame buffer is in tiled mode.
2007-08-10Attempt to fix several front buffer tiling failure cases.Eric Anholt
Front buffer tiling is now disabled with G965 and XAA. Some of the acceleration that i830_xaa.c does can't be supported on tiled buffers. Adds a tiling field to struct i830_memory, and uses it instead of separate variables for each potential tiled buffer.
2007-08-10Tiling fixes for 965Jesse Barnes
This should be close to the last set of tiling fixes for 965 chipsets. Prior to this commit, the 965 composite hook didn't take tiling into account, nor did 965 textured video, which caused display corruption. However, there seems to be at least one last bug to squash--on occasion, a configuration with tiling enabled won't properly display text. This is likely another tiling related problem with the composite hook.
2007-08-03Tiled rendering & fbc fixes:Jesse Barnes
- actually enable tiling in DSP(A|B)CNTR if needed - add logic to EXA routines for tiled case (still needs work) - enable/disable fbc on DPMS events (meant moving functions higher in file) - fix fence register pitch programming (use correct pitch instead of kludged value)
2007-07-13Remove hard-coded CRT blanking frobbing for load detection.Keith Packard
CRT blanking needn't be adjusted to perform load detection on 9xx chips, and the 8xx load detection path now adjusts blanking just during load detection. Adjusting the blanking interval turned out to cause many monitors to fail to sync.
2007-07-13Ensure pipe/output active before doing load detection.Keith Packard
If the pipe or output have been set to DPMSOff, then load detection will not work correctly. Also, share the load detection configuration code between crt and tv outputs.
2007-07-13Eliminate bogus (and harmful) blanking adjustment for load detect.Keith Packard
Instead of always adding blanking to mode lines, use the FORCE_BORDER option on i9xx hardware where it works, and dynamically add a bit of border if necessary on i8xx hardware to make load detection work. This may cause flashing when a usable crtc is not otherwise idle when load detection is requested.
2007-07-07FBC fixes:Jesse Barnes
- allow FBC and Tiling to be forced off if configured to do so - only touch FBC registers if pI830->fb_compression is true
2007-07-06Fix naming of FBC plane enable bits (mistakenly called them pipes earlier).Jesse Barnes
2007-07-06Fix debug output in fbc enable/disable routines. Add logic to make sure fbcJesse Barnes
isn't enabled twice on two different pipes.
2007-07-06FBC and tiling changesJesse Barnes
- change framebuffer option name to "FramebufferCompression" - add new "Tiling" option (controls all tiling, not just front buffer) - add debug message to fb compression enable/disable routines - update man page with new options
2007-07-05Merge branch 'master' into fbcJesse Barnes
2007-07-05Revert discard alpha change, requires other fixes to work.Jesse Barnes
2007-07-05FBC fixes:Jesse Barnes
- properly check several FBC enablement constraints - don't use alpha discard if FBC is in use
2007-07-03Fixup line length buffer padding, add kludge for front buffer tileJesse Barnes
pitch.