AUTHORS | 62 + ChangeLog | 1817 +++++++++++++++++++++++++++++-------- Makefile.am | 8 NEWS | 107 ++ README | 129 -- RELEASING | 32 configure.ac | 23 debian/changelog | 13 debian/control | 2 debian/patches/01_gen_pci_ids.diff | 8 man/Makefile.am | 20 man/intel.man | 111 +- src/Makefile.am | 15 src/bios_reader/bios_reader.c | 94 + src/common.h | 15 src/drmmode_display.c | 41 src/i810.h | 1 src/i810_driver.c | 94 - src/i810_reg.h | 20 src/i830.h | 43 src/i830_accel.c | 4 src/i830_batchbuffer.c | 3 src/i830_bios.c | 30 src/i830_bios.h | 41 src/i830_crt.c | 16 src/i830_debug.c | 103 +- src/i830_display.c | 655 ++++++++++--- src/i830_display.h | 2 src/i830_dri.c | 44 src/i830_driver.c | 434 ++------ src/i830_exa.c | 132 ++ src/i830_hdmi.c | 90 + src/i830_lvds.c | 147 ++ src/i830_memory.c | 144 -- src/i830_quirks.c | 24 src/i830_render.c | 2 src/i830_ring.h | 14 src/i830_sdvo.c | 539 ++++++++-- src/i830_sdvo_regs.h | 58 + src/i830_tv.c | 295 +++++- src/i830_video.c | 240 ++-- src/i830_video.h | 2 src/i830_xaa.c | 69 - src/i915_render.c | 11 src/i915_video.c | 2 src/i965_hwmc.c | 3 src/i965_render.c | 19 src/i965_video.c | 16 src/xvmc/Makefile.am | 2 src/xvmc/intel_xvmc.c | 7 uxa/uxa-accel.c | 76 + uxa/uxa-glyphs.c | 40 uxa/uxa-priv.h | 38 uxa/uxa-render.c | 15 uxa/uxa-unaccel.c | 52 - uxa/uxa.c | 39 uxa/uxa.h | 3 57 files changed, 4375 insertions(+), 1691 deletions(-)
New commits: commit 6a47f6a80ac4a0230b732516dabfea57f0422898 Author: Brice Goglin <bgog...@debian.org> Date: Thu Apr 16 07:11:29 2009 +0200 Prepare changelog for upload to unstable diff --git a/debian/changelog b/debian/changelog index d6ae516..d4215bb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,8 @@ -xserver-xorg-video-intel (2:2.7.0-1) UNRELEASED; urgency=low +xserver-xorg-video-intel (2:2.7.0-1) unstable; urgency=low * New upstream release. - -- Brice Goglin <bgog...@debian.org> Thu, 16 Apr 2009 07:09:52 +0200 + -- Brice Goglin <bgog...@debian.org> Thu, 16 Apr 2009 07:11:09 +0200 xserver-xorg-video-intel (2:2.6.99.903-1) experimental; urgency=low commit 08b2062b94b32d42d7e221c27d7e271f13991d38 Author: Brice Goglin <bgog...@debian.org> Date: Thu Apr 16 07:10:27 2009 +0200 New upstream release diff --git a/ChangeLog b/ChangeLog index 9f1b5ee..1e56b05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,116 @@ +commit cff6cf9adc4235af5cc73a47bb272c81635fc8b2 +Author: Carl Worth <cwo...@cworth.org> +Date: Wed Apr 15 16:20:16 2009 -0700 + + Update version to 2.7.0 + + In preparation for new major release. + +commit 5fc57441b68a85ca3aaa306c336b242616a99f12 +Author: Carl Worth <cwo...@cworth.org> +Date: Wed Apr 15 16:14:44 2009 -0700 + + Add AUTHORS and NEWS to EXTRA_DIST + + These new files don't do us much good if we don't distribute them in + our releases. + (cherry picked from commit 9ffd1951d1f2fd2f53273d04ea29de050f07af55) + +commit f3d63d9e4956e64f632fbcf5da76fb7278072cb7 +Author: Carl Worth <cwo...@cworth.org> +Date: Wed Apr 15 16:14:03 2009 -0700 + + Add a NEWS files with release-notes for 2.7.0 + + It will be nice to have release-notes under revision control, as well + being able to document issues in an obviously time-sensitive file, + (as opposed to README where we were documenting some of this previously). + (cherry picked from commit e4cd9de2933ada3e2a4b43552729ae3a370128bf) + +commit 3fafb28a4323c6897bfe36882857bf89e5d88de8 +Author: Carl Worth <cwo...@cworth.org> +Date: Wed Apr 15 16:10:52 2009 -0700 + + Clarify that the default acceleration is UXA if KMS is available. + + Stale documentation considered harmful of course. + (cherry picked from commit 506c810f8f3db89048dda9777902f142ffeb86aa) + +commit 0f0569b5658fbaf3b84232f13a28f6633a89e9b9 +Author: Carl Worth <cwo...@cworth.org> +Date: Wed Apr 15 15:39:06 2009 -0700 + + Add a new AUTHORS file + + This is a sorted list of everyone with more than 2 commits in the git + revision history. We also list some historical authors mentioned in the + man page, (with code presumably pre-dating the beginning of revision + history). + (cherry picked from commit b9716b836cb2b4569c90b81f344932ac668dc5bf) + +commit d94986bcd313486f8018a10729439af0f7e7052d +Author: Carl Worth <cwo...@cworth.org> +Date: Wed Apr 15 15:38:11 2009 -0700 + + README: Remove almost all time-sensitive information + + This was all very stale, and is better convered in intel.man. We replace + this with a list of pointers to where to get current information, (man + page, web site, and mailing list). + (cherry picked from commit 8deb3a3709a9aaa549be404566715a01246354d9) + +commit 6f48379fb8e5997b4b2098b7df5bed399bc559f6 +Author: Li Peng <peng...@intel.com> +Date: Fri Apr 10 14:39:35 2009 +0800 + + Turn on front buffer tiling in KMS. + + This code disabled front buffer tiling in KMS. Turn it on since kernel + handles all tiling now, this improves performance of x11perf -aa10text + from 97k to 286k on my 945GME. + + Should help with #20761, if not totally fix it. + + Acked-by: Jesse Barnes <jbar...@virtuousgeek.org> + Signed-off-by: Li Peng <peng...@intel.com> + (cherry picked from commit 9b615a52671aacf34666f90ecfff98651ce6afe2) + +commit c8633c82278085917bd6b0d0ea6e8a74eaa6deb4 +Author: Ma Ling <ling...@intel.com> +Date: Mon Apr 13 14:27:35 2009 +0800 + + update manpage for BROADCAST_RGB property + (cherry picked from commit 053432991c812146f6e7c6f13c6ace55385c825f) + +commit 02c8a1a6e821a7c70c19329bd9ead4f9fcdcfe8a +Author: Ma Ling <ling...@intel.com> +Date: Mon Apr 13 14:24:57 2009 +0800 + + set broadcast RGB mode for integrated HDMI output. + (cherry picked from commit 62ba7211fe9b6aada125ebfe34cf7161e817ad6b) + +commit 87dcf09b137a26919d36bf0cb659ff95bdb97c9b +Author: Ma Ling <ling...@intel.com> +Date: Mon Apr 13 14:23:06 2009 +0800 + + set broadcast RGB mode for HDMI and TMDS from SDVOX output + + Almost all digital TVs accept broadcast RGB values from 16 to 235 for each channel, + otherwise for those uncompensated videos, when RGB values are set from 0 to 255, + they will shows black and whiter clamping, which seriously degrades picture quality. + The patch will enable the broadcast RGB mode for hdtv according to user's setting. + It fixed bug #14486 + (cherry picked from commit 69388953ce889080d5f014123d89bf3eb45f3d8d) + +commit 387b5be8e7efdb9aa2cfb8bb64b92fae69241f1b +Author: Carl Worth <cwo...@cworth.org> +Date: Fri Apr 10 14:07:14 2009 -0700 + + Add a RELEASING file documenting the release process + + Thanks to Jesse Barnes for the original recipe. + (cherry picked from commit 6d345c49f693cc5cffaa00b94559d2afcb3a0864) + commit 121bd7ff7cfd9a43fbb61fa56f06ba2d2b55035e Author: Carl Worth <cwo...@cworth.org> Date: Fri Apr 10 14:08:00 2009 -0700 diff --git a/debian/changelog b/debian/changelog index e4d7bbb..d6ae516 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +xserver-xorg-video-intel (2:2.7.0-1) UNRELEASED; urgency=low + + * New upstream release. + + -- Brice Goglin <bgog...@debian.org> Thu, 16 Apr 2009 07:09:52 +0200 + xserver-xorg-video-intel (2:2.6.99.903-1) experimental; urgency=low * New upstream release candidate. commit cff6cf9adc4235af5cc73a47bb272c81635fc8b2 Author: Carl Worth <cwo...@cworth.org> Date: Wed Apr 15 16:20:16 2009 -0700 Update version to 2.7.0 In preparation for new major release. diff --git a/configure.ac b/configure.ac index 8cca400..41ae79c 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ(2.57) AC_INIT([xf86-video-intel], - 2.6.99.903, + 2.7.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xf86-video-intel) commit 5fc57441b68a85ca3aaa306c336b242616a99f12 Author: Carl Worth <cwo...@cworth.org> Date: Wed Apr 15 16:14:44 2009 -0700 Add AUTHORS and NEWS to EXTRA_DIST These new files don't do us much good if we don't distribute them in our releases. (cherry picked from commit 9ffd1951d1f2fd2f53273d04ea29de050f07af55) diff --git a/Makefile.am b/Makefile.am index d1118fe..68c1243 100644 --- a/Makefile.am +++ b/Makefile.am @@ -22,5 +22,5 @@ AUTOMAKE_OPTIONS = foreign SUBDIRS = uxa src man -EXTRA_DIST = README +EXTRA_DIST = README AUTHORS NEWS DISTCLEANFILES = doltcompile commit f3d63d9e4956e64f632fbcf5da76fb7278072cb7 Author: Carl Worth <cwo...@cworth.org> Date: Wed Apr 15 16:14:03 2009 -0700 Add a NEWS files with release-notes for 2.7.0 It will be nice to have release-notes under revision control, as well being able to document issues in an obviously time-sensitive file, (as opposed to README where we were documenting some of this previously). (cherry picked from commit e4cd9de2933ada3e2a4b43552729ae3a370128bf) diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..c059c98 --- /dev/null +++ b/NEWS @@ -0,0 +1,107 @@ +Release 2.7.0 (2009-04-15) +-------------------------- +Compared to the 2.6 series, 2.7.0 has a large number of bug fixes, but +also a few significant features, such as: + + SDVO-TV support, available on ADD2 card (bug#9992) and + D945GCLF2 board (bug#17776). + + Basic SDVO-LVDS support + + XV video display without tearing + [Though this isn't working for all users yet, see + https://bugs.freedesktop.org/show_bug.cgi?id=21076 ] + + Various fixes for UXA, DRI2, and Kernel modesetting. + +We encourage users to use kernel modesetting and UXA acceleration with +this release, which should give the best performance and +robustness. When KMS is available, UXA is the default acceleration +used by the driver, (EXA is the default otherwise). + +Some of the most notable bugs fixed in 2.7.0 include: + + [GM45 965GM] bad htotal causes panel startup failure + https://bugs.freedesktop.org/show_bug.cgi?id=17292 + + [xrandr TV] need TV output property control + https://bugs.freedesktop.org/show_bug.cgi?id=12763 + + [TV] "xrandr --set TV_FORMAT" gets BadMatch error + https://bugs.freedesktop.org/show_bug.cgi?id=16566 + + [945 tiling] Low performance due to no A17 workaround + https://bugs.freedesktop.org/show_bug.cgi?id=16835 + + [TV]Flicker when launching applications in the 2.4-branch + https://bugs.freedesktop.org/show_bug.cgi?id=17405 + + [945GM FBC] FBC causes underruns & flicker + https://bugs.freedesktop.org/show_bug.cgi?id=18651 + + [xv] Textured video suffers from tearing + https://bugs.freedesktop.org/show_bug.cgi?id=19635 + + [G45] Random hangs with UXA + https://bugs.freedesktop.org/show_bug.cgi?id=19734 + + [945GM] Any 3D app is slow in resolution higher than 800x600 + with UXA+DRI2, due to tiling + https://bugs.freedesktop.org/show_bug.cgi?id=19738 + + [i915 UXA,EXA] rotation messes display with tiling on + https://bugs.freedesktop.org/show_bug.cgi?id=20265 + + [G45] DRI2/UXA gives solid white instead of transparency + https://bugs.freedesktop.org/show_bug.cgi?id=20321 + + LVDS output not detected + https://bugs.freedesktop.org/show_bug.cgi?id=20517 + + xf86-video-intel-2.6.3: Xv crashes X server + https://bugs.freedesktop.org/show_bug.cgi?id=20525 + + [G965 non-GEM] systray in KDE 4 completely broken + https://bugs.freedesktop.org/show_bug.cgi?id=20527 + + [SDVO-TV]the desktop is teared in four sections on the screen + https://bugs.freedesktop.org/show_bug.cgi?id=20550 + + Intel video driver 2.6.3 crashes with XVideo + https://bugs.freedesktop.org/show_bug.cgi?id=20563 + + [855GM] Xv crash with non-KMS + https://bugs.freedesktop.org/show_bug.cgi?id=20585 + + 2.6.99.902 breaks native 1680x1050 mode on TMDS -- EDID miss + https://bugs.freedesktop.org/show_bug.cgi?id=20594 + + [945GM TV] 2.6.99.902 sets a too high CONTRAST-value + https://bugs.freedesktop.org/show_bug.cgi?id=20670 + + [915GM] fail to detect LVDS with new VBT code + https://bugs.freedesktop.org/show_bug.cgi?id=20752 + + [regression i965]tiled output when start X + https://bugs.freedesktop.org/show_bug.cgi?id=20803 + + 2.6.99.902: LVDS wrongly detected as disconnected + https://bugs.freedesktop.org/show_bug.cgi?id=20826 + + vt switching fails and crashes X + https://bugs.freedesktop.org/show_bug.cgi?id=20863 + + [HDMI] The screen will flicker when some application runs on + G45-64 + https://bugs.freedesktop.org/show_bug.cgi?id=20875 + + TexturedVideo is offsetted wrongly on dualhead + https://bugs.freedesktop.org/show_bug.cgi?id=20980 + + [EXA] xvideo hang X + https://bugs.freedesktop.org/show_bug.cgi?id=21027 + + [EXA] x11perf performance regression + https://bugs.freedesktop.org/show_bug.cgi?id=21029 + + And many others... commit 3fafb28a4323c6897bfe36882857bf89e5d88de8 Author: Carl Worth <cwo...@cworth.org> Date: Wed Apr 15 16:10:52 2009 -0700 Clarify that the default acceleration is UXA if KMS is available. Stale documentation considered harmful of course. (cherry picked from commit 506c810f8f3db89048dda9777902f142ffeb86aa) diff --git a/man/intel.man b/man/intel.man index f85d3d1..4f8db81 100644 --- a/man/intel.man +++ b/man/intel.man @@ -154,7 +154,7 @@ UXA is a newer acceleration architecture built from the EXA acceleration code but taking advantage of kernel memory management to provide simpler, faster code. .IP -Default: "EXA". +Default: "UXA" if kernel-modesetting is available, "EXA" otherwise. .TP .BI "Option \*qModeDebug\*q \*q" boolean \*q Enable printing of additional debugging information about modesetting to diff --git a/src/i830_driver.c b/src/i830_driver.c index 32ca6c9..48e2351 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -1604,8 +1604,11 @@ I830AccelMethodInit(ScrnInfoPtr pScrn) * config option AccelMethod to determine which to use, defaulting to EXA * if none is specified, or if the string was unrecognized. * - * All this *could* go away if we removed XAA support from this driver, - * for example. :) + * Then, just to make things more confusing, the default EXA will + * be overridden to UXA if KMS is available. See I830DrmModeInit. + * + * All this *will* go away when we remov XAA and EXA support from + * this driver. (And there will be much rejoicing.) */ if (!(pI830->accel == ACCEL_NONE)) { #ifdef I830_USE_UXA commit 0f0569b5658fbaf3b84232f13a28f6633a89e9b9 Author: Carl Worth <cwo...@cworth.org> Date: Wed Apr 15 15:39:06 2009 -0700 Add a new AUTHORS file This is a sorted list of everyone with more than 2 commits in the git revision history. We also list some historical authors mentioned in the man page, (with code presumably pre-dating the beginning of revision history). (cherry picked from commit b9716b836cb2b4569c90b81f344932ac668dc5bf) diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..31a1da1 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,62 @@ +Authors of xf86-video-intel (since 2003-11-14 when revision-control +history begins, sorted roughly by number of commits, descending): + +Eric Anholt +Keith Packard +Zhenyu Wang +Jesse Barnes +Alan Hourihane +Carl Worth +Dave Airlie +Michel Dänzer +Zou Nan Hai +Kristian Høgsberg +Adam Jackson +Nian Wu +Xian, Haihao +Egbert Eich +Kevin E Martin +Alan Coopersmith +Hong Liu +Julien Cristau +Ma Ling +Bryce Harrington +Daniel Stone +Kaleb Keithley +Paulo Cesar Pereira de Andrade +Eamon Walsh +Matthieu Herrb +Owain G. Ainsworth +Søren Sandmann Pedersen +Brice Goglin +Ian Romanick +Lukáš Hejtmánek +Matthias Hopf +Olivier Fourdan +Robert Noland +Rémi Cardona +Shuang He +Wu Fengguang +and many others (with 1 or 2 commits) + +Other authors (from before revision-control history begins): + +Keith Whitwell +Jonathan Bian +Matthew J Sottek +Jeff Hartmann +Mark Vojkovich +H. J. Lu +David Dawes + +If the above list is missing anyone, please accept our apologies and +let us know. + +The X.Org version of this driver is maintained by Intel Corporation: + + http://www.intellinuxgraphics.org + +The X11R6 version of this driver originally came from XFree86 4.4 rc2. + +The XFree86 version of this driver was donated to The XFree86 Project +by Precision Insight, Inc.; Cedar Park, TX; USA commit d94986bcd313486f8018a10729439af0f7e7052d Author: Carl Worth <cwo...@cworth.org> Date: Wed Apr 15 15:38:11 2009 -0700 README: Remove almost all time-sensitive information This was all very stale, and is better convered in intel.man. We replace this with a list of pointers to where to get current information, (man page, web site, and mailing list). (cherry picked from commit 8deb3a3709a9aaa549be404566715a01246354d9) diff --git a/README b/README index c91c661..8ac6e1f 100644 --- a/README +++ b/README @@ -1,106 +1,51 @@ -Information for Intel graphics driver users -Eric Anholt -2007-07-02 +xf86-video-intel +Open-source X.org graphics driver for Intel graphics +http://www.intellinuxgraphics.com/ -This document provides a brief summary of the Intel graphics support provided -by the xf86-video-intel driver. More information can also be found in the -intel(4) manual page. +What is xf86-video-intel +------------------------ +The xf86-video-intel module is an open-source 2D graphics driver for +the X Window System as implemented by X.org. It supports a variety of +Intel graphics chipsets including: -Supported Hardware: - i810, - i810-dc100, - i810e - i815 - i830 - i845 - i852 - i855 - 915G - 915GM - 945G - 945GM/GME - 946GZ - G965 - GM/GME965 - G33/Q33/Q35 + i810/i810e/i810-dc100,i815, + i830M,845G,852GM,855GM,865M, + 915G/GM,945G/GM/GME,946GZ + G/GM/GME965, + G/Q33,G/Q35,G41,G/Q43 + G/GM/Q45 -Features -- Full support for 8, 15, 16, and 24 bit pixel depths. -- Hardware accelerated 2D drawing engine support for 8, 15, 16 and 24 bit - pixel depths. -- Hardware accelerated 3D drawing using OpenGL and the DRI. -- Hardware cursor support to reduce sprite flicker. -- Textured video XV implementation on i915 through i965. -- Hardware overlay XV implementation up through i945. -- Screen resize and rotation. +Where to get more information about the driver +---------------------------------------------- +The primary source of information about this and other open-source +drivers for Intel graphics is: -Technical Notes -- Interlace modes cannot be supported. -- This driver requires kernel support for AGP, which is included in Linux - kernels 2.3.42 and higher, and FreeBSD 4.1 and higher. -- This driver may be built against xserver 1.2.0 or newer. If built - from git source against an older server, a copy of xserver 1.3.0 source is - needed to complete the build, which is chosen with the --with-xserver-source - argument to ./configure. The compatibility mode with xserver 1.2.0 will have - limited functionality, in particular by not supporting RandR 1.2 or the - new Damage 1.1 updated needed for 3D applications to work with display - rotation. + http://intellinuxgraphics.org/ -Configuration +Documentation specific to the xf86-video-intel driver including +possible configuration options for the xorg.conf file can be found in +the intel(4) manual page. After installing the driver this +documentation can be read with the following command: -The driver auto-detects all device information necessary to -initialize the card. The only lines you should need in the "Device" -section of your xorg.conf file are: + man intel - Section "Device" - Identifier "intel" - Driver "intel" - EndSection +Mailing list for communication with users and developers of +xf86-video-intel: -Please refer to the intel(4) manual page for information on configuration -options. + intel-...@lists.freedesktop.org. + Note: Subscription is required before posting, but anyone is + free to subscribe. See instructions (and archives) here: -Known Limitations -- No support for "zaphod mode" dualhead. This is the mode in which two - Device sections are placed in the config file, and doesn't support DRI or - many other features. Instead, only "MergedFB-style" dualhead is supported. -- No support for X Screens larger than 2048 pixels in either direction - before the 965. This reflects hardware limitations in the x direction on - those older chips, and limits dualhead functionality. It may be possible to - extend the limit vertically on these older chips. -- i855 XV may cause hangs. This was present in the previous release, and no - workaround is known. -- SDVO TV-out cards not supported. This should be fixed in the next - release. -- Gray output with integrated TV-out and PAL TVs. -- EXA support unstable on i845. -- Some GM965 systems, such as the Thinkpad T61, probe the TV as being connected - even when no output connector is available. This results in the gnome-panel - issue noted below. + http://lists.freedesktop.org/mailman/listinfo/intel-gfx -Common issues not caused by the driver -- Font sizes (DPI) are wrong. Some displays incorrectly report their - physical size, which is harmless on most OSes that always assume 96dpi - displays. This can be fixed through quirks for specific monitors in the X - Server, and the output of xrandr --prop along with a physical measurement of - the screen size in a bug report against the server can help get that fixed. -- gnome-panel is located in the middle of the screen. gnome-panel places - itself within head #0's boundaries, which doesn't work well with a second - head covering the same area as head #0 but larger. -- Older resolution-changing applications have poor results in - multihead systems. Previous extensions such as RandR 1.1 exposed only a - single output to client programs, and those requests map poorly to multi-head - systems. Currently, those requests map to just one of the outputs in the - RandR 1.2 environment, and those applications need to be updated to RandR 1.2 - API when available for better results. +To report bugs encountered with the driver: -The X11R6 version of this driver originally came from XFree86 4.4 rc2. + http://bugs.freedesktop.org -The XFree86 version of this driver was donated to The XFree86 Project by: - Precision Insight, Inc. - Cedar Park, TX - USA + Product: xorg + Component: Driver/intel -The X.Org version of this driver is maintained by Intel Corporation. -<http://www.intellinuxgraphics.org> +To see bugs that are targeted to be fixed in the next release: + + https://bugs.freedesktop.org/show_bug.cgi?id=intel-2d-release commit 6f48379fb8e5997b4b2098b7df5bed399bc559f6 Author: Li Peng <peng...@intel.com> Date: Fri Apr 10 14:39:35 2009 +0800 Turn on front buffer tiling in KMS. This code disabled front buffer tiling in KMS. Turn it on since kernel handles all tiling now, this improves performance of x11perf -aa10text from 97k to 286k on my 945GME. Should help with #20761, if not totally fix it. Acked-by: Jesse Barnes <jbar...@virtuousgeek.org> Signed-off-by: Li Peng <peng...@intel.com> (cherry picked from commit 9b615a52671aacf34666f90ecfff98651ce6afe2) diff --git a/src/i830_memory.c b/src/i830_memory.c index 0f8d90d..d3138d9 100644 --- a/src/i830_memory.c +++ b/src/i830_memory.c @@ -1244,8 +1244,6 @@ i830_allocate_framebuffer(ScrnInfoPtr pScrn) tile_format = TILE_XMAJOR; if (pI830->accel == ACCEL_XAA && IS_I965G(pI830)) tile_format = TILE_NONE; - if (pI830->use_drm_mode) - tile_format = TILE_NONE; if (!IsTileable(pScrn, pitch)) tile_format = TILE_NONE; commit c8633c82278085917bd6b0d0ea6e8a74eaa6deb4 Author: Ma Ling <ling...@intel.com> Date: Mon Apr 13 14:27:35 2009 +0800 update manpage for BROADCAST_RGB property (cherry picked from commit 053432991c812146f6e7c6f13c6ace55385c825f) diff --git a/man/intel.man b/man/intel.man index 6ccacda..f85d3d1 100644 --- a/man/intel.man +++ b/man/intel.man @@ -321,6 +321,14 @@ First DVI SDVO output .SS "TMDS-2" Second DVI SDVO output +.SS "TMDS-1", "TMDS-2", "HDMI-1", "HDMI-2" +DVI/HDMI outputs. Avaliable common properties include: +.PP +.B BROADCAST_RGB +- method used to set RGB color range(full range 0-255, not full range 16-235) +.TP 2 +Adjusting this propertie allows you to set RGB color range on each channel in order to match HDTV requirment(default 0 for full range). Setting 1 means RGB color range is 16-235, 0 means RGB color range is 0-255 on each channel. + .PP SDVO and DVO TV outputs are not supported by the driver at this time. commit 02c8a1a6e821a7c70c19329bd9ead4f9fcdcfe8a Author: Ma Ling <ling...@intel.com> Date: Mon Apr 13 14:24:57 2009 +0800 set broadcast RGB mode for integrated HDMI output. (cherry picked from commit 62ba7211fe9b6aada125ebfe34cf7161e817ad6b) diff --git a/src/i830_hdmi.c b/src/i830_hdmi.c index 05aa9ac..0abb151 100644 --- a/src/i830_hdmi.c +++ b/src/i830_hdmi.c @@ -33,6 +33,7 @@ #include "i830.h" #include "xf86Modes.h" #include "i830_display.h" +#include "X11/Xatom.h" struct i830_hdmi_priv { uint32_t output_reg; @@ -40,8 +41,12 @@ struct i830_hdmi_priv { uint32_t save_SDVO; Bool has_hdmi_sink; + /* Default 0 for full RGB range 0-255, 1 is for RGB range 16-235 */ + uint32_t broadcast_rgb; }; +static Atom broadcast_atom; + static int i830_hdmi_mode_valid(xf86OutputPtr output, DisplayModePtr mode) { @@ -214,7 +219,91 @@ i830_hdmi_destroy (xf86OutputPtr output) } } +static void +i830_hdmi_create_resources(xf86OutputPtr output) +{ + ScrnInfoPtr pScrn = output->scrn; + I830Ptr pI830 = I830PTR(pScrn); + I830OutputPrivatePtr intel_output = output->driver_private; + struct i830_hdmi_priv *dev_priv = intel_output->dev_priv; + INT32 broadcast_range[2]; + int err; + + /* only R G B are 8bit color mode */ + if (pScrn->depth != 24 || + /* only 965G and G4X platform */ + !(IS_I965G(pI830) || IS_G4X(pI830))) + return; + + broadcast_atom = + MakeAtom("BROADCAST_RGB", sizeof("BROADCAST_RGB") - 1, TRUE); + + broadcast_range[0] = 0; + broadcast_range[1] = 1; + err = RRConfigureOutputProperty(output->randr_output, + broadcast_atom, + FALSE, TRUE, FALSE, 2, broadcast_range); + if (err != 0) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "RRConfigureOutputProperty error, %d\n", err); + return; + } + /* Set the current value of the broadcast property as full range */ + dev_priv->broadcast_rgb = 0; + err = RRChangeOutputProperty(output->randr_output, + broadcast_atom, + XA_INTEGER, 32, PropModeReplace, + 1, &dev_priv->broadcast_rgb, + FALSE, TRUE); + if (err != 0) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "RRChangeOutputProperty error, %d\n", err); + return; + } +} + +static Bool +i830_hdmi_set_property(xf86OutputPtr output, Atom property, + RRPropertyValuePtr value) +{ + ScrnInfoPtr pScrn = output->scrn; + I830Ptr pI830 = I830PTR(pScrn); + I830OutputPrivatePtr intel_output = output->driver_private; + struct i830_hdmi_priv *dev_priv = intel_output->dev_priv; + uint32_t temp; + + if (property == broadcast_atom) { + uint32_t val; + + if (value->type != XA_INTEGER || value->format != 32 || + value->size != 1) + { + return FALSE; + } + + val = *(INT32 *)value->data; + if (val < 0 || val > 1) + { + return FALSE; + } + if (val == dev_priv->broadcast_rgb) + return TRUE; + + temp = INREG(dev_priv->output_reg); + + if (val == 1) + temp |= SDVO_COLOR_NOT_FULL_RANGE; + else if (val == 0) + temp &= ~SDVO_COLOR_NOT_FULL_RANGE; + + OUTREG(dev_priv->output_reg, temp); + dev_priv->broadcast_rgb = val; + } + return TRUE; +} + static const xf86OutputFuncsRec i830_hdmi_output_funcs = { + .create_resources = i830_hdmi_create_resources, .dpms = i830_hdmi_dpms, .save = i830_hdmi_save, .restore = i830_hdmi_restore, @@ -225,6 +314,7 @@ static const xf86OutputFuncsRec i830_hdmi_output_funcs = { .commit = i830_output_commit, .detect = i830_hdmi_detect, .get_modes = i830_ddc_get_modes, + .set_property = i830_hdmi_set_property, .destroy = i830_hdmi_destroy }; commit 87dcf09b137a26919d36bf0cb659ff95bdb97c9b Author: Ma Ling <ling...@intel.com> Date: Mon Apr 13 14:23:06 2009 +0800 set broadcast RGB mode for HDMI and TMDS from SDVOX output Almost all digital TVs accept broadcast RGB values from 16 to 235 for each channel, otherwise for those uncompensated videos, when RGB values are set from 0 to 255, they will shows black and whiter clamping, which seriously degrades picture quality. The patch will enable the broadcast RGB mode for hdtv according to user's setting. It fixed bug #14486 (cherry picked from commit 69388953ce889080d5f014123d89bf3eb45f3d8d) diff --git a/src/i810_reg.h b/src/i810_reg.h index 5211400..7e587f9 100644 --- a/src/i810_reg.h +++ b/src/i810_reg.h @@ -1299,6 +1299,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define SDVO_ENCODING_HDMI (0x2 << 10) /** Requird for HDMI operation */ #define SDVO_NULL_PACKETS_DURING_VSYNC (1 << 9) +#define SDVO_COLOR_NOT_FULL_RANGE (1 << 8) #define SDVO_BORDER_ENABLE (1 << 7) #define SDVO_AUDIO_ENABLE (1 << 6) /** New with 965, default is to be set */ diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c index a7b5171..29ccd4e 100644 --- a/src/i830_sdvo.c +++ b/src/i830_sdvo.c @@ -49,6 +49,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #include "i830_display.h" #include "i810_reg.h" #include "i830_sdvo_regs.h" +#include "X11/Xatom.h" /** SDVO driver private structure. */ struct i830_sdvo_priv { @@ -110,6 +111,8 @@ struct i830_sdvo_priv { /** DDC bus used by this SDVO output */ uint8_t ddc_bus; + /* Default 0 for full RGB range 0-255, 1 is for RGB range 16-235 */ + uint32_t broadcast_rgb; /** State for save/restore */ /** @{ */ @@ -121,6 +124,8 @@ struct i830_sdvo_priv { /** @} */ }; +static Atom broadcast_atom; + /** * Writes the SDVOB or SDVOC with the given value, but always writes both * SDVOB and SDVOC to work around apparent hardware issues (according to @@ -1927,7 +1932,94 @@ i830_sdvo_get_crtc(xf86OutputPtr output) } #endif +static void +i830_sdvo_create_resources(xf86OutputPtr output) +{ + ScrnInfoPtr pScrn = output->scrn; + I830Ptr pI830 = I830PTR(pScrn); + I830OutputPrivatePtr intel_output = output->driver_private; + struct i830_sdvo_priv *dev_priv = intel_output->dev_priv; + INT32 broadcast_range[2]; + int err; + + /* only R G B are 8bit color mode */ + if (pScrn->depth != 24 || + /* only 965G and G4X platform */ + !(IS_I965G(pI830) || IS_G4X(pI830)) || + /* only TMDS encoding */ + !(strstr(output->name, "TMDS") || strstr(output->name, "HDMI"))) + return; + + broadcast_atom = + MakeAtom("BROADCAST_RGB", sizeof("BROADCAST_RGB") - 1, TRUE); + + broadcast_range[0] = 0; + broadcast_range[1] = 1; + err = RRConfigureOutputProperty(output->randr_output, + broadcast_atom, + FALSE, TRUE, FALSE, 2, broadcast_range); + if (err != 0) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "RRConfigureOutputProperty error, %d\n", err); + return; + } + /* Set the current value of the broadcast property as full range */ + dev_priv->broadcast_rgb = 0; + err = RRChangeOutputProperty(output->randr_output, + broadcast_atom, + XA_INTEGER, 32, PropModeReplace, + 1, &dev_priv->broadcast_rgb, + FALSE, TRUE); + if (err != 0) { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + "RRChangeOutputProperty error, %d\n", err); + return; + } +} + +static Bool +i830_sdvo_set_property(xf86OutputPtr output, Atom property, + RRPropertyValuePtr value) +{ + ScrnInfoPtr pScrn = output->scrn; + I830Ptr pI830 = I830PTR(pScrn); + I830OutputPrivatePtr intel_output = output->driver_private; + struct i830_sdvo_priv *dev_priv = intel_output->dev_priv; + uint32_t temp; + + if (property == broadcast_atom) { + uint32_t val; + + if (value->type != XA_INTEGER || value->format != 32 || + value->size != 1) + { + return FALSE; + } + + val = *(INT32 *)value->data; + if (val < 0 || val > 1) + { + return FALSE; + } + if (val == dev_priv->broadcast_rgb) + return TRUE; + + temp = INREG(dev_priv->output_device); + + if (val == 1) + temp |= SDVO_COLOR_NOT_FULL_RANGE; -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org