Commit Graph

76 Commits

Author SHA1 Message Date
Mike Isely 9f32486043 Implement option to ignore external fixed mode settings
The Intel xorg driver tries mightily to determine the native fixed
panel mode settings for the LVDS output.  It does this through various
means, including scanning video BIOS tables, and noticing if the pipe
in question has already been set up by somebody else (and adopting
those timings).  This strategy works well for say a laptop where the
LCD panel is an integral part of the machine.  But for other
applications where the display is unrelated to the system's BIOS or
other software, then the BIOS will likely have no clue how to
configure the LVDS output.  Worse still, the BIOS can simply "get it
wrong", leaving the pipe misconfigured.  Unfortunately the Intel
driver can potentially notice this, adopt the same settings, leaving a
messed up display.

All of this complexity normally happens independently, behind the
scenes, from the mode timings that might otherwise be specified by the
user.  This driver has a concept of fixed, i.e. "native" mode, and
then user-specified mode.  If the corresponding resolutions between
those concepts don't match, then the driver in theory will arrange for
scaling to take place while adhering to the actual native mode of the
panel.  Said another way, if the user says 800x600 but the driver
mistakenly (see above) thinks the native mode is 640x480, then 640x480
is the mode set with scaling to an 800x600 frame buffer.  If the
driver gets the wrong native mode, then the result is a miserable mess
with no way for the user to override what the driver thinks is right.

This patch provides a means to override the driver.  This implements a
new driver option, "LVDSFixedMode" which defaults to true (the normal,
probe-what-I-need behavior).  However when set to false, then all the
guessing is skipped and the driver will assume no fixed, i.e. "native"
mode for the display device.  Instead with this option set to false,
the driver will directly set the timings specified by the user,
providing an escape hatch for situations where the driver can't
correctly figure out the right mode.

Under most scenarios of course, this option should not be needed.  But
in situations where the Intel video BIOS is hopelessly fouled up
related to the LVDS output, this option provides the escape hatch for
the user to get a working display in spite of the BIOS situation.

Signed-off-by: Mike Isely <isely@pobox.com>
2008-05-08 10:00:17 +08:00
Mike Isely e031cc02e6 Implement support for 24 bit pixel format
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-09 14:15:03 +08:00
Jesse Barnes 588371ba15 Merge branch 'master' into pfit 2008-03-26 14:53:15 -07:00
Jesse Barnes 52d6ced652 Fixup backlight control and panel fitting property names
They should be listed as lower case, since that's what you'd pass to xrandr.
2008-03-19 11:59:15 -07:00
Zhenyu Wang ac76363406 Disable XvMC if DRI is not enabled.
Default XvMC to disabled.
2008-03-18 16:52:29 +08:00
Jesse Barnes 05cf07071e Initial panel fitting changes
Basic support for panel fitting.
2008-03-13 18:12:00 -07:00
Zhenyu Wang 31654f52b0 Merge branch 'master' into xvmc
Conflicts:

	man/intel.man
	src/i830_driver.c
2008-03-11 14:37:41 +08:00
Matthieu Herrb f2b9f387af Makefile.am: nuke RCS Id 2008-03-08 23:36:56 +01:00
Jesse Barnes 3c22ed633b Add pipe A force enable quirk
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.
2008-01-09 09:47:38 -08:00
Zhenyu Wang 666e01bd42 xvmc: add info in intel.man 2007-12-26 09:51:09 +08:00
Jesse Barnes e2d9fd6425 Describe output properties in more detail
Add descriptions for LVDS and TV output properties and also mention the EDID
property a new output configuration section.
2007-12-07 16:30:46 -08:00
Jesse Barnes 43fbc54778 Improve backlight control
This commit fixes backlight support for several platforms.

Except on recent machines supporting the IGD OpRegion specification,
backlight control is rather platform specific.  In some cases, we can
program the native backlight control regsiters directly without any
trouble.  On others, we need to use the legacy backlight control
register.  On still others, we need a combination of the two.  And on
some platforms, none of the above will work, so we go through the
kernel backlight interface, which provides a platform specific driver
for backlight control.
2007-11-12 12:23:41 -08:00
Jesse Barnes 62404a9c9c Update man page to reflect EXA by default 2007-11-09 07:55:53 -08:00
Eric Anholt 0c9e4aeea8 Merge branch 'master' into buffer-objects
Conflicts:

	src/i830_dri.c
	src/i830_memory.c
2007-08-16 11:30:16 -07:00
Jesse Barnes e6746d0f28 Enable tiling by default on 965. 2007-08-10 15:48:15 -04:00
Brice Goglin 0fd3ba0518 Fix typo in intel.man
Reported by A. Costa" <agcosta@gis.net> in
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=432061
2007-07-25 20:11:32 +02:00
Eric Anholt 18c707a8c1 When TTM is available, use it instead of manual AGP allocations when possible.
This is a step towards being able to expose buffer objects through the screen
private to DRI clients, instead of having them have to use the fake buffer
object type.

This fails in two ways.  First, the kernel memory manager is not currently
suitable for doing the physical allocations we need, so we still use AGP for
those.  Additionally, the DRI lock can't be initialized early enough for us, so
these buffer object allocations fail.  This will be fixed by improving the
DRM interface.
2007-07-25 10:11:16 -07:00
Jesse Barnes b426866fe1 Fix manpage to reflect default behavior. 2007-07-06 20:48:40 -07:00
Jesse Barnes 9c0388dc8d Update man page with current behavior. 2007-07-06 20:38:41 -07:00
Jesse Barnes 8798ef1132 Merge branch 'master' into fbc 2007-07-05 12:21:31 -07:00
Eric Anholt 3c552af65d Update documentation and bump driver version to 2.1.0. 2007-07-02 18:33:47 -07:00
Jesse Barnes b384c60897 Enable framebuffer compression (use Option "FrameBufferCompression"
"true" in your xorg.conf).  Should save ~0.5W during typical 2D usage.
2007-07-02 09:32:28 -07:00
Eric Anholt 72462568da Expand manpage description of outputs supported. 2007-05-29 11:07:51 -07:00
Eric Anholt 6748d620fb Ignore VideoRam now that its original purpose is obsolete.
It had been necessary to allow more than a small amount of memory to be
allocated, but now those old small allocations people had configured are
getting in the way.
2007-04-30 19:15:34 -07:00
Keith Packard 60e891915a Eliminate LinearAlloc option and code.
With the fixes to the 2D frame buffer allocation that allows up to 65536
lines of 2D frame buffer in XAA mode, the old linear allocation hacks are no
longer necessary.
2007-04-19 14:02:23 -07:00
Wang Zhenyu 64c30cf896 Update intel.man with 965GM chipset support 2007-04-16 13:58:50 +08:00
Eric Anholt 08cd5f9b0f Bug #10520: i810 manpage not installed despite users expecting it to be there.
Install it as an alias to intel.4x, since we're letting people load the driver
as "i810" still.
2007-04-10 11:26:46 -07:00
Eric Anholt 9b78208f1e Move a bunch of debugging verbosity under Option "ModeDebug". 2007-04-03 00:15:04 -07:00
Alan Coopersmith 2191634dd6 Add Solaris to list of OS'es with agpgart in man page 2007-03-26 14:58:41 -07:00
Eric Anholt 827dc457a4 Update manpage to remove Rotate option and point at xorg.conf instead.
While here, update a few other bits as well.
2007-03-26 12:45:23 -07:00
Michel Dänzer e787d7b698 Remove warnings about potential artifacts with page flipping and mixed 2D/3D.
The artifacts only seemed to occur when EXA was falling back to software for
the front buffer.
2007-03-06 09:35:42 +01:00
Michel Dänzer f346549183 intel.man: Fix typo. 2007-02-21 09:19:54 +01:00
Michel Dänzer 0bee64f4bc Add support for triple buffering using a third static buffer.
Need to bump the DRI DDX version minor for the added SAREA fields.
2007-02-20 19:09:37 +01:00
Michel Dänzer fac8f2eb49 Document Option "PageFlip". 2007-02-20 18:38:40 +01:00
Keith Packard 785a59ead0 Rename driver from i810 to intel. Permit old name for compatibility.
Driver installs as intel_drv.so with symlink to i810_drv.so to ensure
existing configurations continue to work. Updated manual page to reflect
name change and add attributions for recent work.
2007-02-01 22:48:44 -08:00
Eric Anholt 9bfeadbd5b Remove some more dead options. 2007-02-01 12:06:10 -08:00
Eric Anholt f5d528f8ea Don't limit cachelines to a vertical of 2048, and increase default allocation.
The cachelines are used for two things: XAA pixmap cache and XV memory.
Only XAA pixmap cache is referred to using an offset pointing at the
beginning of the front buffer in rendering, and XAA only uses the 2d BLT
engine, which actually has a vertical limit of 65536.  So, pixmap cache is now
limited to that much vertical.

Additionally, the previous cachelines allocation was too small for our
advertised XV limits, so video at the limits would fail with BadAlloc.  Now,
XAA allocates the same approximate amount of offscreen memory as EXA:
3 times the screen size, plus one packed HD video.
2007-01-11 11:03:13 -08:00
Eric Anholt b94b7c4bcf Merge branch 'exa' of ../xf86-video-intel into modesetting
Conflicts:

	man/i810.man
	src/Makefile.am
	src/i830.h
	src/i830_driver.c
	src/i830_rotate.c
	src/i830_video.c
2006-11-30 09:15:30 -08:00
Eric Anholt 9948d8377d Merge branch 'master' into modesetting
Conflicts:

	src/i830.h
	src/i830_cursor.c
	src/i830_dri.c
	src/i830_driver.c
	src/i830_video.c
2006-11-16 19:47:24 -08:00
Thomas Hellstrom c0ee50c4ee Add support for the new DRM memory manager.
Some code are duplicated with the new libdrm.
Once this code has been released with xserver,
it can be removed.

See the man page for new options and backwards
3D driver compatibility.
2006-10-27 19:13:33 +02:00
Alan Hourihane 8548fa5374 Fix manpage to report 8160 instead of 6144 for LinearAlloc. 2006-10-23 14:23:29 +01:00
Eric Anholt 6ea16bf6b0 Merge branch 'master' into modesetting
This reverts most of the mergedfb code.  This will instead be done in device-
independent RandR code.

Conflicts:

	src/Makefile.am
	src/i810_driver.c
	src/i810_reg.h
	src/i830.h
	src/i830_cursor.c
	src/i830_driver.c
	src/i830_modes.c
	src/i830_video.c
2006-09-27 16:38:01 -07:00
Wang Zhenyu f272f0d811 Merge branch 'master' into exa 2006-09-25 14:15:21 +08:00
Eric Anholt c2446be9b4 Remove the GetDevicePresence BIOS call which just printed BIOS information.
Because we aren't using the BIOS to set modes any more, what the BIOS thinks is
present is probably even less important than before.
2006-09-22 10:52:02 -07:00
Eric Anholt b6ba268d0d Remove the no-longer-connected VBERestore option. 2006-09-22 10:52:00 -07:00
A Costa b3ddcf3348 Typo fix in man page (Debian bug #364559). 2006-09-21 23:18:43 +10:00
Wang Zhenyu 078af29fa6 Merge branch 'master' into exa
Conflicts:

	man/i810.man
	src/Makefile.am
	src/i830_accel.c
	src/i830_dga.c
	src/i830_driver.c
2006-08-24 10:23:22 +08:00
Keith Packard f8b47f6072 Update manual page to include i945 and later details.
(cherry picked from 7833d0733bc146cf1ae7f588516c49797886b396 commit)
2006-08-08 16:23:59 -07:00
Eric Anholt e4584a4f44 Remove dead DisplayInfo option. 2006-06-20 10:39:28 -07:00
Eric Anholt c1c46f882f Merge branch 'master' into modesetting
Conflicts:

	man/.gitignore
2006-05-22 10:42:24 -07:00