xf86-video-intel: 5 commits - configure.ac Makefile.am man/intel.man README README.sgml src/i830_bios.c src/i830_display.c src/i830_driver.c src/i830.h src/i830_lvds.c src/i830_sdvo.c src/i830_tv.c TODO
Eric Anholt
anholt at kemper.freedesktop.org
Tue Apr 3 10:18:48 EEST 2007
Makefile.am | 7 -
README | 278 +++++++++++++++++++----------------------------------
README.sgml | 133 -------------------------
TODO | 3
configure.ac | 2
man/intel.man | 4
src/i830.h | 3
src/i830_bios.c | 8 -
src/i830_display.c | 16 +--
src/i830_driver.c | 25 +++-
src/i830_lvds.c | 4
src/i830_sdvo.c | 56 ++++++----
src/i830_tv.c | 24 +++-
13 files changed, 195 insertions(+), 368 deletions(-)
New commits:
diff-tree d9d05b553ca1f98efc230ef13f34576122311ac1 (from eb45315b07624cb0506d539f523728a651efb798)
Author: Eric Anholt <eric at anholt.net>
Date: Tue Apr 3 00:15:02 2007 -0700
Bump version to 1.9.94 for 2.0 RC4.
diff --git a/configure.ac b/configure.ac
index dccfd75..06431ab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-intel],
- 1.9.93,
+ 1.9.94,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-intel)
diff-tree eb45315b07624cb0506d539f523728a651efb798 (from 9b78208f1ef1a8ee98f2aa139956659169e234ab)
Author: Eric Anholt <eric at anholt.net>
Date: Mon Apr 2 18:20:33 2007 -0700
Move README to being a plain old text file.
diff --git a/Makefile.am b/Makefile.am
index 2b6c46a..8cbe4a9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -21,9 +21,4 @@
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src man
-if BUILD_LINUXDOC
-README: README.sgml
- $(MAKE_TEXT) README.sgml && mv README.txt README
-endif
-
-EXTRA_DIST = README.sgml
+EXTRA_DIST = README
diff --git a/README b/README
index e2061c4..788acdb 100644
--- a/README
+++ b/README
@@ -1,177 +1,103 @@
- Information for Intel graphics driver users
- Eric Anholt
- 2006-08-04
- ____________________________________________________________
-
- Table of Contents
-
-
- 1. Introduction
- 2. Supported Hardware
- 3. Features
- 4. Technical Notes
- 5. Configuration
- 6. Driver Options
- 7. Known Limitations
- 8. Author
-
-
- ______________________________________________________________________
-
- 11.. IInnttrroodduuccttiioonn
-
- 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 i810(4) manual page.
-
-
- 22.. SSuuppppoorrtteedd HHaarrddwwaarree
-
-
- +o i810,
-
- +o i810-dc100,
-
- +o i810e
-
- +o i815
-
- +o i830
-
- +o i845
-
- +o i852
-
- +o i855
-
- +o i915
-
- +o i945
-
- +o i965
-
-
-
- 33.. FFeeaattuurreess
-
-
- +o Full support for 8, 15, 16, and 24 bit pixel depths.
-
- +o Hardware accelerated 2D drawing engine support for 8, 15, 16 and 24
- bit pixel depths.
-
- +o Hardware accelerated 3D drawing using OpenGL and the DRI.
-
- +o Hardware cursor support to reduce sprite flicker.
-
- +o Textured video XV implementation on i915 through i965.
-
- +o Hardware overlay XV implementation up through i945.
-
- +o Screen resize and rotation on chipsets up through i945.
-
- +o Screen resize on i965.
-
-
-
- 44.. TTeecchhnniiccaall NNootteess
-
-
- +o Interlace modes cannot be supported.
-
- +o This driver requires kernel support for AGP, which is included in
- Linux kernels 2.3.42 and higher, and FreeBSD 4.1 and higher.
-
-
-
- 55.. CCoonnffiigguurraattiioonn
-
- 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:
-
- Section "Device"
- Identifier "Intel i810"
- Driver "i810"
- EndSection
-
-
-
- In order to use most resolutions, it is necessary to install the
- "agpgart.o" module. You will probably have to compile the module
- yourself (see the notes in the module).
-
-
- 66.. DDrriivveerr OOppttiioonnss
-
- Please refer to the i810(4) manual page for information on
- configuration options.
-
-
-
- 77.. KKnnoowwnn LLiimmiittaattiioonnss
-
-
- +o Many systems with Intel graphics have issues with setting video
- modes at larger than some small maximum resolution. This is not
- fixed in the current release, but is being actively worked on in
- the modesetting branch.
-
- +o Bug #5795: Some systems have issues with VT switching. This should
- be fixed with the modesetting brach integration.
-
- +o Bug #5817: Hotkey switching from LVDS to CRT breaks CRT output.
- This is a known issue, but will not be fixed in the current
- release.
-
- +o Bug #6635: Video is output from an incorrect offset in the
- framebuffer. This is expected to be fixed with the modesetting
- branch integration.
-
- +o GL_EXT_texture_compression_s3tc is not supported. We can't support
- the extension due to patent restrictions on compression, but may be
- able to support an option for partial extension support in the
- future. For now, this prevents Quake4 and some other games from
- running.
-
- +o Some X Test Suite cases sometimes fail due to a timeout. These
- cases include: Xt8/XtResizeWindow, Xt8/XtQueryGeometry,
- Xt9/XtAppAddInput, Xt9/XtRemoveInput, Xt9/XtAppAddTimeOut,
- Xt9/XtRemoveTimeOut, Xt9/XtAddGrab, Xt9/XtRemoveGrab.
-
- +o Some X Test Suite cases fail in 64-bit mode: Xlib9/XDrawArc,
- XDrawImageString, XDrawLine, XDrawRectangle, XDrawSegments,
- XFillArc, XFillPolygon, XFillRectangle, XPutImage,
- Xt11/XtVaGetSubresources, XtSetSubvalues, and XtVaSetSubvalues.
-
- +o Some GLEAN test cases fail if DRI is enabled: pointAtten,
- readPixSanity, texCombine, texCube, texEnv, texgen,
- coloredTexPerf2, and coloredLitPerf2.
-
-
-
- 88.. AAuutthhoorr
-
-
- +o Eric Anholt
-
- +o Keith Whitwell
-
- The X11R7.1 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
-
-
-
- The X.Org version of this driver is maintained by Intel Corporation.
-
- http://www.intellinuxgraphics.org
-
-
+Information for Intel graphics driver users
+Eric Anholt
+2006-04-02
+
+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.
+
+Supported Hardware:
+ i810,
+ i810-dc100,
+ i810e
+ i815
+ i830
+ i845
+ i852
+ i855
+ i915
+ i945
+ i965
+
+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.
+
+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.
+
+Configuration
+
+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:
+
+ Section "Device"
+ Identifier "intel"
+ Driver "intel"
+ EndSection
+
+Please refer to the intel(4) manual page for information on configuration
+options.
+
+
+Known Limitations
+- Bug #8534: i830 laptop panels not supported. The driver
+ will fail to recognize them, and only function through VGA output. Two
+ partial DVO chip drivers (ivch and ch7017) are included which contain some of
+ the code necessary for i830 laptop panel support, but some I2C debugging will
+ be necessary to get those drivers to attach.
+- 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.
+
+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 applicationss 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.
+
+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
+The X.Org version of this driver is maintained by Intel Corporation.
+<http://www.intellinuxgraphics.org>
diff --git a/README.sgml b/README.sgml
deleted file mode 100644
index 4a67017..0000000
--- a/README.sgml
+++ /dev/null
@@ -1,147 +0,0 @@
-<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
-<!ENTITY % defs SYSTEM "defs.ent"> %defs;
-]>
-
-<article>
-<title>Information for Intel graphics driver users
-<author>Eric Anholt
-<date>2006-04-02
-<toc>
-
-<sect>Introduction
-<p>
-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
-<htmlurl name="intel(4)" url="intel.4.html"> manual page.
-
-<sect>Supported Hardware
-<p>
-<itemize>
- <item>i810,
- <item>i810-dc100,
- <item>i810e
- <item>i815
- <item>i830
- <item>i845
- <item>i852
- <item>i855
- <item>i915
- <item>i945
- <item>i965
-</itemize>
-
-
-<sect>Features
-<p>
-<itemize>
- <item>Full support for 8, 15, 16, and 24 bit pixel depths.
- <item>Hardware accelerated 2D drawing engine support for 8, 15, 16 and
- 24 bit pixel depths.
- <item>Hardware accelerated 3D drawing using OpenGL and the DRI.
- <item>Hardware cursor support to reduce sprite flicker.
- <item>Textured video XV implementation on i915 through i965.
- <item>Hardware overlay XV implementation up through i945.
- <item>Screen resize and rotation.
-</itemize>
-
-
-<sect>Technical Notes
-<p>
-<itemize>
- <item>Interlace modes cannot be supported.
- <item>This driver requires kernel support for AGP, which is
- included in Linux kernels 2.3.42 and higher, and FreeBSD 4.1
- and higher.
- <item>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.
-</itemize>
-
-
-<sect>Configuration
-<p>
-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:
-<verb>
- Section "Device"
- Identifier "intel"
- Driver "intel"
- EndSection
-</verb>
-
-<sect>Driver Options
-<p>
-Please refer to the <htmlurl name="intel(4)" url="intel.4.html"> manual page
-for information on configuration options.
-
-
-<sect>Known Limitations
-<p>
-<itemize>
- <item>Bug #8534: i830 laptop panels not supported. The driver
- will fail to recognize them, and only function through VGA output. Two
- partial DVO chip drivers (ivch and ch7017) are included which contain some of
- the code necessary for i830 laptop panel support, but some I2C debugging will
- be necessary to get those drivers to attach.
- <item>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.
- <item>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.
- <item>i855 XV may cause hangs. This was present in the previous release,
- and no workaround is known.
- <item>SDVO TV-out cards not supported. This should be fixed in the next
- release.
- <item>Gray output with integrated TV-out.
- <item>EXA support unstable on i845.
-</itemize>
-
-<sect>Common issues not caused by the driver
-<itemize>
- <item>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.
- <item>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.
- <item>Older resolution-changing applicationss 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.
- <item>
-</itemize>
-
-<sect>Author
-<p>
-<itemize>
- <item>Eric Anholt
- <item>Keith Whitwell
-</itemize>
-
-The X11R&relvers; version of this driver originally came from XFree86 4.4 rc2.
-
-The XFree86 version of this driver was donated to The XFree86 Project by:
-<verb>
- Precision Insight, Inc.
- Cedar Park, TX
- USA
-</verb>
-
-The X.Org version of this driver is maintained by Intel Corporation.
-
-<htmlurl name="http://www.intellinuxgraphics.org"
- url="http://www.intellinuxgraphics.org">
-
-
-</article>
diff-tree 9b78208f1ef1a8ee98f2aa139956659169e234ab (from 9ea83d440d6b9e30d4627e34168226a6b4b2a841)
Author: Eric Anholt <eric at anholt.net>
Date: Mon Apr 2 18:20:15 2007 -0700
Move a bunch of debugging verbosity under Option "ModeDebug".
diff --git a/man/intel.man b/man/intel.man
index 3197feb..80b327d 100644
--- a/man/intel.man
+++ b/man/intel.man
@@ -175,6 +175,10 @@ Choose acceleration architecture, either
(but stable) XFree86 based acceleration architecture. EXA is a newer and
simpler acceleration architecture designed to better accelerate the X Render
extension. Default: "XAA".
+.TP
+.BI "Option \*qModeDebug\*q \*q" boolean \*q
+Enable printing of additional debugging information about modesetting to
+the server log.
.PP
The 830M and newer driver supports RandR 1.2, exposing the VGA, LVDS
diff --git a/src/i830.h b/src/i830.h
index e75eb89..4cb31b6 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -527,6 +527,9 @@ typedef struct _I830Rec {
CARD32 saveBLC_PWM_CTL;
enum last_3d last_3d;
+
+ /** Enables logging of debug output related to mode switching. */
+ Bool debug_modes;
} I830Rec;
#define I830PTR(p) ((I830Ptr)((p)->driverPrivate))
diff --git a/src/i830_bios.c b/src/i830_bios.c
index cb886b5..0d00917 100644
--- a/src/i830_bios.c
+++ b/src/i830_bios.c
@@ -229,9 +229,11 @@ i830_bios_get_panel_mode(ScrnInfoPtr pSc
xf86SetModeDefaultName(fixed_mode);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Found panel mode in BIOS VBT tables:\n");
- xf86PrintModeline(pScrn->scrnIndex, fixed_mode);
+ if (pI830->debug_modes) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Found panel mode in BIOS VBT tables:\n");
+ xf86PrintModeline(pScrn->scrnIndex, fixed_mode);
+ }
xfree(bios);
return fixed_mode;
diff --git a/src/i830_display.c b/src/i830_display.c
index b3a7da9..727d1b2 100644
--- a/src/i830_display.c
+++ b/src/i830_display.c
@@ -884,17 +884,17 @@ i830_crtc_mode_set(xf86CrtcPtr crtc, Dis
if (i830_panel_fitter_pipe (pI830) == pipe)
OUTREG(PFIT_CONTROL, 0);
-#if 1
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Mode for pipe %c:\n", pipe == 0 ? 'A' : 'B');
- xf86PrintModeline(pScrn->scrnIndex, mode);
- if (!xf86ModesEqual(mode, adjusted_mode)) {
+ if (pI830->debug_modes) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Adjusted mode for pipe %c:\n", pipe == 0 ? 'A' : 'B');
+ "Mode for pipe %c:\n", pipe == 0 ? 'A' : 'B');
xf86PrintModeline(pScrn->scrnIndex, mode);
+ if (!xf86ModesEqual(mode, adjusted_mode)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Adjusted mode for pipe %c:\n", pipe == 0 ? 'A' : 'B');
+ xf86PrintModeline(pScrn->scrnIndex, mode);
+ }
+ i830PrintPll("chosen", &clock);
}
- i830PrintPll("chosen", &clock);
-#endif
if (dpll & DPLL_VCO_ENABLE)
{
diff --git a/src/i830_driver.c b/src/i830_driver.c
index 229c26b..4ee720f 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -275,6 +275,7 @@ typedef enum {
OPTION_COLOR_KEY,
OPTION_CHECKDEVICES,
OPTION_LINEARALLOC,
+ OPTION_MODEDEBUG,
#ifdef XF86DRI_MM
OPTION_INTELTEXPOOL,
OPTION_INTELMMSIZE,
@@ -296,6 +297,7 @@ static OptionInfoRec I830Options[] = {
{OPTION_VIDEO_KEY, "VideoKey", OPTV_INTEGER, {0}, FALSE},
{OPTION_CHECKDEVICES, "CheckDevices",OPTV_BOOLEAN, {0}, FALSE},
{OPTION_LINEARALLOC, "LinearAlloc", OPTV_INTEGER, {0}, FALSE},
+ {OPTION_MODEDEBUG, "ModeDebug", OPTV_BOOLEAN, {0}, FALSE},
#ifdef XF86DRI_MM
{OPTION_INTELTEXPOOL,"Legacy3D", OPTV_BOOLEAN, {0}, FALSE},
{OPTION_INTELMMSIZE, "AperTexSize", OPTV_INTEGER, {0}, FALSE},
@@ -975,6 +977,12 @@ I830PreInit(ScrnInfoPtr pScrn, int flags
memcpy(pI830->Options, I830Options, sizeof(I830Options));
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pI830->Options);
+ if (xf86ReturnOptValBool(pI830->Options, OPTION_MODEDEBUG, FALSE)) {
+ pI830->debug_modes = TRUE;
+ } else {
+ pI830->debug_modes = FALSE;
+ }
+
/* We have to use PIO to probe, because we haven't mapped yet. */
I830SetPIOAccess(pI830);
@@ -1133,8 +1141,10 @@ I830PreInit(ScrnInfoPtr pScrn, int flags
/* Some of the probing needs MMIO access, so map it here. */
I830MapMMIO(pScrn);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Hardware state on X startup:\n");
- i830DumpRegs (pScrn);
+ if (pI830->debug_modes) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Hardware state on X startup:\n");
+ i830DumpRegs (pScrn);
+ }
i830TakeRegSnapshot(pScrn);
@@ -2800,8 +2810,10 @@ I830LeaveVT(int scrnIndex, int flags)
RestoreHWState(pScrn);
- i830CompareRegsToSnapshot(pScrn, "After LeaveVT");
- i830DumpRegs (pScrn);
+ if (pI830->debug_modes) {
+ i830CompareRegsToSnapshot(pScrn, "After LeaveVT");
+ i830DumpRegs (pScrn);
+ }
if (I830IsPrimary(pScrn))
i830_unbind_all_memory(pScrn);
@@ -2850,7 +2862,10 @@ I830EnterVT(int scrnIndex, int flags)
if (!xf86SetDesiredModes (pScrn))
return FALSE;
- i830DumpRegs (pScrn);
+ if (pI830->debug_modes) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Hardware state at EnterVT:\n");
+ i830DumpRegs (pScrn);
+ }
i830DescribeOutputConfiguration(pScrn);
ResetState(pScrn, TRUE);
diff --git a/src/i830_lvds.c b/src/i830_lvds.c
index eb533a7..d16eccb 100644
--- a/src/i830_lvds.c
+++ b/src/i830_lvds.c
@@ -473,7 +473,9 @@ i830_lvds_init(ScrnInfoPtr pScrn)
bios_mode = i830_bios_get_panel_mode(pScrn);
if (bios_mode != NULL) {
if (pI830->panel_fixed_mode != NULL) {
- if (!xf86ModesEqual(pI830->panel_fixed_mode, bios_mode)) {
+ if (pI830->debug_modes &&
+ !xf86ModesEqual(pI830->panel_fixed_mode, bios_mode))
+ {
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"BIOS panel mode data doesn't match probed data, "
"continuing with probed.\n");
diff --git a/src/i830_sdvo.c b/src/i830_sdvo.c
index 324d47e..f0723a9 100644
--- a/src/i830_sdvo.c
+++ b/src/i830_sdvo.c
@@ -214,6 +214,7 @@ static I2CSlaveAddr slaveAddr;
static void
i830_sdvo_write_cmd(xf86OutputPtr output, CARD8 cmd, void *args, int args_len)
{
+ I830Ptr pI830 = I830PTR(output->scrn);
I830OutputPrivatePtr intel_output = output->driver_private;
struct i830_sdvo_priv *dev_priv = intel_output->dev_priv;
int i;
@@ -222,20 +223,25 @@ i830_sdvo_write_cmd(xf86OutputPtr output
ErrorF ("Mismatch slave addr %x != %x\n", slaveAddr, dev_priv->d.SlaveAddr);
/* Write the SDVO command logging */
- xf86DrvMsg(intel_output->pI2CBus->scrnIndex, X_INFO, "%s: W: %02X ", SDVO_NAME(dev_priv), cmd);
- for (i = 0; i < args_len; i++)
- LogWrite(1, "%02X ", ((CARD8 *)args)[i]);
- for (; i < 8; i++)
- LogWrite(1, " ");
- for (i = 0; i < sizeof(sdvo_cmd_names) / sizeof(sdvo_cmd_names[0]); i++) {
- if (cmd == sdvo_cmd_names[i].cmd) {
- LogWrite(1, "(%s)", sdvo_cmd_names[i].name);
- break;
+ if (pI830->debug_modes) {
+ xf86DrvMsg(intel_output->pI2CBus->scrnIndex, X_INFO, "%s: W: %02X ",
+ SDVO_NAME(dev_priv), cmd);
+ for (i = 0; i < args_len; i++)
+ LogWrite(1, "%02X ", ((CARD8 *)args)[i]);
+ for (; i < 8; i++)
+ LogWrite(1, " ");
+ for (i = 0; i < sizeof(sdvo_cmd_names) / sizeof(sdvo_cmd_names[0]);
+ i++)
+ {
+ if (cmd == sdvo_cmd_names[i].cmd) {
+ LogWrite(1, "(%s)", sdvo_cmd_names[i].name);
+ break;
+ }
}
+ if (i == sizeof(sdvo_cmd_names) / sizeof(sdvo_cmd_names[0]))
+ LogWrite(1, "(%02X)", cmd);
+ LogWrite(1, "\n");
}
- if (i == sizeof(sdvo_cmd_names) / sizeof(sdvo_cmd_names[0]))
- LogWrite(1, "(%02X)", cmd);
- LogWrite(1, "\n");
/* send the output regs */
for (i = 0; i < args_len; i++) {
@@ -261,6 +267,7 @@ static const char *cmd_status_names[] =
static CARD8
i830_sdvo_read_response(xf86OutputPtr output, void *response, int response_len)
{
+ I830Ptr pI830 = I830PTR(output->scrn);
I830OutputPrivatePtr intel_output = output->driver_private;
int i;
CARD8 status;
@@ -275,19 +282,20 @@ i830_sdvo_read_response(xf86OutputPtr ou
i830_sdvo_read_byte(output, SDVO_I2C_CMD_STATUS, &status);
/* Write the SDVO command logging */
- xf86DrvMsg(intel_output->pI2CBus->scrnIndex, X_INFO,
- "%s: R: ", SDVO_NAME(SDVO_PRIV(intel_output)));
- for (i = 0; i < response_len; i++)
- LogWrite(1, "%02X ", ((CARD8 *)response)[i]);
- for (; i < 8; i++)
- LogWrite(1, " ");
- if (status <= SDVO_CMD_STATUS_SCALING_NOT_SUPP)
- {
- LogWrite(1, "(%s)", cmd_status_names[status]);
- } else {
- LogWrite(1, "(??? %d)", status);
+ if (pI830->debug_modes) {
+ xf86DrvMsg(intel_output->pI2CBus->scrnIndex, X_INFO,
+ "%s: R: ", SDVO_NAME(SDVO_PRIV(intel_output)));
+ for (i = 0; i < response_len; i++)
+ LogWrite(1, "%02X ", ((CARD8 *)response)[i]);
+ for (; i < 8; i++)
+ LogWrite(1, " ");
+ if (status <= SDVO_CMD_STATUS_SCALING_NOT_SUPP) {
+ LogWrite(1, "(%s)", cmd_status_names[status]);
+ } else {
+ LogWrite(1, "(??? %d)", status);
+ }
+ LogWrite(1, "\n");
}
- LogWrite(1, "\n");
return status;
}
diff --git a/src/i830_tv.c b/src/i830_tv.c
index df956c9..336214f 100644
--- a/src/i830_tv.c
+++ b/src/i830_tv.c
@@ -1312,20 +1312,28 @@ i830_tv_detect_type (xf86CrtcPtr crtc
* 0 0 0 Component
*/
if ((tv_dac & TVDAC_SENSE_MASK) == (TVDAC_B_SENSE | TVDAC_C_SENSE)) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Detected Composite TV connection\n");
+ if (pI830->debug_modes) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Detected Composite TV connection\n");
+ }
type = TV_TYPE_COMPOSITE;
} else if ((tv_dac & (TVDAC_A_SENSE|TVDAC_B_SENSE)) == TVDAC_A_SENSE) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Detected S-Video TV connection\n");
+ if (pI830->debug_modes) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Detected S-Video TV connection\n");
+ }
type = TV_TYPE_SVIDEO;
} else if ((tv_dac & TVDAC_SENSE_MASK) == 0) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Detected Component TV connection\n");
+ if (pI830->debug_modes) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Detected Component TV connection\n");
+ }
type = TV_TYPE_COMPONENT;
} else {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "No TV connection detected\n");
+ if (pI830->debug_modes) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "No TV connection detected\n");
+ }
type = TV_TYPE_NONE;
}
diff-tree 9ea83d440d6b9e30d4627e34168226a6b4b2a841 (from c6d0bf9fb6033339159d98dc2b9fe44759ad9de5)
Author: Eric Anholt <eric at anholt.net>
Date: Mon Apr 2 11:39:27 2007 -0700
Update README source for new release notes.
diff --git a/README.sgml b/README.sgml
index fd52608..4a67017 100644
--- a/README.sgml
+++ b/README.sgml
@@ -5,14 +5,14 @@
<article>
<title>Information for Intel graphics driver users
<author>Eric Anholt
-<date>2006-08-04
+<date>2006-04-02
<toc>
<sect>Introduction
<p>
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
-<htmlurl name="i810(4)" url="i810.4.html"> manual page.
+<htmlurl name="intel(4)" url="intel.4.html"> manual page.
<sect>Supported Hardware
<p>
@@ -41,8 +41,7 @@ by the xf86-video-intel driver. More in
<item>Hardware cursor support to reduce sprite flicker.
<item>Textured video XV implementation on i915 through i965.
<item>Hardware overlay XV implementation up through i945.
- <item>Screen resize and rotation on chipsets up through i945.
- <item>Screen resize on i965.
+ <item>Screen resize and rotation.
</itemize>
@@ -53,6 +52,13 @@ by the xf86-video-intel driver. More in
<item>This driver requires kernel support for AGP, which is
included in Linux kernels 2.3.42 and higher, and FreeBSD 4.1
and higher.
+ <item>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.
</itemize>
@@ -63,50 +69,58 @@ initialize the card. The only lines you
section of your xorg.conf file are:
<verb>
Section "Device"
- Identifier "Intel i810"
- Driver "i810"
+ Identifier "intel"
+ Driver "intel"
EndSection
</verb>
-In order to use most resolutions, it is necessary to install the
-"agpgart.o" module. You will probably have to compile the module yourself
-(see the notes in the module).
-
<sect>Driver Options
<p>
-Please refer to the <htmlurl name="i810(4)" url="i810.4.html"> manual page
+Please refer to the <htmlurl name="intel(4)" url="intel.4.html"> manual page
for information on configuration options.
<sect>Known Limitations
<p>
<itemize>
- <item>Many systems with Intel graphics have issues with setting video modes
-at larger than some small maximum resolution. This is not fixed in the current
-release, but is being actively worked on in the modesetting branch.
- <item>Bug #5795: Some systems have issues with VT switching. This should
-be fixed with the modesetting brach integration.
- <item>Bug #5817: Hotkey switching from LVDS to CRT breaks CRT output. This
-is a known issue, but will not be fixed in the current release.
- <item>Bug #6635: Video is output from an incorrect offset in the framebuffer.
-This is expected to be fixed with the modesetting branch integration.
- <item>GL_EXT_texture_compression_s3tc is not supported. We can't support the
-extension due to patent restrictions on compression, but may be able to support
-an option for partial extension support in the future. For now, this prevents
-Quake4 and some other games from running.
- <item>Some X Test Suite cases sometimes fail due to a timeout. These cases
-include: Xt8/XtResizeWindow, Xt8/XtQueryGeometry, Xt9/XtAppAddInput,
-Xt9/XtRemoveInput, Xt9/XtAppAddTimeOut, Xt9/XtRemoveTimeOut, Xt9/XtAddGrab,
-Xt9/XtRemoveGrab.
- <item>Some X Test Suite cases fail in 64-bit mode: Xlib9/XDrawArc,
-XDrawImageString, XDrawLine, XDrawRectangle, XDrawSegments, XFillArc,
-XFillPolygon, XFillRectangle, XPutImage, Xt11/XtVaGetSubresources,
-XtSetSubvalues, and XtVaSetSubvalues.
- <item>Some GLEAN test cases fail if DRI is enabled: pointAtten,
-readPixSanity, texCombine, texCube, texEnv, texgen, coloredTexPerf2, and
-coloredLitPerf2.
+ <item>Bug #8534: i830 laptop panels not supported. The driver
+ will fail to recognize them, and only function through VGA output. Two
+ partial DVO chip drivers (ivch and ch7017) are included which contain some of
+ the code necessary for i830 laptop panel support, but some I2C debugging will
+ be necessary to get those drivers to attach.
+ <item>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.
+ <item>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.
+ <item>i855 XV may cause hangs. This was present in the previous release,
+ and no workaround is known.
+ <item>SDVO TV-out cards not supported. This should be fixed in the next
+ release.
+ <item>Gray output with integrated TV-out.
+ <item>EXA support unstable on i845.
</itemize>
+<sect>Common issues not caused by the driver
+<itemize>
+ <item>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.
+ <item>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.
+ <item>Older resolution-changing applicationss 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.
+ <item>
+</itemize>
<sect>Author
<p>
diff-tree c6d0bf9fb6033339159d98dc2b9fe44759ad9de5 (from c59e5895a0ea1f219c8f63a02b429a024bd1ed66)
Author: Eric Anholt <eric at anholt.net>
Date: Mon Apr 2 10:09:43 2007 -0700
Remove long-stale TODO file.
diff --git a/TODO b/TODO
deleted file mode 100644
index 17e1449..0000000
--- a/TODO
+++ /dev/null
@@ -1,3 +0,0 @@
-- licensing of new files
-- Figure out what exactly doublescan, interlace mean, and see if we support them.
-- Remove VbeModeInfoData
More information about the xorg-commit
mailing list