mirror of
https://github.com/X11Libre/xf86-video-ast.git
synced 2026-03-24 01:24:41 +00:00
xf86-video-ast-0.89.0
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2009-04-13 Y.C. Chen <yc_chen@aspedtech.com>
|
||||
* src/ast.h, ast_cursor.c
|
||||
- Fixed xorg bugzilla #20606
|
||||
* src/ast_driver.c
|
||||
- Fixed xorg bugzilla #20472
|
||||
* src/ast_accel.c
|
||||
- Fixed desktop display abnormal if video buffer is above than 16MB
|
||||
|
||||
2009-01-16 Y.C. Chen <yc_chen@aspedtech.com>
|
||||
* src/ast_driver.c
|
||||
- Fixed Support Modes Incorrect Issues on Solaris 10 x86
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([xf86-video-ast],
|
||||
0.88.8,
|
||||
0.89.0,
|
||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
|
||||
xf86-video-ast)
|
||||
|
||||
|
||||
@@ -132,7 +132,8 @@ typedef struct {
|
||||
USHORT offset_y;
|
||||
ULONG fg;
|
||||
ULONG bg;
|
||||
|
||||
|
||||
UCHAR cursorpattern[1024];
|
||||
|
||||
} HWCINFO, *PHWCINFO;
|
||||
|
||||
|
||||
@@ -351,22 +351,29 @@ ASTSubsequentScreenToScreenCopy(ScrnInfoPtr pScrn, int x1, int y1, int x2,
|
||||
else
|
||||
cmdreg &= ~CMD_ENABLE_CLIP;
|
||||
srcbase = dstbase = 0;
|
||||
|
||||
if (x1 < x2)
|
||||
cmdreg |= CMD_X_DEC;
|
||||
|
||||
if (y1 < y2)
|
||||
cmdreg |= CMD_Y_DEC;
|
||||
|
||||
if (y1 >= MAX_SRC_Y)
|
||||
if ((y1 + height) >= MAX_SRC_Y)
|
||||
{
|
||||
srcbase=pAST->VideoModeInfo.ScreenPitch*y1;
|
||||
y1 = 0;
|
||||
}
|
||||
|
||||
if (y2 >= pScrn->virtualY)
|
||||
if ((y2 + height) >= pScrn->virtualY)
|
||||
{
|
||||
dstbase=pAST->VideoModeInfo.ScreenPitch*y2;
|
||||
y2 = 0;
|
||||
}
|
||||
|
||||
if (x1 < x2)
|
||||
if (cmdreg & CMD_X_DEC)
|
||||
{
|
||||
src_x = x1 + width - 1;
|
||||
dst_x = x2 + width - 1;
|
||||
cmdreg |= CMD_X_DEC;
|
||||
src_x = x1 + width - 1;
|
||||
dst_x = x2 + width - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -374,20 +381,13 @@ ASTSubsequentScreenToScreenCopy(ScrnInfoPtr pScrn, int x1, int y1, int x2,
|
||||
dst_x = x2;
|
||||
}
|
||||
|
||||
if (y1 < y2)
|
||||
{
|
||||
if (srcbase) y1 = 0;
|
||||
if (dstbase) y2 = 0;
|
||||
|
||||
if (cmdreg & CMD_Y_DEC)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -203,6 +203,10 @@ ASTSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg)
|
||||
|
||||
pAST->HWCInfo.fg = (fg & 0x0F) | (((fg>>8) & 0x0F) << 4) | (((fg>>16) & 0x0F) << 8);
|
||||
pAST->HWCInfo.bg = (bg & 0x0F) | (((bg>>8) & 0x0F) << 4) | (((bg>>16) & 0x0F) << 8);
|
||||
|
||||
/* Fixed xorg bugzilla #20609, ycchen@031209 */
|
||||
ASTLoadCursorImage(pScrn, pAST->HWCInfo.cursorpattern);
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -223,6 +227,10 @@ ASTLoadCursorImage(ScrnInfoPtr pScrn, UCHAR *src)
|
||||
pAST->HWCInfo.offset_x = MAX_HWC_WIDTH - pAST->HWCInfo.width;
|
||||
pAST->HWCInfo.offset_y = MAX_HWC_HEIGHT - pAST->HWCInfo.height;
|
||||
|
||||
/* copy to hwc info */
|
||||
for (i=0; i< MAX_HWC_WIDTH*MAX_HWC_HEIGHT/4; i+=4)
|
||||
*(ULONG *) (pAST->HWCInfo.cursorpattern + i) = *(ULONG *) (src + i);
|
||||
|
||||
/* copy cursor image to cache */
|
||||
pjSrcXor = src;
|
||||
pjSrcAnd = src + (MAX_HWC_WIDTH*MAX_HWC_HEIGHT/8);
|
||||
|
||||
@@ -658,10 +658,12 @@ ASTPreInit(ScrnInfoPtr pScrn, int flags)
|
||||
|
||||
pAST->FbMapSize = pScrn->videoRam * 1024;
|
||||
|
||||
#if 0
|
||||
if (!ASTMapMem(pScrn)) {
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Map FB Memory Failed \n");
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
pScrn->memPhysBase = (ULONG)pAST->FBPhysAddr;
|
||||
pScrn->fbOffset = 0;
|
||||
@@ -797,6 +799,11 @@ ASTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
|
||||
pScrn = xf86Screens[pScreen->myNum];
|
||||
pAST = ASTPTR(pScrn);
|
||||
hwp = VGAHWPTR(pScrn);
|
||||
|
||||
if (!ASTMapMem(pScrn)) {
|
||||
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Map FB Memory Failed \n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* if (!pAST->noAccel) */
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user