summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--src/ast.h2
-rw-r--r--src/ast_cursor.c22
-rw-r--r--src/ast_cursor.h9
4 files changed, 40 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c4c4d5..8b61708 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,16 @@
2006-03-14 Alan Coopersmith <alan.coopersmith@sun.com>
* src/ast.h:
+ * src/ast_cursor.c:
+ * src/ast_cursor.h:
+ Version 0.60 from ASPEED Technology Inc.
+ (Modify H/W cursor parts for customer request)
+ Bugzilla #4937 <https://bugs.freedesktop.org/show_bug.cgi?id=4937>
+ Attachment #4044 <https://bugs.freedesktop.org/attachment.cgi?id=4044>
+
+2006-03-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * src/ast.h:
* src/ast_2dtool.c:
* src/ast_2dtool.h:
* src/ast_accel.c:
@@ -12,6 +22,6 @@
* src/ast_tool.c:
* src/ast_vgatool.c:
* src/ast_vgatool.h:
- Initial code release from ASPEED Technology Inc.
+ Initial code release from ASPEED Technology Inc. (Version 0.51)
Bugzilla #4937 <https://bugs.freedesktop.org/show_bug.cgi?id=4937>
- Attachment 3686 <https://bugs.freedesktop.org/attachment.cgi?id=3686> \ No newline at end of file
+ Attachment #3686 <https://bugs.freedesktop.org/attachment.cgi?id=3686> \ No newline at end of file
diff --git a/src/ast.h b/src/ast.h
index bbffa11..a30ae5f 100644
--- a/src/ast.h
+++ b/src/ast.h
@@ -38,7 +38,7 @@
#define AST_NAME "AST"
#define AST_DRIVER_NAME "ast"
#define AST_MAJOR_VERSION 0
-#define AST_MINOR_VERSION 51
+#define AST_MINOR_VERSION 60
#define AST_PATCH_VERSION 0
#define AST_VERSION \
((AST_MAJOR_VERSION << 20) | (AST_MINOR_VERSION << 10) | AST_PATCH_VERSION)
diff --git a/src/ast_cursor.c b/src/ast_cursor.c
index fbbce1b..e870331 100644
--- a/src/ast_cursor.c
+++ b/src/ast_cursor.c
@@ -159,7 +159,13 @@ ASTSetCursorPosition(ScrnInfoPtr pScrn, int x, int y)
ASTRecPtr pAST = ASTPTR(pScrn);
DisplayModePtr mode = pAST->ModePtr;
int x_offset, y_offset;
-
+ UCHAR *pjSignature;
+
+ /* Set cursor info to Offscreen */
+ pjSignature = (UCHAR *) pAST->HWCInfo.pjHWCVirtualAddr + (HWC_SIZE+HWC_SIGNATURE_SIZE)*pAST->HWCInfo.HWC_NUM_Next + HWC_SIZE;
+ *((ULONG *) (pjSignature + HWC_SIGNATURE_X)) = x;
+ *((ULONG *) (pjSignature + HWC_SIGNATURE_Y)) = y;
+
x_offset = pAST->HWCInfo.offset_x;
y_offset = pAST->HWCInfo.offset_y;
@@ -174,7 +180,7 @@ ASTSetCursorPosition(ScrnInfoPtr pScrn, int x, int y)
}
if(mode->Flags & V_DBLSCAN) y *= 2;
-
+
/* Set to Reg. */
SetIndexReg(CRTC_PORT, 0xC2, (UCHAR) (x_offset));
SetIndexReg(CRTC_PORT, 0xC3, (UCHAR) (y_offset));
@@ -249,7 +255,11 @@ ASTLoadCursorImage(ScrnInfoPtr pScrn, UCHAR *src)
/* Write Checksum as signature */
pjDstData = (UCHAR *) pAST->HWCInfo.pjHWCVirtualAddr + (HWC_SIZE+HWC_SIGNATURE_SIZE)*pAST->HWCInfo.HWC_NUM_Next + HWC_SIZE;
*((ULONG *) pjDstData) = ulCheckSum;
-
+ *((ULONG *) (pjDstData + HWC_SIGNATURE_SizeX)) = pAST->HWCInfo.width;
+ *((ULONG *) (pjDstData + HWC_SIGNATURE_SizeY)) = pAST->HWCInfo.height;
+ *((ULONG *) (pjDstData + HWC_SIGNATURE_HOTSPOTX)) = 0;
+ *((ULONG *) (pjDstData + HWC_SIGNATURE_HOTSPOTY)) = 0;
+
/* set pattern offset */
ulPatternAddr = ((pAST->HWCInfo.ulHWCOffsetAddr+(HWC_SIZE+HWC_SIGNATURE_SIZE)*pAST->HWCInfo.HWC_NUM_Next) >> 3);
SetIndexReg(CRTC_PORT, 0xC8, (UCHAR) (ulPatternAddr & 0xFF));
@@ -346,7 +356,11 @@ ASTLoadCursorARGB(ScrnInfoPtr pScrn, CursorPtr pCurs)
/* Write Checksum as signature */
pjDstXor = (UCHAR *) pAST->HWCInfo.pjHWCVirtualAddr + (HWC_SIZE+HWC_SIGNATURE_SIZE)*pAST->HWCInfo.HWC_NUM_Next + HWC_SIZE;
*((ULONG *) pjDstXor) = ulCheckSum;
-
+ *((ULONG *) (pjDstXor + HWC_SIGNATURE_SizeX)) = pAST->HWCInfo.width;
+ *((ULONG *) (pjDstXor + HWC_SIGNATURE_SizeY)) = pAST->HWCInfo.height;
+ *((ULONG *) (pjDstXor + HWC_SIGNATURE_HOTSPOTX)) = 0;
+ *((ULONG *) (pjDstXor + HWC_SIGNATURE_HOTSPOTY)) = 0;
+
/* set pattern offset */
ulPatternAddr = ((pAST->HWCInfo.ulHWCOffsetAddr +(HWC_SIZE+HWC_SIGNATURE_SIZE)*pAST->HWCInfo.HWC_NUM_Next) >> 3);
SetIndexReg(CRTC_PORT, 0xC8, (UCHAR) (ulPatternAddr & 0xFF));
diff --git a/src/ast_cursor.h b/src/ast_cursor.h
index b513f3f..d4de479 100644
--- a/src/ast_cursor.h
+++ b/src/ast_cursor.h
@@ -28,3 +28,12 @@
#define HWC_MONO 0
#define HWC_COLOR 1
+
+/* define for signature structure */
+#define HWC_SIGNATURE_CHECKSUM 0x00
+#define HWC_SIGNATURE_SizeX 0x04
+#define HWC_SIGNATURE_SizeY 0x08
+#define HWC_SIGNATURE_X 0x0C
+#define HWC_SIGNATURE_Y 0x10
+#define HWC_SIGNATURE_HOTSPOTX 0x14
+#define HWC_SIGNATURE_HOTSPOTY 0x18