Hello community,
here is the log from the commit of package xorg-x11-driver-video for openSUSE:Factory
checked in at Tue Mar 3 18:15:05 CET 2009.
--------
--- xorg-x11-driver-video/xorg-x11-driver-video.changes 2009-02-28 11:59:48.000000000 +0100
+++ /mounts/work_src_done/STABLE/xorg-x11-driver-video/xorg-x11-driver-video.changes 2009-03-03 15:19:20.766312785 +0100
@@ -1,0 +2,6 @@
+Tue Mar 3 15:16:26 CET 2009 - sndirsch@suse.de
+
+- xf86-video-ast 0.88.8
+- xf86-video-intel 2.6.3
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
xf86-video-ast-0.87.0.tar.bz2
xf86-video-intel-2.6.2.tar.bz2
New:
----
xf86-video-ast-0.88.8.tar.bz2
xf86-video-intel-2.6.3.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ xorg-x11-driver-video.spec ++++++
--- /var/tmp/diff_new_pack.vK4189/_old 2009-03-03 18:14:48.000000000 +0100
+++ /var/tmp/diff_new_pack.vK4189/_new 2009-03-03 18:14:48.000000000 +0100
@@ -22,7 +22,7 @@
BuildRequires: Mesa-devel libdrm-devel pkgconfig xorg-x11-proto-devel xorg-x11-server-sdk
Url: http://xorg.freedesktop.org/
Version: 7.4
-Release: 42
+Release: 43
License: X11/MIT
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Group: System/X11/Servers/XF86_4
@@ -35,7 +35,7 @@
ExcludeArch: s390 s390x
Source0: xf86-video-apm-1.2.1.tar.bz2
Source1: xf86-video-ark-0.7.1.tar.bz2
-Source2: xf86-video-ast-0.87.0.tar.bz2
+Source2: xf86-video-ast-0.88.8.tar.bz2
Source4: xf86-video-chips-1.2.1.tar.bz2
Source5: xf86-video-cirrus-1.2.1.tar.bz2
Source7: xf86-video-dummy-0.3.1.tar.bz2
@@ -66,7 +66,7 @@
Source42: xf86-video-voodoo-1.2.1.tar.bz2
Source43: xf86-video-impact-0.2.0.tar.bz2
Source44: HALlib-4.1.tar.gz
-Source45: xf86-video-intel-2.6.2.tar.bz2
+Source45: xf86-video-intel-2.6.3.tar.bz2
Source46: xf86-video-ati-6.11.0.tar.bz2
Source48: xf86-video-mga-1.9.100.tar.bz2
Source50: xf86-video-xgi-1.5.0.tar.bz2
@@ -277,6 +277,9 @@
/var/lib/hardware/ids/20.%{name}
%changelog
+* Tue Mar 03 2009 sndirsch@suse.de
+- xf86-video-ast 0.88.8
+- xf86-video-intel 2.6.3
* Fri Feb 27 2009 sndirsch@suse.de
- xf86-video-sisusb 0.9.1
- disabled build of mga-1.9.100, vga, xgi
++++++ xf86-video-ast-0.87.0.tar.bz2 -> xf86-video-ast-0.88.8.tar.bz2 ++++++
++++ 15624 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.87.0/ChangeLog new/xf86-video-ast-0.88.8/ChangeLog
--- old/xf86-video-ast-0.87.0/ChangeLog 2008-12-22 05:18:28.000000000 +0100
+++ new/xf86-video-ast-0.88.8/ChangeLog 2009-01-16 07:52:37.000000000 +0100
@@ -1,3 +1,21 @@
+2009-01-16 Y.C. Chen
+ * src/ast_driver.c
+ - Fixed Support Modes Incorrect Issues on Solaris 10 x86
+
+2009-01-08 Y.C. Chen >yc_chen@aspedtech.com>
+ * src/ast.h
+ * src/ast_driver.c
+ * src/ast_2dtool.c, ast_2dtool.h
+ * src/ast_accel.c
+ * src/ast_cursor.c
+ * src/ast_mode.c
+ * src/ast_vgatool.c
+ - Support AST2200/2150
+ - Support ASPEED Graphics as Secondary
+ - Fixed AST1100 1280x1024x32bpp thershold issue
+ - Fixed Screen saver - celtic, DecayScreen abnormal issues
+ - Fixed Game - Potato Guys abnormal issue
+
2008-08-22 Y.C. Chen
* src/ast.h
* src/ast_driver.c
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.87.0/configure.ac new/xf86-video-ast-0.88.8/configure.ac
--- old/xf86-video-ast-0.87.0/configure.ac 2008-12-22 05:18:28.000000000 +0100
+++ new/xf86-video-ast-0.88.8/configure.ac 2009-01-16 07:53:45.000000000 +0100
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-ast],
- 0.87.0,
+ 0.88.8,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-ast)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.87.0/src/ast_2dtool.c new/xf86-video-ast-0.88.8/src/ast_2dtool.c
--- old/xf86-video-ast-0.87.0/src/ast_2dtool.c 2008-12-22 05:18:28.000000000 +0100
+++ new/xf86-video-ast-0.88.8/src/ast_2dtool.c 2009-01-16 07:50:21.000000000 +0100
@@ -189,6 +189,22 @@
Bool
bEnable2D(ScrnInfoPtr pScrn, ASTRecPtr pAST)
{
+ ULONG ulData;
+
+ switch (pAST->jChipType)
+ {
+ case AST2100:
+ case AST1100:
+ case AST2200:
+ case AST2150:
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0xF004) = 0x1e6e0000;
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0xF000) = 0x1;
+
+ ulData = *(ULONG *) (pAST->MMIOVirtualAddr + 0x1200c);
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0x1200c) = (ulData & 0xFFFFFFFD);
+ break;
+ }
+
SetIndexRegMask(CRTC_PORT, 0xA4, 0xFE, 0x01); /* enable 2D */
if (!bInitCMDQInfo(pScrn, pAST))
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.87.0/src/ast_accel.c new/xf86-video-ast-0.88.8/src/ast_accel.c
--- old/xf86-video-ast-0.87.0/src/ast_accel.c 2008-03-10 00:45:27.000000000 +0100
+++ new/xf86-video-ast-0.88.8/src/ast_accel.c 2009-01-16 07:50:21.000000000 +0100
@@ -316,6 +316,10 @@
ASTSetupSRCPitch(pSingleCMD, pAST->VideoModeInfo.ScreenPitch);
pSingleCMD++;
ASTSetupDSTPitchHeight(pSingleCMD, pAST->VideoModeInfo.ScreenPitch, -1);
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
+
}
else
{
@@ -337,83 +341,91 @@
/*
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ASTSubsequentScreenToScreenCopy\n");
*/
-
- /* Modify Reg. Value */
- cmdreg = pAST->ulCMDReg;
- if (pAST->EnableClip)
- cmdreg |= CMD_ENABLE_CLIP;
- else
- cmdreg &= ~CMD_ENABLE_CLIP;
- srcbase = dstbase = 0;
- if (y1 >= MAX_SRC_Y)
- {
- srcbase=pAST->VideoModeInfo.ScreenPitch*y1;
- y1=0;
- }
+ if ((width != 0) && (height != 0))
+ {
+ /* Modify Reg. Value */
+ cmdreg = pAST->ulCMDReg;
+ if (pAST->EnableClip)
+ cmdreg |= CMD_ENABLE_CLIP;
+ else
+ cmdreg &= ~CMD_ENABLE_CLIP;
+ srcbase = dstbase = 0;
- if (y2 >= pScrn->virtualY)
- {
- dstbase=pAST->VideoModeInfo.ScreenPitch*y2;
- y2=0;
- }
+ if (y1 >= MAX_SRC_Y)
+ {
+ srcbase=pAST->VideoModeInfo.ScreenPitch*y1;
+ }
+
+ if (y2 >= pScrn->virtualY)
+ {
+ dstbase=pAST->VideoModeInfo.ScreenPitch*y2;
+ }
+
+ if (x1 < x2)
+ {
+ src_x = x1 + width - 1;
+ dst_x = x2 + width - 1;
+ cmdreg |= CMD_X_DEC;
+ }
+ else
+ {
+ src_x = x1;
+ dst_x = x2;
+ }
+
+ if (y1 < y2)
+ {
+ if (srcbase) y1 = 0;
+ if (dstbase) y2 = 0;
+
+ src_y = y1 + height - 1;
+ dst_y = y2 + height - 1;
+ cmdreg |= CMD_Y_DEC;
+ }
+ else
+ {
+ if (srcbase) y1 = 0;
+ if (dstbase) y2 = 0;
+
+ src_y = y1;
+ dst_y = y2;
+ }
+
+ if (!pAST->MMIO2D)
+ {
+ /* Write to CMDQ */
+ pSingleCMD = (PKT_SC *) pjRequestCMDQ(pAST, PKT_SINGLE_LENGTH*6);
- if (x1 < x2)
- {
- src_x = x1 + width - 1;
- dst_x = x2 + width - 1;
- cmdreg |= CMD_X_DEC;
- }
- else
- {
- src_x = x1;
- dst_x = x2;
- }
-
- if (y1 < y2)
- {
- src_y = y1 + height - 1;
- dst_y = y2 + height - 1;
- cmdreg |= CMD_Y_DEC;
- }
- else
- {
- src_y = y1;
- dst_y = y2;
- }
+ ASTSetupSRCBase(pSingleCMD, srcbase);
+ pSingleCMD++;
+ ASTSetupDSTBase(pSingleCMD, dstbase);
+ pSingleCMD++;
+ ASTSetupDSTXY(pSingleCMD, dst_x, dst_y);
+ pSingleCMD++;
+ ASTSetupSRCXY(pSingleCMD, src_x, src_y);
+ pSingleCMD++;
+ ASTSetupRECTXY(pSingleCMD, width, height);
+ pSingleCMD++;
+ ASTSetupCMDReg(pSingleCMD, cmdreg);
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
- if (!pAST->MMIO2D)
- {
- /* Write to CMDQ */
- pSingleCMD = (PKT_SC *) pjRequestCMDQ(pAST, PKT_SINGLE_LENGTH*6);
-
- ASTSetupSRCBase(pSingleCMD, srcbase);
- pSingleCMD++;
- ASTSetupDSTBase(pSingleCMD, dstbase);
- pSingleCMD++;
- ASTSetupDSTXY(pSingleCMD, dst_x, dst_y);
- pSingleCMD++;
- ASTSetupSRCXY(pSingleCMD, src_x, src_y);
- pSingleCMD++;
- ASTSetupRECTXY(pSingleCMD, width, height);
- pSingleCMD++;
- ASTSetupCMDReg(pSingleCMD, cmdreg);
-
- /* Update Write Pointer */
- mUpdateWritePointer;
-
- }
- else
- {
- ASTSetupSRCBase_MMIO(srcbase);
- ASTSetupDSTBase_MMIO(dstbase);
- ASTSetupDSTXY_MMIO(dst_x, dst_y);
- ASTSetupSRCXY_MMIO(src_x, src_y);
- ASTSetupRECTXY_MMIO(width, height);
- ASTSetupCMDReg_MMIO(cmdreg);
-
- vWaitEngIdle(pScrn, pAST);
- }
+ }
+ else
+ {
+ ASTSetupSRCBase_MMIO(srcbase);
+ ASTSetupDSTBase_MMIO(dstbase);
+ ASTSetupDSTXY_MMIO(dst_x, dst_y);
+ ASTSetupSRCXY_MMIO(src_x, src_y);
+ ASTSetupRECTXY_MMIO(width, height);
+ ASTSetupCMDReg_MMIO(cmdreg);
+
+ vWaitEngIdle(pScrn, pAST);
+ }
+
+ } /* width & height check */
} /* end of ASTSubsequentScreenToScreenCopy */
@@ -455,7 +467,11 @@
ASTSetupDSTPitchHeight(pSingleCMD, pAST->VideoModeInfo.ScreenPitch, -1);
pSingleCMD++;
- ASTSetupFG(pSingleCMD, color);
+ ASTSetupFG(pSingleCMD, color);
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
+
}
else
{
@@ -477,47 +493,51 @@
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ASTSubsequentSolidFillRect\n");
*/
- /* Modify Reg. Value */
- cmdreg = pAST->ulCMDReg;
- if (pAST->EnableClip)
- cmdreg |= CMD_ENABLE_CLIP;
- else
- cmdreg &= ~CMD_ENABLE_CLIP;
- dstbase = 0;
-
- if (dst_y >= pScrn->virtualY)
- {
- dstbase=pAST->VideoModeInfo.ScreenPitch*dst_y;
- dst_y=0;
- }
-
- if (!pAST->MMIO2D)
- {
- /* Write to CMDQ */
- pSingleCMD = (PKT_SC *) pjRequestCMDQ(pAST, PKT_SINGLE_LENGTH*4);
-
- ASTSetupDSTBase(pSingleCMD, dstbase);
- pSingleCMD++;
- ASTSetupDSTXY(pSingleCMD, dst_x, dst_y);
- pSingleCMD++;
- ASTSetupRECTXY(pSingleCMD, width, height);
- pSingleCMD++;
- ASTSetupCMDReg(pSingleCMD, cmdreg);
-
- /* Update Write Pointer */
- mUpdateWritePointer;
-
- }
- else
- {
- ASTSetupDSTBase_MMIO(dstbase);
- ASTSetupDSTXY_MMIO(dst_x, dst_y);
- ASTSetupRECTXY_MMIO(width, height);
- ASTSetupCMDReg_MMIO(cmdreg);
-
- vWaitEngIdle(pScrn, pAST);
-
- }
+ if ((width != 0) && (height != 0))
+ {
+ /* Modify Reg. Value */
+ cmdreg = pAST->ulCMDReg;
+ if (pAST->EnableClip)
+ cmdreg |= CMD_ENABLE_CLIP;
+ else
+ cmdreg &= ~CMD_ENABLE_CLIP;
+ dstbase = 0;
+
+ if (dst_y >= pScrn->virtualY)
+ {
+ dstbase=pAST->VideoModeInfo.ScreenPitch*dst_y;
+ dst_y=0;
+ }
+
+ if (!pAST->MMIO2D)
+ {
+ /* Write to CMDQ */
+ pSingleCMD = (PKT_SC *) pjRequestCMDQ(pAST, PKT_SINGLE_LENGTH*4);
+
+ ASTSetupDSTBase(pSingleCMD, dstbase);
+ pSingleCMD++;
+ ASTSetupDSTXY(pSingleCMD, dst_x, dst_y);
+ pSingleCMD++;
+ ASTSetupRECTXY(pSingleCMD, width, height);
+ pSingleCMD++;
+ ASTSetupCMDReg(pSingleCMD, cmdreg);
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
+
+ }
+ else
+ {
+ ASTSetupDSTBase_MMIO(dstbase);
+ ASTSetupDSTXY_MMIO(dst_x, dst_y);
+ ASTSetupRECTXY_MMIO(width, height);
+ ASTSetupCMDReg_MMIO(cmdreg);
+
+ vWaitEngIdle(pScrn, pAST);
+
+ }
+
+ } /* width & height check */
} /* end of ASTSubsequentSolidFillRect */
@@ -563,6 +583,9 @@
pSingleCMD++;
ASTSetupBG(pSingleCMD, 0);
+ /* Update Write Pointer */
+ mUpdateWritePointer;
+
}
else
{
@@ -586,58 +609,61 @@
/*
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "ASTSubsequentSolidHorVertLine\n");
*/
-
- /* Modify Reg. Value */
- cmdreg = (pAST->ulCMDReg & (~CMD_MASK)) | CMD_BITBLT;
- if (pAST->EnableClip)
- cmdreg |= CMD_ENABLE_CLIP;
- else
- cmdreg &= ~CMD_ENABLE_CLIP;
- dstbase = 0;
-
- if(dir == DEGREES_0) { /* horizontal */
- width = len;
- height = 1;
- } else { /* vertical */
- width = 1;
- height = len;
- }
-
- if ((y + height) >= pScrn->virtualY)
- {
- dstbase=pAST->VideoModeInfo.ScreenPitch*y;
- y=0;
- }
-
-
- if (!pAST->MMIO2D)
- {
- /* Write to CMDQ */
- pSingleCMD = (PKT_SC *) pjRequestCMDQ(pAST, PKT_SINGLE_LENGTH*4);
-
- ASTSetupDSTBase(pSingleCMD, dstbase);
- pSingleCMD++;
- ASTSetupDSTXY(pSingleCMD, x, y);
- pSingleCMD++;
- ASTSetupRECTXY(pSingleCMD, width, height);
- pSingleCMD++;
- ASTSetupCMDReg(pSingleCMD, cmdreg);
-
- /* Update Write Pointer */
- mUpdateWritePointer;
-
- }
- else
- {
- ASTSetupDSTBase_MMIO(dstbase);
- ASTSetupDSTXY_MMIO(x, y);
- ASTSetupRECTXY_MMIO(width, height);
- ASTSetupCMDReg_MMIO(cmdreg);
-
- vWaitEngIdle(pScrn, pAST);
-
- }
+ if (len != 0)
+ {
+ /* Modify Reg. Value */
+ cmdreg = (pAST->ulCMDReg & (~CMD_MASK)) | CMD_BITBLT;
+ if (pAST->EnableClip)
+ cmdreg |= CMD_ENABLE_CLIP;
+ else
+ cmdreg &= ~CMD_ENABLE_CLIP;
+ dstbase = 0;
+
+ if(dir == DEGREES_0) { /* horizontal */
+ width = len;
+ height = 1;
+ } else { /* vertical */
+ width = 1;
+ height = len;
+ }
+
+ if ((y + height) >= pScrn->virtualY)
+ {
+ dstbase=pAST->VideoModeInfo.ScreenPitch*y;
+ y=0;
+ }
+
+
+ if (!pAST->MMIO2D)
+ {
+ /* Write to CMDQ */
+ pSingleCMD = (PKT_SC *) pjRequestCMDQ(pAST, PKT_SINGLE_LENGTH*4);
+
+ ASTSetupDSTBase(pSingleCMD, dstbase);
+ pSingleCMD++;
+ ASTSetupDSTXY(pSingleCMD, x, y);
+ pSingleCMD++;
+ ASTSetupRECTXY(pSingleCMD, width, height);
+ pSingleCMD++;
+ ASTSetupCMDReg(pSingleCMD, cmdreg);
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
+
+ }
+ else
+ {
+ ASTSetupDSTBase_MMIO(dstbase);
+ ASTSetupDSTXY_MMIO(x, y);
+ ASTSetupRECTXY_MMIO(width, height);
+ ASTSetupCMDReg_MMIO(cmdreg);
+
+ vWaitEngIdle(pScrn, pAST);
+
+ }
+
+ } /* len check */
} /* end of ASTSubsequentSolidHorVertLine */
@@ -674,7 +700,7 @@
y1 -= miny;
y2 -= miny;
}
-
+
LineInfo.X1 = x1;
LineInfo.Y1 = y1;
LineInfo.X2 = x2;
@@ -783,7 +809,10 @@
pSingleCMD++;
ASTSetupLineStyle1(pSingleCMD, *pattern);
pSingleCMD++;
- ASTSetupLineStyle2(pSingleCMD, *(pattern+4));
+ ASTSetupLineStyle2(pSingleCMD, *(pattern+4));
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
}
else
@@ -825,7 +854,7 @@
if (pAST->EnableClip)
ulCommand |= CMD_ENABLE_CLIP;
else
- ulCommand &= ~CMD_ENABLE_CLIP;
+ ulCommand &= ~CMD_ENABLE_CLIP;
dstbase = 0;
miny = (y1 > y2) ? y2 : y1;
maxy = (y1 > y2) ? y1 : y2;
@@ -834,7 +863,7 @@
y1 -= miny;
y2 -= miny;
}
-
+
LineInfo.X1 = x1;
LineInfo.Y1 = y1;
LineInfo.X2 = x2;
@@ -873,7 +902,7 @@
/* Patch KDE pass abnormal point, ycchen@052507 */
vWaitEngIdle(pScrn, pAST);
-
+
}
else
{
@@ -937,7 +966,11 @@
pSingleCMD++;
ASTSetupMONO1(pSingleCMD, patx);
pSingleCMD++;
- ASTSetupMONO2(pSingleCMD, paty);
+ ASTSetupMONO2(pSingleCMD, paty);
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
+
}
else
{
@@ -968,7 +1001,7 @@
if (pAST->EnableClip)
cmdreg |= CMD_ENABLE_CLIP;
else
- cmdreg &= ~CMD_ENABLE_CLIP;
+ cmdreg &= ~CMD_ENABLE_CLIP;
dstbase = 0;
if (dst_y >= pScrn->virtualY)
@@ -1056,7 +1089,11 @@
ASTSetupPatReg(pSingleCMD, (i*j + j) , (*(CARD32 *) (pataddr++)));
pSingleCMD++;
}
- }
+ }
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
+
}
else
{
@@ -1089,7 +1126,7 @@
if (pAST->EnableClip)
cmdreg |= CMD_ENABLE_CLIP;
else
- cmdreg &= ~CMD_ENABLE_CLIP;
+ cmdreg &= ~CMD_ENABLE_CLIP;
dstbase = 0;
if (dst_y >= pScrn->virtualY)
@@ -1174,6 +1211,9 @@
ASTSetupFG(pSingleCMD, fg);
pSingleCMD++;
ASTSetupBG(pSingleCMD, bg);
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
}
else
@@ -1205,7 +1245,7 @@
if (pAST->EnableClip)
cmdreg |= CMD_ENABLE_CLIP;
else
- cmdreg &= ~CMD_ENABLE_CLIP;
+ cmdreg &= ~CMD_ENABLE_CLIP;
dstbase = 0;
if (dst_y >= pScrn->virtualY)
@@ -1298,6 +1338,9 @@
ASTSetupFG(pSingleCMD, fg);
pSingleCMD++;
ASTSetupBG(pSingleCMD, bg);
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
}
else
@@ -1398,7 +1441,11 @@
ASTSetupCLIP1(pSingleCMD, left, top);
pSingleCMD++;
- ASTSetupCLIP2(pSingleCMD, right, bottom);
+ ASTSetupCLIP2(pSingleCMD, right, bottom);
+
+ /* Update Write Pointer */
+ mUpdateWritePointer;
+
}
else
{
@@ -1418,5 +1465,4 @@
pAST->EnableClip = FALSE;
}
-
#endif /* end of Accel_2D */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.87.0/src/ast_cursor.c new/xf86-video-ast-0.88.8/src/ast_cursor.c
--- old/xf86-video-ast-0.87.0/src/ast_cursor.c 2008-03-10 00:45:27.000000000 +0100
+++ new/xf86-video-ast-0.88.8/src/ast_cursor.c 2009-01-16 07:50:21.000000000 +0100
@@ -242,6 +242,12 @@
ulTempDstAnd32[1] = ((jTempSrcAnd32 >> (k-1)) & 0x01) ? 0x80000000L:0x00L;
ulTempDstXor32[1] = ((jTempSrcXor32 >> (k-1)) & 0x01) ? 0x40000000L:0x00L;
ulTempDstData32[1] = ((jTempSrcXor32 >> (k-1)) & 0x01) ? (pAST->HWCInfo.fg << 16):(pAST->HWCInfo.bg << 16);
+ ulTempDstData32[1] = ((jTempSrcXor32 >> (k-1)) & 0x01) ? (pAST->HWCInfo.fg << 16):(pAST->HWCInfo.bg << 16);
+ /* No inverse for X Window cursor, ycchen@111808 */
+ if (ulTempDstAnd32[0])
+ ulTempDstXor32[0] = 0;
+ if (ulTempDstAnd32[1])
+ ulTempDstXor32[1] = 0;
*((ULONG *) pjDstData) = ulTempDstAnd32[0] | ulTempDstXor32[0] | ulTempDstData32[0] | ulTempDstAnd32[1] | ulTempDstXor32[1] | ulTempDstData32[1];
ulCheckSum += *((ULONG *) pjDstData);
pjDstData += 4;
@@ -276,6 +282,9 @@
static Bool
ASTUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
{
+ if ( (pCurs->bits->width > MAX_HWC_WIDTH) || (pCurs->bits->height > MAX_HWC_HEIGHT) )
+ return FALSE;
+
return TRUE;
}
@@ -377,6 +386,9 @@
static Bool
ASTUseHWCursorARGB(ScreenPtr pScreen, CursorPtr pCurs)
{
+ if ( (pCurs->bits->width > MAX_HWC_WIDTH) || (pCurs->bits->height > MAX_HWC_HEIGHT) )
+ return FALSE;
+
return TRUE;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.87.0/src/ast_driver.c new/xf86-video-ast-0.88.8/src/ast_driver.c
--- old/xf86-video-ast-0.87.0/src/ast_driver.c 2008-12-22 05:18:28.000000000 +0100
+++ new/xf86-video-ast-0.88.8/src/ast_driver.c 2009-01-16 07:51:00.000000000 +0100
@@ -72,6 +72,7 @@
extern void vSetStartAddressCRT1(ASTRecPtr pAST, ULONG base);
extern Bool ASTSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
extern Bool GetVGA2EDID(ScrnInfoPtr pScrn, unsigned char *pEDIDBuffer);
+extern void vInitDRAMReg(ScrnInfoPtr pScrn);
extern Bool bInitCMDQInfo(ScrnInfoPtr pScrn, ASTRecPtr pAST);
extern Bool bEnableCMDQ(ScrnInfoPtr pScrn, ASTRecPtr pAST);
@@ -123,8 +124,8 @@
/* Chipsets */
static SymTabRec ASTChipsets[] = {
- {PCI_CHIP_AST2000, "AST2000 Family"},
- {PCI_CHIP_AST2100, "AST1100_2050_2100"},
+ {PCI_CHIP_AST2000, "ASPEED Graphics Family"},
+ {PCI_CHIP_AST2100, "ASPEED Graphics Family"},
{-1, NULL}
};
@@ -223,6 +224,7 @@
"xf86InitInt10",
"xf86Int10AllocPages",
"xf86int10Addr",
+ "xf86FreeInt10",
NULL
};
@@ -600,7 +602,7 @@
from = X_CONFIG;
} else {
if (PCI_REGION_BASE(pAST->PciInfo, 1, REGION_MEM)) {
- pAST->MMIOPhysAddr = PCI_REGION_BASE(pAST->PciInfo, 1, REGION_IO) & 0xFFFF0000;
+ pAST->MMIOPhysAddr = PCI_REGION_BASE(pAST->PciInfo, 1, REGION_MEM) & 0xFFFF0000;
from = X_PROBED;
} else {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
@@ -612,38 +614,58 @@
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "IO registers at addr 0x%lX\n",
(unsigned long) pAST->MMIOPhysAddr);
+ /* Map MMIO */
+ pAST->MMIOMapSize = DEFAULT_MMIO_SIZE;
+ if (!ASTMapMMIO(pScrn)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Map Memory Map IO Failed \n");
+ return FALSE;
+ }
+
+ /* Init VGA Adapter */
+ if (!xf86IsPrimaryPci(pAST->PciInfo))
+ {
+ if (xf86LoadSubModule(pScrn, "int10")) {
+ xf86Int10InfoPtr pInt10;
+ xf86LoaderReqSymLists(int10Symbols, NULL);
+ xf86DrvMsg(pScrn->scrnIndex,X_INFO,"initializing int10\n");
+ pInt10 = xf86InitInt10(pAST->pEnt->index);
+ xf86FreeInt10(pInt10);
+ }
+ }
+
+ vASTOpenKey(pScrn);
+ bASTRegInit(pScrn);
+
+ /* Get Chip Type */
+ if (PCI_DEV_REVISION(pAST->PciInfo) >= 0x10)
+ GetChipType(pScrn);
+ else
+ pAST->jChipType = AST2000;
+
+ if (!xf86IsPrimaryPci(pAST->PciInfo))
+ {
+ vInitDRAMReg (pScrn);
+ }
+
+ /* Map Framebuffer */
pScrn->videoRam = GetVRAMInfo(pScrn) / 1024;
from = X_DEFAULT;
-
if (pAST->pEnt->device->videoRam) {
pScrn->videoRam = pAST->pEnt->device->videoRam;
from = X_CONFIG;
}
-
+
pAST->FbMapSize = pScrn->videoRam * 1024;
- pAST->MMIOMapSize = DEFAULT_MMIO_SIZE;
-
- /* Map resource */
+
if (!ASTMapMem(pScrn)) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Map FB Memory Failed \n");
return FALSE;
}
-
- if (!ASTMapMMIO(pScrn)) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Map Memory Map IO Failed \n");
- return FALSE;
- }
pScrn->memPhysBase = (ULONG)pAST->FBPhysAddr;
pScrn->fbOffset = 0;
- /* Get Revision */
- if (PCI_DEV_REVISION(pAST->PciInfo) >= 0x10)
- GetChipType(pScrn);
- else
- pAST->jChipType = AST2000;
-
/* Do DDC
* should be done after xf86CollectOptions
*/
@@ -659,7 +681,7 @@
clockRanges->doubleScanAllowed = FALSE;
/* Add for AST2100, ycchen@061807 */
- if (pAST->jChipType == AST2100)
+ if ((pAST->jChipType == AST2100) || (pAST->jChipType == AST2200))
i = xf86ValidateModes(pScrn, pScrn->monitor->Modes,
pScrn->display->modes, clockRanges,
0, 320, 1920, 8 * pScrn->bitsPerPixel,
@@ -1020,7 +1042,7 @@
}
/* Add for AST2100, ycchen@061807 */
- if (pAST->jChipType == AST2100)
+ if ((pAST->jChipType == AST2100) || (pAST->jChipType == AST2200))
{
if ( (mode->CrtcHDisplay == 1920) && (mode->CrtcVDisplay == 1200) )
return MODE_OK;
@@ -1084,7 +1106,6 @@
static Bool
ASTSaveScreen(ScreenPtr pScreen, Bool unblack)
{
- /* more ref. SiS */
return vgaHWSaveScreen(pScreen, unblack);
}
@@ -1148,7 +1169,12 @@
astReg = &pAST->SavedReg;
/* do save */
- vgaHWSave(pScrn, vgaReg, VGA_SR_ALL);
+ if (xf86IsPrimaryPci(pAST->PciInfo)) {
+ vgaHWSave(pScrn, vgaReg, VGA_SR_ALL);
+ }
+ else {
+ vgaHWSave(pScrn, vgaReg, VGA_SR_MODE);
+ }
/* Ext. Save */
vASTOpenKey(pScrn);
@@ -1175,8 +1201,11 @@
astReg = &pAST->SavedReg;
/* do restore */
- vgaHWProtect(pScrn, TRUE);
- vgaHWRestore(pScrn, vgaReg, VGA_SR_ALL);
+ vgaHWProtect(pScrn, TRUE);
+ if (xf86IsPrimaryPci(pAST->PciInfo))
+ vgaHWRestore(pScrn, vgaReg, VGA_SR_ALL);
+ else
+ vgaHWRestore(pScrn, vgaReg, VGA_SR_MODE);
vgaHWProtect(pScrn, FALSE);
/* Ext. restore */
@@ -1230,7 +1259,7 @@
MonInfo = MonInfo1;
/* For VGA2 CLONE Support, ycchen@012508 */
- if (xf86ReturnOptValBool(pAST->Options, OPTION_VGA2_CLONE, FALSE)) {
+ if ((xf86ReturnOptValBool(pAST->Options, OPTION_VGA2_CLONE, FALSE)) || pAST->VGA2Clone) {
if (GetVGA2EDID(pScrn, DDC_data) == TRUE) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Get VGA2 EDID Correctly!! \n");
MonInfo2 = xf86InterpretEDID(pScrn->scrnIndex, DDC_data);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.87.0/src/ast.h new/xf86-video-ast-0.88.8/src/ast.h
--- old/xf86-video-ast-0.87.0/src/ast.h 2008-12-22 05:18:28.000000000 +0100
+++ new/xf86-video-ast-0.88.8/src/ast.h 2009-01-16 07:50:21.000000000 +0100
@@ -48,7 +48,9 @@
VGALegacy,
AST2000,
AST2100,
- AST1100
+ AST1100,
+ AST2200,
+ AST2150
} CHIP_ID;
/* AST REC Info */
@@ -161,6 +163,7 @@
Bool MMIO2D;
int ENGCaps;
int DBGSelect;
+ Bool VGA2Clone;
ULONG FBPhysAddr; /* Frame buffer physical address */
ULONG MMIOPhysAddr; /* MMIO region physical address */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.87.0/src/ast_mode.c new/xf86-video-ast-0.88.8/src/ast_mode.c
--- old/xf86-video-ast-0.87.0/src/ast_mode.c 2008-12-22 05:18:28.000000000 +0100
+++ new/xf86-video-ast-0.88.8/src/ast_mode.c 2009-01-16 07:50:21.000000000 +0100
@@ -684,8 +684,16 @@
SetIndexRegMask(CRTC_PORT,0xA8, 0xFD, (UCHAR) jRegA8);
/* Set Threshold */
- SetIndexReg(CRTC_PORT,0xA7, 0x2F);
- SetIndexReg(CRTC_PORT,0xA6, 0x1F);
+ if ((pAST->jChipType == AST2100) || (pAST->jChipType == AST1100) || (pAST->jChipType == AST2200) || (pAST->jChipType == AST2150) )
+ {
+ SetIndexReg(CRTC_PORT,0xA7, 0x3F);
+ SetIndexReg(CRTC_PORT,0xA6, 0x2F);
+ }
+ else
+ {
+ SetIndexReg(CRTC_PORT,0xA7, 0x2F);
+ SetIndexReg(CRTC_PORT,0xA6, 0x1F);
+ }
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/xf86-video-ast-0.87.0/src/ast_vgatool.c new/xf86-video-ast-0.88.8/src/ast_vgatool.c
--- old/xf86-video-ast-0.87.0/src/ast_vgatool.c 2008-12-22 05:18:28.000000000 +0100
+++ new/xf86-video-ast-0.88.8/src/ast_vgatool.c 2009-01-16 07:57:54.000000000 +0100
@@ -68,6 +68,7 @@
void vASTLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, VisualPtr pVisual);
void ASTDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags);
Bool GetVGA2EDID(ScrnInfoPtr pScrn, unsigned char *pEDIDBuffer);
+void vInitDRAMReg(ScrnInfoPtr pScrn);
void
vASTOpenKey(ScrnInfoPtr pScrn)
@@ -176,23 +177,30 @@
/* Get Bandwidth */
/* Modify DARM utilization to 60% for AST1100/2100 16bits DRAM, ycchen@032508 */
- if ( ((pAST->jChipType == AST2100) || (pAST->jChipType == AST1100)) && (ulDRAMBusWidth == 16) )
+ if ( ((pAST->jChipType == AST2100) || (pAST->jChipType == AST1100) || (pAST->jChipType == AST2200) || (pAST->jChipType == AST2150)) && (ulDRAMBusWidth == 16) )
DRAMEfficiency = 600;
ulDRAMBandwidth = ulMCLK * ulDRAMBusWidth * 2 / 8;
ActualDRAMBandwidth = ulDRAMBandwidth * DRAMEfficiency / 1000;
- /* Get Max DCLK */
+ /* Get Max DCLK */
+ /* Fixed Fixed KVM + CRT threshold issue on AST2100 8bpp modes, ycchen@100708 */
GetIndexRegMask(CRTC_PORT, 0xD0, 0xFF, jReg);
- if (jReg & 0x08)
+ if ((jReg & 0x08) && (pAST->jChipType == AST2000))
ulDCLK = ActualDRAMBandwidth / ((pScrn->bitsPerPixel+1+16) / 8);
+ else if ((jReg & 0x08) && (pScrn->bitsPerPixel == 8))
+ ulDCLK = ActualDRAMBandwidth / ((pScrn->bitsPerPixel+1+24) / 8);
else
ulDCLK = ActualDRAMBandwidth / ((pScrn->bitsPerPixel+1) / 8);
/* Add for AST2100, ycchen@061807 */
- if (pAST->jChipType == AST2100)
+ if ((pAST->jChipType == AST2100) || (pAST->jChipType == AST2200))
+ {
if (ulDCLK > 200) ulDCLK = 200;
+ }
else
+ {
if (ulDCLK > 165) ulDCLK = 165;
+ }
return(ulDCLK);
@@ -203,6 +211,7 @@
{
ASTRecPtr pAST = ASTPTR(pScrn);
ULONG ulData;
+ UCHAR jReg;
pAST->jChipType = AST2100;
@@ -211,8 +220,34 @@
ulData = *(ULONG *) (pAST->MMIOVirtualAddr + 0x1207c);
+#if 0
if ((ulData & 0x0300) == 0x0200)
pAST->jChipType = AST1100;
+#endif
+ switch (ulData & 0x0300)
+ {
+ case 0x0200:
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "AST1100 Detected.\n");
+ pAST->jChipType = AST1100;
+ break;
+ case 0x0100:
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "AST2200 Detected.\n");
+ pAST->jChipType = AST2200;
+ break;
+ case 0x0000:
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "AST2150 Detected.\n");
+ pAST->jChipType = AST2150;
+ break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "AST2100 Detected.\n");
+ pAST->jChipType = AST2100;
+ }
+
+ /* VGA2 Clone Support */
+ GetIndexRegMask(CRTC_PORT, 0x90, 0xFF, jReg);
+ if (jReg & 0x10)
+ pAST->VGA2Clone = TRUE;
+
}
void
@@ -438,3 +473,238 @@
return (TRUE);
} /* GetVGA2EDID */
+
+typedef struct _AST_DRAMStruct {
+
+ USHORT Index;
+ ULONG Data;
+
+} AST_DRAMStruct, *PAST_DRAMStruct;
+
+AST_DRAMStruct AST2000DRAMTableData[] = {
+ { 0x0108, 0x00000000 },
+ { 0x0120, 0x00004a21 },
+ { 0xFF00, 0x00000043 },
+ { 0x0000, 0xFFFFFFFF },
+ { 0x0004, 0x00000089 },
+ { 0x0008, 0x22331353 },
+ { 0x000C, 0x0d07000b },
+ { 0x0010, 0x11113333 },
+ { 0x0020, 0x00110350 },
+ { 0x0028, 0x1e0828f0 },
+ { 0x0024, 0x00000001 },
+ { 0x001C, 0x00000000 },
+ { 0x0014, 0x00000003 },
+ { 0xFF00, 0x00000043 },
+ { 0x0018, 0x00000131 },
+ { 0x0014, 0x00000001 },
+ { 0xFF00, 0x00000043 },
+ { 0x0018, 0x00000031 },
+ { 0x0014, 0x00000001 },
+ { 0xFF00, 0x00000043 },
+ { 0x0028, 0x1e0828f1 },
+ { 0x0024, 0x00000003 },
+ { 0x002C, 0x1f0f28fb },
+ { 0x0030, 0xFFFFFE01 },
+ { 0xFFFF, 0xFFFFFFFF }
+};
+
+AST_DRAMStruct AST1100DRAMTableData[] = {
+ { 0x2000, 0x1688a8a8 },
+ { 0x2020, 0x000041f0 },
+ { 0xFF00, 0x00000043 },
+ { 0x0000, 0xfc600309 },
+ { 0x006C, 0x00909090 },
+ { 0x0064, 0x00050000 },
+ { 0x0004, 0x00000585 },
+ { 0x0008, 0x0011030f },
+ { 0x0010, 0x22201724 },
+ { 0x0018, 0x1e29011a },
+ { 0x0020, 0x00c82222 },
+ { 0x0014, 0x01001523 },
+ { 0x001C, 0x1024010d },
+ { 0x0024, 0x00cb2522 },
+ { 0x0038, 0xffffff82 },
+ { 0x003C, 0x00000000 },
+ { 0x0040, 0x00000000 },
+ { 0x0044, 0x00000000 },
+ { 0x0048, 0x00000000 },
+ { 0x004C, 0x00000000 },
+ { 0x0050, 0x00000000 },
+ { 0x0054, 0x00000000 },
+ { 0x0058, 0x00000000 },
+ { 0x005C, 0x00000000 },
+ { 0x0060, 0x032aa02a },
+ { 0x0064, 0x002d3000 },
+ { 0x0068, 0x00000000 },
+ { 0x0070, 0x00000000 },
+ { 0x0074, 0x00000000 },
+ { 0x0078, 0x00000000 },
+ { 0x007C, 0x00000000 },
+ { 0x0034, 0x00000001 },
+ { 0xFF00, 0x00000043 },
+ { 0x002C, 0x00000732 },
+ { 0x0030, 0x00000040 },
+ { 0x0028, 0x00000005 },
+ { 0x0028, 0x00000007 },
+ { 0x0028, 0x00000003 },
+ { 0x0028, 0x00000001 },
+ { 0x000C, 0x00005a08 },
+ { 0x002C, 0x00000632 },
+ { 0x0028, 0x00000001 },
+ { 0x0030, 0x000003c0 },
+ { 0x0028, 0x00000003 },
+ { 0x0030, 0x00000040 },
+ { 0x0028, 0x00000003 },
+ { 0x000C, 0x00005a21 },
+ { 0x0034, 0x00007c03 },
+ { 0x0120, 0x00004c41 },
+ { 0xffff, 0xffffffff },
+};
+
+AST_DRAMStruct AST2100DRAMTableData[] = {
+ { 0x2000, 0x1688a8a8 },
+ { 0x2020, 0x00004120 },
+ { 0xFF00, 0x00000043 },
+ { 0x0000, 0xfc600309 },
+ { 0x006C, 0x00909090 },
+ { 0x0064, 0x00070000 },
+ { 0x0004, 0x00000489 },
+ { 0x0008, 0x0011030f },
+ { 0x0010, 0x32302926 },
+ { 0x0018, 0x274c0122 },
+ { 0x0020, 0x00ce2222 },
+ { 0x0014, 0x01001523 },
+ { 0x001C, 0x1024010d },
+ { 0x0024, 0x00cb2522 },
+ { 0x0038, 0xffffff82 },
+ { 0x003C, 0x00000000 },
+ { 0x0040, 0x00000000 },
+ { 0x0044, 0x00000000 },
+ { 0x0048, 0x00000000 },
+ { 0x004C, 0x00000000 },
+ { 0x0050, 0x00000000 },
+ { 0x0054, 0x00000000 },
+ { 0x0058, 0x00000000 },
+ { 0x005C, 0x00000000 },
+ { 0x0060, 0x0f2aa02a },
+ { 0x0064, 0x003f3005 },
+ { 0x0068, 0x02020202 },
+ { 0x0070, 0x00000000 },
+ { 0x0074, 0x00000000 },
+ { 0x0078, 0x00000000 },
+ { 0x007C, 0x00000000 },
+ { 0x0034, 0x00000001 },
+ { 0xFF00, 0x00000043 },
+ { 0x002C, 0x00000942 },
+ { 0x0030, 0x00000040 },
+ { 0x0028, 0x00000005 },
+ { 0x0028, 0x00000007 },
+ { 0x0028, 0x00000003 },
+ { 0x0028, 0x00000001 },
+ { 0x000C, 0x00005a08 },
+ { 0x002C, 0x00000842 },
+ { 0x0028, 0x00000001 },
+ { 0x0030, 0x000003c0 },
+ { 0x0028, 0x00000003 },
+ { 0x0030, 0x00000040 },
+ { 0x0028, 0x00000003 },
+ { 0x000C, 0x00005a21 },
+ { 0x0034, 0x00007c03 },
+ { 0x0120, 0x00005061 },
+ { 0xffff, 0xffffffff },
+};
+
+void vInitDRAMReg(ScrnInfoPtr pScrn)
+{
+ AST_DRAMStruct *pjDRAMRegInfo;
+ ASTRecPtr pAST = ASTPTR(pScrn);
+ ULONG i, ulTemp;
+ UCHAR jReg;
+
+ GetIndexRegMask(CRTC_PORT, 0xD0, 0xFF, jReg);
+
+ if ((jReg & 0x80) == 0) /* VGA only */
+ {
+ if (pAST->jChipType == AST2000)
+ {
+ pjDRAMRegInfo = AST2000DRAMTableData;
+
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0xF004) = 0x1e6e0000;
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0xF000) = 0x1;
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0x10100) = 0xa8;
+
+ do {
+ ;
+ } while (*(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10100) != 0xa8);
+
+ }
+ else /* AST2100/1100 */
+ {
+ GetChipType(pScrn);
+
+ if ((pAST->jChipType == AST2100) || (pAST->jChipType == AST2200))
+ pjDRAMRegInfo = AST2100DRAMTableData;
+ else
+ pjDRAMRegInfo = AST1100DRAMTableData;
+
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0xF004) = 0x1e6e0000;
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0xF000) = 0x1;
+
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0x12000) = 0x1688A8A8;
+ do {
+ ;
+ } while (*(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x12000) != 0x01);
+
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0x10000) = 0xFC600309;
+ do {
+ ;
+ } while (*(volatile ULONG *) (pAST->MMIOVirtualAddr + 0x10000) != 0x01);
+
+ }
+
+ while (pjDRAMRegInfo->Index != 0xFFFF)
+ {
+ if (pjDRAMRegInfo->Index == 0xFF00) /* Delay function */
+ {
+ for (i=0; i<15; i++)
+ xf86UDelay(pjDRAMRegInfo->Data);
+ }
+ else if ( (pjDRAMRegInfo->Index == 0x0004) && (pAST->jChipType != AST2000) )
+ {
+ ulTemp = *(ULONG *) (pAST->MMIOVirtualAddr + 0x12070);
+ ulTemp &= 0x0000000C;
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0x10000 + pjDRAMRegInfo->Index) = (pjDRAMRegInfo->Data | ulTemp);
+ }
+ else
+ {
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0x10000 + pjDRAMRegInfo->Index) = pjDRAMRegInfo->Data;
+ }
+ pjDRAMRegInfo++;
+ }
+
+ switch (pAST->jChipType)
+ {
+ case AST2000:
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0x10140) |= 0x40;
+ break;
+
+ case AST1100:
+ case AST2100:
+ case AST2200:
+ case AST2150:
+ ulTemp = *(ULONG *) (pAST->MMIOVirtualAddr + 0x1200c);
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0x1200c) = (ulTemp & 0xFFFFFFFD);
+
+ *(ULONG *) (pAST->MMIOVirtualAddr + 0x12040) |= 0x40;
+ break;
+ }
+
+ } /* Init DRAM */
+
+ /* wait ready */
+ do {
+ GetIndexRegMask(CRTC_PORT, 0xD0, 0xFF, jReg);
+ } while ((jReg & 0x40) == 0);
+
+} /* vInitDRAMReg */
++++++ xf86-video-intel-2.6.2.tar.bz2 -> xf86-video-intel-2.6.3.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-intel-2.6.2/configure new/xf86-video-intel-2.6.3/configure
--- old/xf86-video-intel-2.6.2/configure 2009-02-24 23:09:47.000000000 +0100
+++ new/xf86-video-intel-2.6.3/configure 2009-03-02 20:21:16.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for xf86-video-intel 2.6.2.
+# Generated by GNU Autoconf 2.61 for xf86-video-intel 2.6.3.
#
# Report bugs to https://bugs.freedesktop.org/enter_bug.cgi?product=xorg.
#
@@ -728,8 +728,8 @@
# Identity of this package.
PACKAGE_NAME='xf86-video-intel'
PACKAGE_TARNAME='xf86-video-intel'
-PACKAGE_VERSION='2.6.2'
-PACKAGE_STRING='xf86-video-intel 2.6.2'
+PACKAGE_VERSION='2.6.3'
+PACKAGE_STRING='xf86-video-intel 2.6.3'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am"
@@ -1476,7 +1476,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xf86-video-intel 2.6.2 to adapt to many kinds of systems.
+\`configure' configures xf86-video-intel 2.6.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1546,7 +1546,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xf86-video-intel 2.6.2:";;
+ short | recursive ) echo "Configuration of xf86-video-intel 2.6.3:";;
esac
cat <<\_ACEOF
@@ -1683,7 +1683,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xf86-video-intel configure 2.6.2
+xf86-video-intel configure 2.6.3
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1697,7 +1697,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xf86-video-intel $as_me 2.6.2, which was
+It was created by xf86-video-intel $as_me 2.6.3, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2392,7 +2392,7 @@
# Define the identity of the package.
PACKAGE='xf86-video-intel'
- VERSION='2.6.2'
+ VERSION='2.6.3'
cat >>confdefs.h <<_ACEOF
@@ -24046,7 +24046,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xf86-video-intel $as_me 2.6.2, which was
+This file was extended by xf86-video-intel $as_me 2.6.3, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -24099,7 +24099,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-xf86-video-intel config.status 2.6.2
+xf86-video-intel config.status 2.6.3
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-intel-2.6.2/configure.ac new/xf86-video-intel-2.6.3/configure.ac
--- old/xf86-video-intel-2.6.2/configure.ac 2009-02-24 23:09:26.000000000 +0100
+++ new/xf86-video-intel-2.6.3/configure.ac 2009-03-02 20:21:07.000000000 +0100
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-intel],
- 2.6.2,
+ 2.6.3,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-video-intel)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-intel-2.6.2/src/i830_dri.c new/xf86-video-intel-2.6.3/src/i830_dri.c
--- old/xf86-video-intel-2.6.2/src/i830_dri.c 2009-02-24 23:08:49.000000000 +0100
+++ new/xf86-video-intel-2.6.3/src/i830_dri.c 2009-03-02 20:21:02.000000000 +0100
@@ -1862,36 +1862,33 @@
pPixmap = pDepthPixmap;
pPixmap->refcnt++;
} else {
- uint32_t tiling = I915_TILING_NONE;
+ unsigned int hint = 0;
- pPixmap = (*pScreen->CreatePixmap)(pScreen,
- pDraw->width,
- pDraw->height,
- pDraw->depth, 0);
switch (attachments[i]) {
case DRI2BufferDepth:
if (SUPPORTS_YTILING(pI830))
- tiling = I915_TILING_Y;
+ hint = INTEL_CREATE_PIXMAP_TILING_Y;
else
- tiling = I915_TILING_X;
+ hint = INTEL_CREATE_PIXMAP_TILING_X;
break;
case DRI2BufferFakeFrontLeft:
case DRI2BufferFakeFrontRight:
case DRI2BufferBackLeft:
case DRI2BufferBackRight:
- tiling = I915_TILING_X;
+ hint = INTEL_CREATE_PIXMAP_TILING_X;
break;
}
if (!pI830->tiling ||
(!IS_I965G(pI830) && !pI830->kernel_exec_fencing))
- tiling = I915_TILING_NONE;
+ hint = 0;
+
+ pPixmap = (*pScreen->CreatePixmap)(pScreen,
+ pDraw->width,
+ pDraw->height,
+ pDraw->depth,
+ hint);
- if (tiling != I915_TILING_NONE) {
- bo = i830_get_pixmap_bo(pPixmap);
- drm_intel_bo_set_tiling(bo, &tiling,
- intel_get_pixmap_pitch(pPixmap));
- }
}
if (attachments[i] == DRI2BufferDepth)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-intel-2.6.2/src/i830_driver.c new/xf86-video-intel-2.6.3/src/i830_driver.c
--- old/xf86-video-intel-2.6.2/src/i830_driver.c 2009-02-24 23:08:16.000000000 +0100
+++ new/xf86-video-intel-2.6.3/src/i830_driver.c 2009-03-02 20:21:02.000000000 +0100
@@ -1694,6 +1694,10 @@
pI830->can_resize = FALSE;
if (pI830->accel == ACCEL_UXA && pI830->directRenderingType != DRI_XF86DRI)
pI830->can_resize = TRUE;
+#if !defined(DRI2) && defined(XF86DRI)
+ /* Disable resizing so that DRI1 can initialize and give us GEM support. */
+ pI830->can_resize = FALSE;
+#endif
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"Resizable framebuffer: %s (%d %d)\n",
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-intel-2.6.2/src/i830_exa.c new/xf86-video-intel-2.6.3/src/i830_exa.c
--- old/xf86-video-intel-2.6.2/src/i830_exa.c 2009-02-24 23:08:16.000000000 +0100
+++ new/xf86-video-intel-2.6.3/src/i830_exa.c 2009-03-02 20:21:02.000000000 +0100
@@ -883,29 +883,38 @@
if (w && h)
{
unsigned int size;
+ uint32_t tiling = I915_TILING_NONE;
stride = ROUND_TO((w * pixmap->drawable.bitsPerPixel + 7) / 8,
i830->accel_pixmap_pitch_alignment);
- /* Use the I915_FENCE_TILING_X even if it may end up being TILING_Y,
- * as it just results in larger alignment. Really, we need to use the
- * usage hint to tell what the pixmap's going to be.
- */
- stride = i830_get_fence_pitch(i830, stride, I915_TILING_X);
- /* Round the object up to the size of the fence it will live in
- * if necessary. We could potentially make the kernel allocate
- * a larger aperture space and just bind the subset of pages in,
- * but this is easier and also keeps us out of trouble (as much)
- * with drm_intel_bufmgr_check_aperture().
- */
- size = i830_get_fence_size(i830, stride * h);
+ if (usage == INTEL_CREATE_PIXMAP_TILING_X)
+ tiling = I915_TILING_X;
+ else if (usage == INTEL_CREATE_PIXMAP_TILING_Y)
+ tiling = I915_TILING_Y;
+
+ if (tiling == I915_TILING_NONE) {
+ size = stride * h;
+ } else {
+ stride = i830_get_fence_pitch(i830, stride, tiling);
+ /* Round the object up to the size of the fence it will live in
+ * if necessary. We could potentially make the kernel allocate
+ * a larger aperture space and just bind the subset of pages in,
+ * but this is easier and also keeps us out of trouble (as much)
+ * with drm_intel_bufmgr_check_aperture().
+ */
+ size = i830_get_fence_size(i830, stride * h);
+ }
bo = drm_intel_bo_alloc_for_render(i830->bufmgr, "pixmap", size, 0);
if (!bo) {
fbDestroyPixmap (pixmap);
return NullPixmap;
}
-
+
+ if (tiling != I915_TILING_NONE)
+ drm_intel_bo_set_tiling(bo, &tiling, stride);
+
screen->ModifyPixmapHeader (pixmap, w, h, 0, 0, stride, NULL);
i830_uxa_set_pixmap_bo (pixmap, bo);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-intel-2.6.2/src/i830.h new/xf86-video-intel-2.6.3/src/i830.h
--- old/xf86-video-intel-2.6.2/src/i830.h 2009-02-24 23:08:16.000000000 +0100
+++ new/xf86-video-intel-2.6.3/src/i830.h 2009-03-02 20:21:02.000000000 +0100
@@ -1095,4 +1095,15 @@
#define QUIRK_IGNORE_CRT 0x00000080
extern void i830_fixup_devices(ScrnInfoPtr);
+/**
+ * Hints to CreatePixmap to tell the driver how the pixmap is going to be
+ * used.
+ *
+ * Compare to CREATE_PIXMAP_USAGE_* in the server.
+ */
+enum {
+ INTEL_CREATE_PIXMAP_TILING_X = 0x10000000,
+ INTEL_CREATE_PIXMAP_TILING_Y,
+};
+
#endif /* _I830_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-intel-2.6.2/src/Makefile.in new/xf86-video-intel-2.6.3/src/Makefile.in
--- old/xf86-video-intel-2.6.2/src/Makefile.in 2009-02-24 23:09:49.000000000 +0100
+++ new/xf86-video-intel-2.6.3/src/Makefile.in 2009-03-02 20:21:43.000000000 +0100
@@ -67,7 +67,7 @@
@XVMC_TRUE@ $(INTEL_XVMC_SRCS)
subdir = src
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.ac
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/xf86-video-intel-2.6.2/src/TODO new/xf86-video-intel-2.6.3/src/TODO
--- old/xf86-video-intel-2.6.2/src/TODO 2008-12-04 19:01:21.000000000 +0100
+++ new/xf86-video-intel-2.6.3/src/TODO 1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-nuke wm scratch
-replace scrn virtualxy with pixmap
\ No newline at end of file
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org