[Xorg-commit] xc/programs/Xserver/hw/xfree86/drivers/i810 common.h,1.1.4.1,1.1.4.2 i810.man,1.1.4.1,1.1.4.2 i810_accel.c,1.1.4.1,1.1.4.2 i810_driver.c,1.1.4.3,1.1.4.4 i810_reg.h,1.1,1.1.4.1 i830.h,1.1.4.1,1.1.4.2 i830_accel.c,1.1.4.1,1.1.4.2 i830_driver.c,1.1.4.1,1.1.4.2
Kaleb Keithley
xorg-commit at pdx.freedesktop.org
Wed May 9 17:30:30 EEST 2007
- Previous message: [Xorg-commit] xc/programs/Xserver/hw/xfree86/drivers/ati Imakefile,1.1.4.1,1.1.4.2 ati.c,1.1.4.1,1.1.4.2 ati.h,1.1,1.1.4.1 atiaccel.c,1.1.4.1,1.1.4.2 atiaccel.h,1.1.4.1,1.1.4.2 atiadapter.c,1.1,1.1.4.1 atiadapter.h,1.1,1.1.4.1 atiadjust.c,1.1.4.1,1.1.4.2 atiadjust.h,1.1,1.1.4.1 atiaudio.c,1.1,1.1.4.1 atiaudio.h,1.1,1.1.4.1 atibank.c,1.1,1.1.4.1 atibank.h,1.1,1.1.4.1 atibus.c,1.1,1.1.4.1 atibus.h,1.1,1.1.4.1 atichip.c,1.1.4.1,1.1.4.2 atichip.h,1.1.4.1,1.1.4.2 aticlock.c,1.1.4.1,1.1.4.2 aticlock.h,1.1,1.1.4.1 aticonfig.c,1.1.4.1,1.1.4.2 aticonfig.h,1.1,1.1.4.1 aticonsole.c,1.1.4.1,1.1.4.2 aticonsole.h,1.1,1.1.4.1 aticrtc.h,1.1,1.1.4.1 aticursor.c,1.1.4.1,1.1.4.2 aticursor.h,1.1,1.1.4.1 atidac.c,1.1,1.1.4.1 atidac.h,1.1,1.1.4.1 atidecoder.c,1.1,1.1.4.1 atidecoder.h,1.1,1.1.4.1 atidga.c,1.1.4.1,1.1.4.2 atidga.h,1.1.4.1,1.1.4.2 atidsp.c,1.1.4.1,1.1.4.2 atidsp.h,1.1,1.1.4.1 atii2c.c,1.1,1.1.4.1 atii2c.h,1.1,1.1.4.1 atiident.c,1.1,1.1.4.1 atiident.h,1.1,1.1.4.1 atiio.h,1.1,1.1.4.1 atiload.c,1.1.4.1,1.1.4.2 atiload.h,1.1.4.1,1.1.4.2 atilock.c,1.1.4.1,1.1.4.2 atilock.h,1.1,1.1.4.1 atimach64.c,1.1.4.1,1.1.4.2 atimach64.h,1.1.4.1,1.1.4.2 atimach64accel.c,1.1,1.1.4.1 atimach64accel.h,1.1,1.1.4.1 atimach64cursor.c,1.1,1.1.4.1 atimach64cursor.h,1.1,1.1.4.1 atimach64i2c.c,1.1,1.1.4.1 atimach64i2c.h,1.1,1.1.4.1 atimach64io.c,1.1.4.1,1.1.4.2 atimach64io.h,1.1.4.1,1.1.4.2 atimach64xv.c,1.1,1.1.4.1 atimach64xv.h,1.1,1.1.4.1 atimisc.c,1.1.4.1,1.1.4.2 atimode.c,1.1.4.1,1.1.4.2 atimode.h,1.1,1.1.4.1 atimodule.c,1.1.4.1,1.1.4.2 atimodule.h,1.1,1.1.4.1 atimono.h,1.1,1.1.4.1 atioption.c,1.1.4.1,1.1.4.2 atioption.h,1.1.4.1,1.1.4.2 atipreinit.c,1.1.4.2,1.1.4.3 atipreinit.h,1.1,1.1.4.1 atiprint.c,1.1.4.1,1.1.4.2 atiprint.h,1.1,1.1.4.1 atipriv.h,1.1,1.1.4.1 atiprobe.c,1.1.4.1,1.1.4.2 atiprobe.h,1.1,1.1.4.1 atiproto.h,1.1.4.1,1.1.4.2 atiregs.h,1.1.4.1,1.1.4.2 atirgb514.c,1.1,1.1.4.1 atirgb514.h,1.1,1.1.4.1 atiscreen.c,1.1.4.1,1.1.4.2 atiscreen.h,1.1,1.1.4.1 atistruct.h,1.1.4.1,1.1.4.2 atituner.c,1.1,1.1.4.1 atituner.h,1.1,1.1.4.1 atiutil.c,1.1,1.1.4.1 atiutil.h,1.1,1.1.4.1 ativalid.c,1.1.4.1,1.1.4.2 ativalid.h,1.1.4.1,1.1.4.2 ativersion.h,1.1.4.2,1.1.4.3 ativga.c,1.1.4.1,1.1.4.2 ativga.h,1.1,1.1.4.1 ativgaio.c,1.1,1.1.4.1 ativgaio.h,1.1,1.1.4.1 atividmem.c,1.1.4.1,1.1.4.2 atividmem.h,1.1,1.1.4.1 atiwonder.c,1.1,1.1.4.1 atiwonder.h,1.1,1.1.4.1 atiwonderio.c,1.1,1.1.4.1 atiwonderio.h,1.1,1.1.4.1 atixv.c,1.1.4.1,1.1.4.2 atixv.h,1.1.4.1,1.1.4.2 r128_driver.c,1.1.4.1,1.1.4.2 r128_misc.c,1.1,1.1.4.1 r128_version.h,1.1,1.1.4.1 radeon.man,1.1.4.1,1.1.4.2 radeon_misc.c,1.1,1.1.4.1 radeon_version.h,1.1.4.1,1.1.4.2
- Next message: [Xorg-commit] xc/programs/Xserver/hw/xfree86/drivers/fbdev fbdev.c,1.1.4.1,1.1.4.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Committed by: kaleb
Update of /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810
In directory pdx:/home/kaleb/xorg/xc.XORG-CURRENT/programs/Xserver/hw/xfree86/drivers/i810
Modified Files:
Tag: XORG-CURRENT
common.h i810.man i810_accel.c i810_driver.c i810_reg.h i830.h
i830_accel.c i830_driver.c
Log Message:
merge most of XFree86 RC3 (4.3.99.903) from vendor branch.
bug #214
Index: common.h
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/common.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/common.h 26 Nov 2003 22:48:59 -0000 1.1.4.1
+++ b/common.h 23 Feb 2004 21:35:30 -0000 1.1.4.2
@@ -27,7 +27,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/common.h,v 1.9 2003/09/24 02:43:23 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/common.h,v 1.10 2004/01/03 02:11:53 dawes Exp $ */
/*
* Authors:
@@ -257,8 +257,10 @@
* preprocessor symbol, and equal to zero.
*/
#if 1
+#ifndef I810_DEBUG
#define I810_DEBUG 0
#endif
+#endif
#ifndef I810_DEBUG
#warning "Debugging enabled - expect reduced performance"
extern int I810_DEBUG;
Index: i810.man
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.man,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/i810.man 26 Nov 2003 22:48:59 -0000 1.1.4.1
+++ b/i810.man 23 Feb 2004 21:35:30 -0000 1.1.4.2
@@ -1,4 +1,4 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810.man,v 1.5 2003/10/18 02:27:07 dawes Exp $
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810.man,v 1.6 2004/01/07 03:43:19 dawes Exp $
.\" shorthand for double quote that works everywhere.
.ds q \N'34'
.TH I810 __drivermansuffix__ __vendorversion__
@@ -116,6 +116,13 @@
.B Options
are supported for the 830M and later chipsets:
.TP
+.BI "Option \*qVBERestore\*q \*q" boolean \*q
+Enable or disable the use of VBE save/restore for saving and restoring
+the initial text mode. This is disabled by default because it causes
+lockups on some platforms. However, there are some cases where it must
+enabled for the correct restoration of the initial video mode. If you are
+having a problem with that, try enabling this option. Default: Disabled.
+.TP
.BI "Option \*qVideoKey\*q \*q" integer \*q
This is the same as the
.B \*qColorKey\*q
@@ -123,8 +130,8 @@
other drivers.
.TP
.BI "Option \*qXVideo\*q \*q" boolean \*q
-Disable or enable XVideo support.
-Default: XVideo is enabled for configurations where it is supported.
+Disable or enable XVideo support. Default: XVideo is enabled for
+configurations where it is supported.
.SH "SEE ALSO"
Index: i810_accel.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/i810_accel.c 26 Nov 2003 22:48:59 -0000 1.1.4.1
+++ b/i810_accel.c 23 Feb 2004 21:35:30 -0000 1.1.4.2
@@ -25,7 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c,v 1.19 2003/04/24 18:00:24 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c,v 1.22 2004/01/03 02:11:53 dawes Exp $ */
/*
* Reformatted with GNU indent (2.2.8), using the following options:
@@ -48,47 +48,9 @@
#include "xf86_ansic.h"
#include "xf86.h"
-
+#include "xaarop.h"
#include "i810.h"
-static unsigned int i810Rop[16] = {
- 0x00, /* GXclear */
- 0x88, /* GXand */
- 0x44, /* GXandReverse */
- 0xCC, /* GXcopy */
- 0x22, /* GXandInvert */
- 0xAA, /* GXnoop */
- 0x66, /* GXxor */
- 0xEE, /* GXor */
- 0x11, /* GXnor */
- 0x99, /* GXequiv */
- 0x55, /* GXinvert */
- 0xDD, /* GXorReverse */
- 0x33, /* GXcopyInvert */
- 0xBB, /* GXorInverted */
- 0x77, /* GXnand */
- 0xFF /* GXset */
-};
-
-static unsigned int i810PatternRop[16] = {
- 0x00, /* GXclear */
- 0xA0, /* GXand */
- 0x50, /* GXandReverse */
- 0xF0, /* GXcopy */
- 0x0A, /* GXandInvert */
- 0xAA, /* GXnoop */
- 0x5A, /* GXxor */
- 0xFA, /* GXor */
- 0x05, /* GXnor */
- 0xA5, /* GXequiv */
- 0x55, /* GXinvert */
- 0xF5, /* GXorReverse */
- 0x0F, /* GXcopyInvert */
- 0xAF, /* GXorInverted */
- 0x5F, /* GXnand */
- 0xFF /* GXset */
-};
-
static void I810SetupForMono8x8PatternFill(ScrnInfoPtr pScrn,
int pattx, int patty,
int fg, int bg, int rop,
@@ -130,10 +92,7 @@
pI810->bufferOffset = 0;
infoPtr->Flags = LINEAR_FRAMEBUFFER | OFFSCREEN_PIXMAPS;
- /* There is a bit blt bug in 24 bpp. This is a problem, but
- * at least without the pixmap cache we can pass the test suite */
- if (pScrn->depth != 24)
- infoPtr->Flags |= PIXMAP_CACHE;
+ infoPtr->Flags |= PIXMAP_CACHE;
/* Sync
*/
@@ -334,7 +293,7 @@
/* Color blit, p166 */
pI810->BR[13] = (BR13_SOLID_PATTERN |
- (i810PatternRop[rop] << 16) |
+ (XAAPatternROP[rop] << 16) |
(pScrn->displayWidth * pI810->cpp));
pI810->BR[16] = color;
}
@@ -380,7 +339,7 @@
if (xdir == -1)
pI810->BR[13] |= BR13_RIGHT_TO_LEFT;
- pI810->BR[13] |= i810Rop[rop] << 16;
+ pI810->BR[13] |= XAACopyROP[rop] << 16;
pI810->BR[18] = 0;
}
@@ -401,9 +360,12 @@
* This was developed empirically so it may not catch all
* cases.
*/
+#define I810_MWIDTH 8
+
if ( !(pI810->BR[13] & BR13_RIGHT_TO_LEFT) && (y2 - y1) < 3
- && (y2 - y1) >= 0 && (x2 - x1) <= (w + 4) && (w > 4))
- w = 4;
+ && (y2 - y1) >= 0 && (x2 - x1) <= (w + I810_MWIDTH)
+ && (w > I810_MWIDTH))
+ w = I810_MWIDTH;
do {
if (pI810->BR[13] & BR13_PITCH_SIGN_BIT) {
@@ -441,7 +403,10 @@
break;
x2 += w;
x1 += w;
- w = w_back;
+ if (w_back > I810_MWIDTH)
+ w = I810_MWIDTH;
+ else
+ w = w_back;
} while (1);
}
@@ -460,9 +425,9 @@
pI810->BR[18] = bg;
pI810->BR[19] = fg;
pI810->BR[13] = (pScrn->displayWidth * pI810->cpp);
- pI810->BR[13] |= i810PatternRop[rop] << 16;
+ pI810->BR[13] |= XAAPatternROP[rop] << 16;
if (bg == -1)
- pI810->BR[13] |= BR13_MONO_TRANSPCY;
+ pI810->BR[13] |= BR13_MONO_PATN_TRANS;
}
static void
@@ -524,7 +489,7 @@
fg, bg, rop, planemask);
pI810->BR[13] = (pScrn->displayWidth * pI810->cpp);
- pI810->BR[13] |= i810Rop[rop] << 16;
+ pI810->BR[13] |= XAACopyROP[rop] << 16;
pI810->BR[13] |= (1 << 27);
if (bg == -1)
pI810->BR[13] |= BR13_MONO_TRANSPCY;
Index: i810_driver.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v
retrieving revision 1.1.4.3
retrieving revision 1.1.4.4
diff -u -d -r1.1.4.3 -r1.1.4.4
--- a/i810_driver.c 20 Dec 2003 00:28:27 -0000 1.1.4.3
+++ b/i810_driver.c 23 Feb 2004 21:35:30 -0000 1.1.4.4
@@ -25,8 +25,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XdotOrg$ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.98 2003/12/07 18:28:07 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.102 2004/01/02 22:16:18 dawes Exp $ */
/*
* Reformatted with GNU indent (2.2.8), using the following options:
@@ -245,6 +244,8 @@
"XAACreateInfoRec",
"XAADestroyInfoRec",
"XAAInit",
+ "XAACopyROP",
+ "XAAPatternROP",
NULL
};
@@ -377,6 +378,7 @@
I810drmSymbols,
I810driSymbols,
I810shadowSymbols,
+ driShadowFBSymbols,
#endif
I810vbeSymbols, vbeOptionalSymbols,
I810ddcSymbols, I810int10Symbols, NULL);
@@ -2220,10 +2222,39 @@
I810SwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ I810Ptr pI810 = I810PTR(pScrn);
if (I810_DEBUG & DEBUG_VERBOSE_CURSOR)
ErrorF("I810SwitchMode %p %x\n", (void *)mode, flags);
+#ifdef XF86DRI
+ if (pI810->directRenderingEnabled) {
+ if (I810_DEBUG & DEBUG_VERBOSE_DRI)
+ ErrorF("calling dri lock\n");
+ DRILock(screenInfo.screens[scrnIndex], 0);
+ pI810->LockHeld = 1;
+ }
+#endif
+
+ if (pI810->AccelInfoRec != NULL) {
+ I810RefreshRing(pScrn);
+ I810Sync(pScrn);
+ pI810->AccelInfoRec->NeedToSync = FALSE;
+ }
+ I810Restore(pScrn);
+
+#ifdef XF86DRI
+ if (!I810DRIEnter(pScrn)) {
+ return FALSE;
+ }
+ if (pI810->directRenderingEnabled) {
+ if (I810_DEBUG & DEBUG_VERBOSE_DRI)
+ ErrorF("calling dri unlock\n");
+ DRIUnlock(screenInfo.screens[scrnIndex]);
+ pI810->LockHeld = 0;
+ }
+#endif
+
return I810ModeInit(pScrn, mode);
}
@@ -2357,6 +2388,11 @@
XAAInfoRecPtr infoPtr = pI810->AccelInfoRec;
if (pScrn->vtSema == TRUE) {
+ if (pI810->AccelInfoRec != NULL) {
+ I810RefreshRing(pScrn);
+ I810Sync(pScrn);
+ pI810->AccelInfoRec->NeedToSync = FALSE;
+ }
I810Restore(pScrn);
vgaHWLock(hwp);
}
Index: i810_reg.h
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/i810_reg.h 14 Nov 2003 16:48:55 -0000 1.1
+++ b/i810_reg.h 23 Feb 2004 21:35:30 -0000 1.1.4.1
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h,v 1.13 2003/02/06 04:18:04 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h,v 1.14 2004/01/02 20:22:17 dawes Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -497,6 +497,7 @@
#define BR13_RIGHT_TO_LEFT 0x40000000
#define BR13_LEFT_TO_RIGHT 0x00000000
#define BR13_MONO_TRANSPCY 0x20000000
+#define BR13_MONO_PATN_TRANS 0x10000000
#define BR13_USE_DYN_DEPTH 0x04000000
#define BR13_DYN_8BPP 0x00000000
#define BR13_DYN_16BPP 0x01000000
Index: i830.h
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i830.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/i830.h 26 Nov 2003 22:48:59 -0000 1.1.4.1
+++ b/i830.h 23 Feb 2004 21:35:30 -0000 1.1.4.2
@@ -27,7 +27,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830.h,v 1.11 2003/10/21 04:13:40 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830.h,v 1.12 2004/01/07 03:43:19 dawes Exp $ */
/*
* Authors:
@@ -302,6 +302,7 @@
int yoffset;
int SaveGeneration;
+ Bool vbeRestoreWorkaround;
} I830Rec;
#define I830PTR(p) ((I830Ptr)((p)->driverPrivate))
Index: i830_accel.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_accel.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/i830_accel.c 26 Nov 2003 22:48:59 -0000 1.1.4.1
+++ b/i830_accel.c 23 Feb 2004 21:35:30 -0000 1.1.4.2
@@ -32,7 +32,7 @@
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830_accel.c,v 1.8 2003/04/24 18:00:24 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830_accel.c,v 1.9 2003/12/22 12:27:07 alanh Exp $ */
/*
* Reformatted with GNU indent (2.2.8), using the following options:
@@ -55,48 +55,10 @@
#include "xf86_ansic.h"
#include "xf86.h"
-
+#include "xaarop.h"
#include "i830.h"
#include "i810_reg.h"
-static unsigned int i810Rop[16] = {
- 0x00, /* GXclear */
- 0x88, /* GXand */
- 0x44, /* GXandReverse */
- 0xCC, /* GXcopy */
- 0x22, /* GXandInvert */
- 0xAA, /* GXnoop */
- 0x66, /* GXxor */
- 0xEE, /* GXor */
- 0x11, /* GXnor */
- 0x99, /* GXequiv */
- 0x55, /* GXinvert */
- 0xDD, /* GXorReverse */
- 0x33, /* GXcopyInvert */
- 0xBB, /* GXorInverted */
- 0x77, /* GXnand */
- 0xFF /* GXset */
-};
-
-static unsigned int i810PatternRop[16] = {
- 0x00, /* GXclear */
- 0xA0, /* GXand */
- 0x50, /* GXandReverse */
- 0xF0, /* GXcopy */
- 0x0A, /* GXandInvert */
- 0xAA, /* GXnoop */
- 0x5A, /* GXxor */
- 0xFA, /* GXor */
- 0x05, /* GXnor */
- 0xA5, /* GXequiv */
- 0x55, /* GXinvert */
- 0xF5, /* GXorReverse */
- 0x0F, /* GXcopyInvert */
- 0xAF, /* GXorInverted */
- 0x5F, /* GXnand */
- 0xFF /* GXset */
-};
-
int
I830WaitLpRing(ScrnInfoPtr pScrn, int n, int timeout_millis)
{
@@ -397,7 +359,7 @@
ErrorF("I830SetupForFillRectSolid color: %x rop: %x mask: %x\n",
color, rop, planemask);
- pI830->BR[13] = ((i810PatternRop[rop] << 16) |
+ pI830->BR[13] = ((XAAPatternROP[rop] << 16) |
(pScrn->displayWidth * pI830->cpp));
pI830->BR[16] = color;
@@ -453,7 +415,7 @@
xdir, ydir, rop, planemask, transparency_color);
pI830->BR[13] = (pScrn->displayWidth * pI830->cpp);
- pI830->BR[13] |= i810Rop[rop] << 16;
+ pI830->BR[13] |= XAACopyROP[rop] << 16;
switch (pScrn->bitsPerPixel) {
case 8:
@@ -519,7 +481,7 @@
pI830->BR[19] = fg;
pI830->BR[13] = (pScrn->displayWidth * pI830->cpp); /* In bytes */
- pI830->BR[13] |= i810PatternRop[rop] << 16;
+ pI830->BR[13] |= XAAPatternROP[rop] << 16;
if (bg == -1)
pI830->BR[13] |= (1 << 28);
@@ -608,7 +570,7 @@
/* Fill out register values */
pI830->BR[13] = (pScrn->displayWidth * pI830->cpp);
- pI830->BR[13] |= i810Rop[rop] << 16;
+ pI830->BR[13] |= XAACopyROP[rop] << 16;
if (bg == -1)
pI830->BR[13] |= (1 << 29);
@@ -697,7 +659,7 @@
/* Fill out register values */
pI830->BR[13] = (pScrn->displayWidth * pI830->cpp);
- pI830->BR[13] |= i810Rop[rop] << 16;
+ pI830->BR[13] |= XAACopyROP[rop] << 16;
switch (pScrn->bitsPerPixel) {
case 8:
Index: i830_driver.c
===================================================================
RCS file: /cvs/xorg/xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/i830_driver.c 26 Nov 2003 22:48:59 -0000 1.1.4.1
+++ b/i830_driver.c 23 Feb 2004 21:35:30 -0000 1.1.4.2
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v 1.47 2003/11/03 14:47:28 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c,v 1.49 2004/01/25 16:57:48 dawes Exp $ */
/**************************************************************************
Copyright 2001 VA Linux Systems Inc., Fremont, California.
@@ -201,7 +201,8 @@
OPTION_PAGEFLIP,
OPTION_XVIDEO,
OPTION_VIDEO_KEY,
- OPTION_COLOR_KEY
+ OPTION_COLOR_KEY,
+ OPTION_VBE_RESTORE
} I830Opts;
static OptionInfoRec I830BIOSOptions[] = {
@@ -213,6 +214,7 @@
{OPTION_XVIDEO, "XVideo", OPTV_BOOLEAN, {0}, TRUE},
{OPTION_COLOR_KEY, "ColorKey", OPTV_INTEGER, {0}, FALSE},
{OPTION_VIDEO_KEY, "VideoKey", OPTV_INTEGER, {0}, FALSE},
+ {OPTION_VBE_RESTORE, "VBERestore", OPTV_BOOLEAN, {0}, FALSE},
{-1, NULL, OPTV_NONE, {0}, FALSE}
};
/* *INDENT-ON* */
@@ -2124,6 +2126,16 @@
VBEFreeVBEInfo(pI830->vbeInfo);
vbeFree(pVbe);
+ /* Use the VBE mode restore workaround by default. */
+ pI830->vbeRestoreWorkaround = TRUE;
+ from = X_DEFAULT;
+ if (xf86ReturnOptValBool(pI830->Options, OPTION_VBE_RESTORE, FALSE)) {
+ pI830->vbeRestoreWorkaround = FALSE;
+ from = X_CONFIG;
+ }
+ xf86DrvMsg(pScrn->scrnIndex, from, "VBE Restore workaround: %s.\n",
+ pI830->vbeRestoreWorkaround ? "enabled" : "disabled");
+
#if defined(XF86DRI)
/* Load the dri module if requested. */
if (xf86ReturnOptValBool(pI830->Options, OPTION_DRI, FALSE) &&
@@ -2329,10 +2341,6 @@
vgaHWUnlock(hwp);
vgaHWSave(pScrn, vgaReg, VGA_SR_FONTS);
-#ifndef I845G_VBE_WORKAROUND
-#define I845G_VBE_WORKAROUND 1
-#endif
-
pVesa = pI830->vesa;
/*
* This save/restore method doesn't work for 845G BIOS, or for some
@@ -2344,7 +2352,7 @@
* registers, turning off the irq & breaking the kernel module
* behaviour.
*/
- if (!I845G_VBE_WORKAROUND) {
+ if (!pI830->vbeRestoreWorkaround) {
CARD16 imr = INREG16(IMR);
CARD16 ier = INREG16(IER);
CARD16 hwstam = INREG16(HWSTAM);
@@ -2540,6 +2548,22 @@
}
/*
+ * Test if the extendedRefresh BIOS function is supported.
+ */
+ if (pI830->useExtendedRefresh && !pI830->vesa->useDefaultRefresh &&
+ (mode & (1 << 11)) && data && data->data && data->block) {
+ if (!SetRefreshRate(pScrn, mode, 60)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "BIOS call 0x5f05 not supported, "
+ "setting refresh with VBE 3 method.\n");
+ pI830->useExtendedRefresh = FALSE;
+ pI830->enableDisplays = FALSE;
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Not using BIOS call 0x5f64 to enable displays.\n");
+ }
+ }
+
+ /*
* The BIOS may not set a scanline pitch that would require more video
* memory than it's aware of. We check for this later, and set it
* explicitly if necessary.
- Previous message: [Xorg-commit] xc/programs/Xserver/hw/xfree86/drivers/ati Imakefile,1.1.4.1,1.1.4.2 ati.c,1.1.4.1,1.1.4.2 ati.h,1.1,1.1.4.1 atiaccel.c,1.1.4.1,1.1.4.2 atiaccel.h,1.1.4.1,1.1.4.2 atiadapter.c,1.1,1.1.4.1 atiadapter.h,1.1,1.1.4.1 atiadjust.c,1.1.4.1,1.1.4.2 atiadjust.h,1.1,1.1.4.1 atiaudio.c,1.1,1.1.4.1 atiaudio.h,1.1,1.1.4.1 atibank.c,1.1,1.1.4.1 atibank.h,1.1,1.1.4.1 atibus.c,1.1,1.1.4.1 atibus.h,1.1,1.1.4.1 atichip.c,1.1.4.1,1.1.4.2 atichip.h,1.1.4.1,1.1.4.2 aticlock.c,1.1.4.1,1.1.4.2 aticlock.h,1.1,1.1.4.1 aticonfig.c,1.1.4.1,1.1.4.2 aticonfig.h,1.1,1.1.4.1 aticonsole.c,1.1.4.1,1.1.4.2 aticonsole.h,1.1,1.1.4.1 aticrtc.h,1.1,1.1.4.1 aticursor.c,1.1.4.1,1.1.4.2 aticursor.h,1.1,1.1.4.1 atidac.c,1.1,1.1.4.1 atidac.h,1.1,1.1.4.1 atidecoder.c,1.1,1.1.4.1 atidecoder.h,1.1,1.1.4.1 atidga.c,1.1.4.1,1.1.4.2 atidga.h,1.1.4.1,1.1.4.2 atidsp.c,1.1.4.1,1.1.4.2 atidsp.h,1.1,1.1.4.1 atii2c.c,1.1,1.1.4.1 atii2c.h,1.1,1.1.4.1 atiident.c,1.1,1.1.4.1 atiident.h,1.1,1.1.4.1 atiio.h,1.1,1.1.4.1 atiload.c,1.1.4.1,1.1.4.2 atiload.h,1.1.4.1,1.1.4.2 atilock.c,1.1.4.1,1.1.4.2 atilock.h,1.1,1.1.4.1 atimach64.c,1.1.4.1,1.1.4.2 atimach64.h,1.1.4.1,1.1.4.2 atimach64accel.c,1.1,1.1.4.1 atimach64accel.h,1.1,1.1.4.1 atimach64cursor.c,1.1,1.1.4.1 atimach64cursor.h,1.1,1.1.4.1 atimach64i2c.c,1.1,1.1.4.1 atimach64i2c.h,1.1,1.1.4.1 atimach64io.c,1.1.4.1,1.1.4.2 atimach64io.h,1.1.4.1,1.1.4.2 atimach64xv.c,1.1,1.1.4.1 atimach64xv.h,1.1,1.1.4.1 atimisc.c,1.1.4.1,1.1.4.2 atimode.c,1.1.4.1,1.1.4.2 atimode.h,1.1,1.1.4.1 atimodule.c,1.1.4.1,1.1.4.2 atimodule.h,1.1,1.1.4.1 atimono.h,1.1,1.1.4.1 atioption.c,1.1.4.1,1.1.4.2 atioption.h,1.1.4.1,1.1.4.2 atipreinit.c,1.1.4.2,1.1.4.3 atipreinit.h,1.1,1.1.4.1 atiprint.c,1.1.4.1,1.1.4.2 atiprint.h,1.1,1.1.4.1 atipriv.h,1.1,1.1.4.1 atiprobe.c,1.1.4.1,1.1.4.2 atiprobe.h,1.1,1.1.4.1 atiproto.h,1.1.4.1,1.1.4.2 atiregs.h,1.1.4.1,1.1.4.2 atirgb514.c,1.1,1.1.4.1 atirgb514.h,1.1,1.1.4.1 atiscreen.c,1.1.4.1,1.1.4.2 atiscreen.h,1.1,1.1.4.1 atistruct.h,1.1.4.1,1.1.4.2 atituner.c,1.1,1.1.4.1 atituner.h,1.1,1.1.4.1 atiutil.c,1.1,1.1.4.1 atiutil.h,1.1,1.1.4.1 ativalid.c,1.1.4.1,1.1.4.2 ativalid.h,1.1.4.1,1.1.4.2 ativersion.h,1.1.4.2,1.1.4.3 ativga.c,1.1.4.1,1.1.4.2 ativga.h,1.1,1.1.4.1 ativgaio.c,1.1,1.1.4.1 ativgaio.h,1.1,1.1.4.1 atividmem.c,1.1.4.1,1.1.4.2 atividmem.h,1.1,1.1.4.1 atiwonder.c,1.1,1.1.4.1 atiwonder.h,1.1,1.1.4.1 atiwonderio.c,1.1,1.1.4.1 atiwonderio.h,1.1,1.1.4.1 atixv.c,1.1.4.1,1.1.4.2 atixv.h,1.1.4.1,1.1.4.2 r128_driver.c,1.1.4.1,1.1.4.2 r128_misc.c,1.1,1.1.4.1 r128_version.h,1.1,1.1.4.1 radeon.man,1.1.4.1,1.1.4.2 radeon_misc.c,1.1,1.1.4.1 radeon_version.h,1.1.4.1,1.1.4.2
- Next message: [Xorg-commit] xc/programs/Xserver/hw/xfree86/drivers/fbdev fbdev.c,1.1.4.1,1.1.4.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the xorg-commit
mailing list