summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Coopersmith <Alan.Coopersmith@sun.com>2006-03-14 23:36:18 +0000
committerAlan Coopersmith <Alan.Coopersmith@sun.com>2006-03-14 23:36:18 +0000
commit4e31187407a6dfe53a9d15f06c8c4584e20125ba (patch)
tree6bb602acbac28aff2db691c94957ec6336fb01bd
parent7c713fb0da9c5c0c5c4e727ff4c801ec0e6e4a83 (diff)
Version 0.62 from ASPEED Technology Inc. (Fixed get video buffer size
incorrect issue) Bugzilla #4937 <https://bugs.freedesktop.org/show_bug.cgi?id=4937> Attachment #4563 <https://bugs.freedesktop.org/attachment.cgi?id=4563>
-rw-r--r--ChangeLog10
-rw-r--r--src/ast.h2
-rw-r--r--src/ast_driver.c2
-rw-r--r--src/ast_vgatool.c484
4 files changed, 256 insertions, 242 deletions
diff --git a/ChangeLog b/ChangeLog
index 722a134..1af881f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,16 @@
2006-03-14 Alan Coopersmith <alan.coopersmith@sun.com>
* src/ast.h:
+ * src/ast_driver.c:
+ * src/ast_vgatool.c:
+ Version 0.62 from ASPEED Technology Inc.
+ (Fixed get video buffer size incorrect issue)
+ Bugzilla #4937 <https://bugs.freedesktop.org/show_bug.cgi?id=4937>
+ Attachment #4563 <https://bugs.freedesktop.org/attachment.cgi?id=4563>
+
+2006-03-14 Alan Coopersmith <alan.coopersmith@sun.com>
+
+ * src/ast.h:
* src/ast_accel.c:
* src/ast_driver.c:
Version 0.61 from ASPEED Technology Inc.
diff --git a/src/ast.h b/src/ast.h
index 8683211..16ec028 100644
--- a/src/ast.h
+++ b/src/ast.h
@@ -38,7 +38,7 @@
#define AST_NAME "AST1000/2000"
#define AST_DRIVER_NAME "ast"
#define AST_MAJOR_VERSION 0
-#define AST_MINOR_VERSION 61
+#define AST_MINOR_VERSION 62
#define AST_PATCH_VERSION 0
#define AST_VERSION \
((AST_MAJOR_VERSION << 20) | (AST_MINOR_VERSION << 10) | AST_PATCH_VERSION)
diff --git a/src/ast_driver.c b/src/ast_driver.c
index a9f6de0..a0bf8f3 100644
--- a/src/ast_driver.c
+++ b/src/ast_driver.c
@@ -242,7 +242,7 @@ static XF86ModuleVersionInfo astVersRec = {
MODULEVENDORSTRING,
MODINFOSTRING1,
MODINFOSTRING2,
- XF86_VERSION_CURRENT,
+ XORG_VERSION_CURRENT,
AST_MAJOR_VERSION, AST_MINOR_VERSION, AST_PATCH_VERSION,
ABI_CLASS_VIDEODRV,
ABI_VIDEODRV_VERSION,
diff --git a/src/ast_vgatool.c b/src/ast_vgatool.c
index 92013c9..85b105c 100644
--- a/src/ast_vgatool.c
+++ b/src/ast_vgatool.c
@@ -1,240 +1,244 @@
-/*
- * Copyright (c) 2005 ASPEED Technology Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of the authors not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. The authors makes no representations
- * about the suitability of this software for any purpose. It is provided
- * "as is" without express or implied warranty.
- *
- * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "xf86.h"
-#include "xf86_ansic.h"
-#include "xf86_OSproc.h"
-#include "xf86Resources.h"
-#include "xf86RAC.h"
-#include "xf86cmap.h"
-#include "compiler.h"
-#include "mibstore.h"
-#include "vgaHW.h"
-#include "mipointer.h"
-#include "micmap.h"
-
-#include "fb.h"
-#include "regionstr.h"
-#include "xf86xv.h"
-#include "Xv.h"
-#include "vbe.h"
-
-#include "xf86PciInfo.h"
-#include "xf86Pci.h"
-
-/* framebuffer offscreen manager */
-#include "xf86fbman.h"
-
-/* include xaa includes */
-#include "xaa.h"
-#include "xaarop.h"
-
-/* H/W cursor support */
-#include "xf86Cursor.h"
-
-/* Driver specific headers */
-#include "ast.h"
-
-/* Prototype type declaration*/
-void vASTOpenKey(ScrnInfoPtr pScrn);
-Bool bASTRegInit(ScrnInfoPtr pScrn);
-ULONG GetVRAMInfo(ScrnInfoPtr pScrn);
-void vAST1000DisplayOn(ASTRecPtr pAST);
-void vAST1000DisplayOff(ASTRecPtr pAST);
-void vSetStartAddressCRT1(ASTRecPtr pAST, ULONG base);
-void vASTLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, VisualPtr pVisual);
-void ASTDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags);
-
-void
-vASTOpenKey(ScrnInfoPtr pScrn)
-{
- ASTRecPtr pAST = ASTPTR(pScrn);
-
- SetIndexReg(CRTC_PORT,0x80, 0xA8);
-
-}
-
-Bool
-bASTRegInit(ScrnInfoPtr pScrn)
-{
- ASTRecPtr pAST = ASTPTR(pScrn);
-
- /* Enable MMIO */
- SetIndexRegMask(CRTC_PORT,0xA1, 0xFF, 0x04);
-
- return (TRUE);
-
-}
-
-ULONG
-GetVRAMInfo(ScrnInfoPtr pScrn)
-{
- ASTRecPtr pAST = ASTPTR(pScrn);
- UCHAR jReg;
-
- GetIndexRegMask(CRTC_PORT, 0xAA, 0xFF, jReg);
-
- switch (jReg & 0x03)
- {
- case 0x00:
- return (VIDEOMEM_SIZE_08M);
- case 0x01:
- return (VIDEOMEM_SIZE_16M);
- case 0x02:
- return (VIDEOMEM_SIZE_32M);
- case 0x03:
- return (VIDEOMEM_SIZE_64M);
- }
-
- return (DEFAULT_VIDEOMEM_SIZE);
-
-}
-
-
-void
-vSetStartAddressCRT1(ASTRecPtr pAST, ULONG base)
-{
- SetIndexReg(CRTC_PORT,0x0D, (UCHAR) (base & 0xFF));
- SetIndexReg(CRTC_PORT,0x0C, (UCHAR) ((base >> 8) & 0xFF));
- SetIndexReg(CRTC_PORT,0xAF, (UCHAR) ((base >> 16) & 0xFF));
-
-}
-
-void
-vAST1000DisplayOff(ASTRecPtr pAST)
-{
- SetIndexRegMask(SEQ_PORT,0x01, 0xDF, 0x20);
-
-}
-
-
-void
-vAST1000DisplayOn(ASTRecPtr pAST)
-{
-
- SetIndexRegMask(SEQ_PORT,0x01, 0xDF, 0x00);
-
-}
-
-
-void
-vASTLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
- VisualPtr pVisual)
-{
-
- ASTRecPtr pAST = ASTPTR(pScrn);
- int i, j, index;
- UCHAR DACIndex, DACR, DACG, DACB;
-
- switch (pScrn->bitsPerPixel) {
- case 15:
- for(i=0; i<numColors; i++) {
- index = indices[i];
- for(j=0; j<8; j++) {
- DACIndex = (index * 8) + j;
- DACR = colors[index].red << (8- pScrn->rgbBits);
- DACG = colors[index].green << (8- pScrn->rgbBits);
- DACB = colors[index].blue << (8- pScrn->rgbBits);
-
- VGA_LOAD_PALETTE_INDEX (DACIndex, DACR, DACG, DACB);
- }
- }
- break;
-
- case 16:
- for(i=0; i<numColors; i++) {
- index = indices[i];
- for(j=0; j<4; j++) {
- DACIndex = (index * 4) + j;
- DACR = colors[index/2].red << (8- pScrn->rgbBits);
- DACG = colors[index].green << (8- pScrn->rgbBits);
- DACB = colors[index/2].blue << (8- pScrn->rgbBits);
-
- VGA_LOAD_PALETTE_INDEX (DACIndex, DACR, DACG, DACB);
- }
- }
- break;
-
- case 24:
- for(i=0; i<numColors; i++) {
- index = indices[i];
- DACIndex = index;
- DACR = colors[index].red;
- DACG = colors[index].green;
- DACB = colors[index].blue;
-
- VGA_LOAD_PALETTE_INDEX (DACIndex, DACR, DACG, DACB);
- }
- break;
-
- default:
- for(i=0; i<numColors; i++) {
- index = indices[i];
- DACIndex = index;
- DACR = colors[index].red >> (8 - pScrn->rgbBits);
- DACG = colors[index].green >> (8 - pScrn->rgbBits);
- DACB = colors[index].blue >> (8 - pScrn->rgbBits);
-
- VGA_LOAD_PALETTE_INDEX (DACIndex, DACR, DACG, DACB);
- }
-
- } /* end of switch */
-
-} /* end of vASTLoadPalette */
-
-void
-ASTDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags)
-{
- ASTRecPtr pAST;
- UCHAR SEQ01, CRB6;
-
- pAST = ASTPTR(pScrn);
- SEQ01=CRB6=0;
-
- switch (PowerManagementMode) {
- case DPMSModeOn:
- /* Screen: On; HSync: On, VSync: On */
- SEQ01 = 0x00;
- CRB6 = 0x00;
- break;
- case DPMSModeStandby:
- /* Screen: Off; HSync: Off, VSync: On */
- SEQ01 = 0x20;
- CRB6 = 0x01;
- break;
- case DPMSModeSuspend:
- /* Screen: Off; HSync: On, VSync: Off */
- SEQ01 = 0x20;
- CRB6 = 0x02;
- break;
- case DPMSModeOff:
- /* Screen: Off; HSync: Off, VSync: Off */
- SEQ01 = 0x20;
- CRB6 = 0x03;
- break;
- }
-
- SetIndexRegMask(SEQ_PORT,0x01, 0xDF, SEQ01);
- SetIndexRegMask(CRTC_PORT,0xB6, 0xFC, CRB6);
-
-
-}
+/*
+ * Copyright (c) 2005 ASPEED Technology Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the authors not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. The authors makes no representations
+ * about the suitability of this software for any purpose. It is provided
+ * "as is" without express or implied warranty.
+ *
+ * THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "xf86.h"
+#include "xf86_ansic.h"
+#include "xf86_OSproc.h"
+#include "xf86Resources.h"
+#include "xf86RAC.h"
+#include "xf86cmap.h"
+#include "compiler.h"
+#include "mibstore.h"
+#include "vgaHW.h"
+#include "mipointer.h"
+#include "micmap.h"
+
+#include "fb.h"
+#include "regionstr.h"
+#include "xf86xv.h"
+#include "Xv.h"
+#include "vbe.h"
+
+#include "xf86PciInfo.h"
+#include "xf86Pci.h"
+
+/* framebuffer offscreen manager */
+#include "xf86fbman.h"
+
+/* include xaa includes */
+#include "xaa.h"
+#include "xaarop.h"
+
+/* H/W cursor support */
+#include "xf86Cursor.h"
+
+/* Driver specific headers */
+#include "ast.h"
+
+/* Prototype type declaration*/
+void vASTOpenKey(ScrnInfoPtr pScrn);
+Bool bASTRegInit(ScrnInfoPtr pScrn);
+ULONG GetVRAMInfo(ScrnInfoPtr pScrn);
+void vAST1000DisplayOn(ASTRecPtr pAST);
+void vAST1000DisplayOff(ASTRecPtr pAST);
+void vSetStartAddressCRT1(ASTRecPtr pAST, ULONG base);
+void vASTLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors, VisualPtr pVisual);
+void ASTDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags);
+
+void
+vASTOpenKey(ScrnInfoPtr pScrn)
+{
+ ASTRecPtr pAST = ASTPTR(pScrn);
+
+ SetIndexReg(CRTC_PORT,0x80, 0xA8);
+
+}
+
+Bool
+bASTRegInit(ScrnInfoPtr pScrn)
+{
+ ASTRecPtr pAST = ASTPTR(pScrn);
+
+ /* Enable MMIO */
+ SetIndexRegMask(CRTC_PORT,0xA1, 0xFF, 0x04);
+
+ return (TRUE);
+
+}
+
+ULONG
+GetVRAMInfo(ScrnInfoPtr pScrn)
+{
+ ASTRecPtr pAST = ASTPTR(pScrn);
+ UCHAR jReg;
+
+ vASTOpenKey(pScrn);
+
+ GetIndexRegMask(CRTC_PORT, 0xAA, 0xFF, jReg);
+
+ switch (jReg & 0x03)
+ {
+ case 0x00:
+ return (VIDEOMEM_SIZE_08M);
+ case 0x01:
+ return (VIDEOMEM_SIZE_16M);
+ case 0x02:
+ return (VIDEOMEM_SIZE_32M);
+ case 0x03:
+ return (VIDEOMEM_SIZE_64M);
+ }
+
+ return (DEFAULT_VIDEOMEM_SIZE);
+
+}
+
+
+void
+vSetStartAddressCRT1(ASTRecPtr pAST, ULONG base)
+{
+ SetIndexReg(CRTC_PORT,0x0D, (UCHAR) (base & 0xFF));
+ SetIndexReg(CRTC_PORT,0x0C, (UCHAR) ((base >> 8) & 0xFF));
+ SetIndexReg(CRTC_PORT,0xAF, (UCHAR) ((base >> 16) & 0xFF));
+
+}
+
+void
+vAST1000DisplayOff(ASTRecPtr pAST)
+{
+ SetIndexRegMask(SEQ_PORT,0x01, 0xDF, 0x20);
+
+}
+
+
+void
+vAST1000DisplayOn(ASTRecPtr pAST)
+{
+
+ SetIndexRegMask(SEQ_PORT,0x01, 0xDF, 0x00);
+
+}
+
+
+void
+vASTLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
+ VisualPtr pVisual)
+{
+
+ ASTRecPtr pAST = ASTPTR(pScrn);
+ int i, j, index;
+ UCHAR DACIndex, DACR, DACG, DACB;
+
+ switch (pScrn->bitsPerPixel) {
+ case 15:
+ for(i=0; i<numColors; i++) {
+ index = indices[i];
+ for(j=0; j<8; j++) {
+ DACIndex = (index * 8) + j;
+ DACR = colors[index].red << (8- pScrn->rgbBits);
+ DACG = colors[index].green << (8- pScrn->rgbBits);
+ DACB = colors[index].blue << (8- pScrn->rgbBits);
+
+ VGA_LOAD_PALETTE_INDEX (DACIndex, DACR, DACG, DACB);
+ }
+ }
+ break;
+
+ case 16:
+ for(i=0; i<numColors; i++) {
+ index = indices[i];
+ for(j=0; j<4; j++) {
+ DACIndex = (index * 4) + j;
+ DACR = colors[index/2].red << (8- pScrn->rgbBits);
+ DACG = colors[index].green << (8- pScrn->rgbBits);
+ DACB = colors[index/2].blue << (8- pScrn->rgbBits);
+
+ VGA_LOAD_PALETTE_INDEX (DACIndex, DACR, DACG, DACB);
+ }
+ }
+ break;
+
+ case 24:
+ for(i=0; i<numColors; i++) {
+ index = indices[i];
+ DACIndex = index;
+ DACR = colors[index].red;
+ DACG = colors[index].green;
+ DACB = colors[index].blue;
+
+ VGA_LOAD_PALETTE_INDEX (DACIndex, DACR, DACG, DACB);
+ }
+ break;
+
+ default:
+ for(i=0; i<numColors; i++) {
+ index = indices[i];
+ DACIndex = index;
+ DACR = colors[index].red >> (8 - pScrn->rgbBits);
+ DACG = colors[index].green >> (8 - pScrn->rgbBits);
+ DACB = colors[index].blue >> (8 - pScrn->rgbBits);
+
+ VGA_LOAD_PALETTE_INDEX (DACIndex, DACR, DACG, DACB);
+ }
+
+ } /* end of switch */
+
+} /* end of vASTLoadPalette */
+
+void
+ASTDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int flags)
+{
+ ASTRecPtr pAST;
+ UCHAR SEQ01, CRB6;
+
+ pAST = ASTPTR(pScrn);
+ SEQ01=CRB6=0;
+
+ vASTOpenKey(pScrn);
+
+ switch (PowerManagementMode) {
+ case DPMSModeOn:
+ /* Screen: On; HSync: On, VSync: On */
+ SEQ01 = 0x00;
+ CRB6 = 0x00;
+ break;
+ case DPMSModeStandby:
+ /* Screen: Off; HSync: Off, VSync: On */
+ SEQ01 = 0x20;
+ CRB6 = 0x01;
+ break;
+ case DPMSModeSuspend:
+ /* Screen: Off; HSync: On, VSync: Off */
+ SEQ01 = 0x20;
+ CRB6 = 0x02;
+ break;
+ case DPMSModeOff:
+ /* Screen: Off; HSync: Off, VSync: Off */
+ SEQ01 = 0x20;
+ CRB6 = 0x03;
+ break;
+ }
+
+ SetIndexRegMask(SEQ_PORT,0x01, 0xDF, SEQ01);
+ SetIndexRegMask(CRTC_PORT,0xB6, 0xFC, CRB6);
+
+
+}