summaryrefslogtreecommitdiff
path: root/src/i830_display.c
AgeCommit message (Collapse)Author
2009-06-01Add 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>
2009-04-06Use best PLL timing values for G4X platformMa Ling
construct function to find precise parameters from internal spreadsheet table on G4X platform. Signed-off-by: Ma Ling <ling.ma@intel.com> (cherry picked from commit 7c94227dd4fa2164bebb36234958053bf1d26c12)
2009-04-06Define documented PLL timing limits for G4X platformMa Ling
These timings on G4X platform were specified by internal spreadsheet from the chipset group. Signed-off-by: Ma Ling <ling.ma@intel.com> (cherry picked from commit 48db5bde9298f1126dfb42f4be8a3d61166abfd8)
2009-03-31disable center mode for 965GM and G4X platformMa, Ling
When disabling VGA mode, usually we don't need to touch VGA center mode. However because of hardware reason, for Cresline, Cantiga & Eaglelake platform, we have to disable center mode as well. The patch fixed bug- TV Out strobing regression, reported by Robert Lowery in intel-gfx@lists.freedesktop.org mailing list. Signed-off-by: Ma Ling <ling.ma@intel.com> (cherry picked from commit b5b377806422c9538fa9f846819ad253c1a50846)
2009-03-19Create known output configuration at EnterVT timeJesse Barnes
Since we added the pipe A force quirk (leaving pipe A on all the time), DPMS calls to disable it have silently returned, leaving the pipe on. If another driver (like vesafb) has enabled it, we may end up with a bad configuration, leading to hangs or blank screens at VT switch time. Fixes bug #19603. (cherry picked from commit 6deb26ae7bd796e88a5dd90df5f6c35fbc44e798)
2009-03-06DRI1: Update sarea (and other information) when CRTC configuration changes.Eric Anholt
Bug #14423. Signed-off-by: Eric Anholt <eric@anholt.net>
2009-03-06intel: Nuke shared-entity support (zaphod mode).Eric Anholt
It's been broken for years now, and KMS offers a much better chance of getting this working sensibly without making a mess of the 2D driver.
2009-02-26Intel video driver patchShaohua Li
This is the intel video driver patch for a new chip, which is G33-like and has some clocking setting related register changes. This patch adds the pci id and DPLx/FPx register changes. The gtt tool should just work to me, as the chip hasn't any changes against G33 on this side. Signed-off-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: Eric Anholt <eric@anholt.net>
2009-02-18Fix SDVO mulitiplier setting for 945GZhenyu Wang
Wrong SDVO multiplier setup has been slipped in SDVO TV patch. Thanks Michael Fu to point this out!
2009-02-13SDVO: Fix TV supportZhenyu Wang
As SDVO TV uses SDVO_TVClkIn from SDVO encoder for clock reference, it needs to generate proper PLL for current input clock. This uses fixed PLL table from vbios for this. And possible sdvo mulitiplier has to be setup correctly. This makes TV output stable on my 945GCLF2 board with NTSC-M format.
2009-02-06Don't disable vga centering bit.Ma Ling
commit id b9f5915ce812144ffd9d2aa42e8ba856129c35e, which resolved bug #17235, but generate new regression-bug #19715. This patch intends to resolve bug #17235, and avoid regression as well. We have successfully re-tested it for bug #17235 and #19715 respectively.
2009-01-14Disable VGA plane reliablyMa Ling
This fixes #17235, VGA random hang on recent G45/43 board. From spec, SR01 bit 5 should be set before VGA plane disable through control register, otherwise we might get random crash and lockups.
2009-01-13Assign rotation memory dri_bo to rotation pixmap.Keith Packard
As the rotation memory and rotation pixmap are allocated separately (to make rotation at startup work), the allocate dri_bo needs to be set in the pixmap for acceleration to work. This restores the performance in rotated modes. Signed-off-by: Keith Packard <keithp@keithp.com>
2009-01-06Resize framebuffer on screen size change (requires UXA and DRI2)Keith Packard
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-01-06Make i830_allocate_memory take tiling parameters.Keith Packard
This eliminates the separate i830_allocate_memory_tiled function which means that all memory objects will have tiling parameters set correctly. Signed-off-by: Keith Packard <keithp@keithp.com>
2008-12-30Don't touch the pipestat regs for detecting FIFO underrun. The kernel owns them.Eric Anholt
Since we don't perform any synchronization with the kernel on these regs, we could race with the kernel to write stale values and end up not having vblank interrupts enabled when somebody was waiting on one.
2008-12-09Add RandR 1.3 panning support by supporting the crtc set_origin functionKeith Packard
RandR 1.3 panning support can use the regular mode setting interface, but that's really slow. Providing set_origin makes it nice and snappy. Signed-off-by: Keith Packard <keithp@keithp.com>
2008-11-17Merge commit 'origin/master' into dri2Kristian Høgsberg
Conflicts: src/i830_dri.c src/i830_driver.c src/i830_memory.c
2008-11-06Make IS_GM45 into IS_G4X defineZhenyu Wang
Those are identical that using one define is much clear. And it can also apply fixes for GM45 too, which is missing with origin define.
2008-10-19Use pipes, not planes for sarea geometry dataKeith Packard
Vblank in the kernel is far simpler if it deals with pipes instead of planes, so we're changing both user and kernel side. This is the user mode side. This fixes both i830_crtc_dpms and i830PipeSetBase, the two functions which copy geometry from the crtc to the sarea. Signed-off-by: Keith Packard <keithp@keithp.com>
2008-10-14Merge commit 'origin/master' into HEADKristian Høgsberg
2008-09-30Fix ordering of VGA vs. plane disableOlivier Fourdan
From the Intel 965 Programmer’s Reference Manual, volume 3, chapter 2.2.2 "Mode Switch Programming Sequence". The disable sequence should be: - Disable planes (VGA or hires) - Disable pipe - Disable VGA display in 0x71400 bit 31 This patch implements that order plus waits for a vblank at the end. Fixes bug #17756.
2008-08-29Add DRI2 support.Kristian Høgsberg
2008-08-26Fix typo in last commitRobert Noland
2008-08-26Check for drm before calling modeset ioctl.Robert Noland
2008-08-20Don't disable planes in i830_update_dsparbJesse Barnes
We need to program DSPARB with only one plane enabled at most, and that's guaranteed to be the case when we're called during mode set, so just assert that case but otherwise leave the planes alone to avoid flicker on active displays during output detection for example. Fixes bug #17050.
2008-08-14Fix pipe A force quirkJesse Barnes
Last commit introduced a logic buglet, we went from (foo & BLAH) -> (!foo & BLAH) rather than !(foo & BLAH), so fix it up to make my laptop work again.
2008-08-11Fix DPMS off in the presence of the pipe A quirk.Olivier Fourdan
Still turn off the VGA plane, and also handle the DRI path at the end.
2008-07-31Merge branch 'master' of ↵Jesse Barnes
ssh://git.freedesktop.org/git/xorg/driver/xf86-video-intel Conflicts: src/i830_display.c
2008-07-31Update DSPARB while planes are still offJesse Barnes
This avoids the flickering people reported in the 2.4.0 release.
2008-07-31Don't program dsparb on new Intel chipZhenyu Wang
On new chip, DSPARB is controlled by hardware only.
2008-07-22SSC is LVDS onlyZhenyu Wang
Fix regression on my 855GM for VGA output.
2008-07-18Choose a split for DSPARB based on the configured modes for both planes.Jesse Barnes
Previously, we were attempting to give both planes equal space in the FIFO to be fair. However, larger modes require more fifo space, so split it based on the relative HDisplay of the modes. This should resolve some fifo underrun issues with differently-sized displays, or single large ones. Bug #16169.
2008-07-10Improve VBIOS feature detection, add SSC supportJesse Barnes
Improve the VBIOS feature detection and use it to find whether the platform supports spread spectrum clocking. Use the specified reference clock, but disable SSC if multiple heads are active, since it can cause problems in cloned configurations. Reviewed by Nanhai Zou.
2008-07-07Improve 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.
2008-07-03Fix official name for GM45 chipsetZhenyu Wang
2008-06-24Remove ErrorF debugging from modeset ioctlJesse Barnes
Oops.
2008-06-24Add support for keeping vblank counters sane across mode settingJesse Barnes
The DRM supports disabling of vblank interrupts when not in use, but in order to function properly it must also be aware of mode setting, which will reset the frame counter to 0. Add code to call into the DRM before and after mode setting, so that it can account for any lost vblank events.
2008-06-19The phase shift its are now reserved, and add HDMI clock limits.Eric Anholt
2008-06-19Initial HDMI work. Not currently hooked up at startup.Eric Anholt
2008-06-05Move debug clock printout from ErrorF to X_INFO.Eric Anholt
2008-05-26Handle display FIFOs betterJesse Barnes
Add some debug code to catch FIFO underruns, which are normally bugs (unless they occur during mode setting) and remove any plane C FIFO allocations, since we don't use that plane at all. We may eventually need to be a little smarter about this on platforms that use plane C for the popup.
2008-04-11Bug #14935: Fix i9xx reference clock for spread spectrum.Hong Liu
2008-04-10Fix compiler warning from 24-bit lvds change.Eric Anholt
2008-04-09SDVO: Use the TV reference clock for SDVO TV outputs.Eric Anholt
Based on a patch by Will Wiseman.
2008-04-09Implement 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>
2008-04-09Fix LVDS regressionJesse Barnes
Disable panel fitting on 855GM, and fix dither setting.
2008-03-30Disable cursors while switching modesKeith Packard
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.