summaryrefslogtreecommitdiff
path: root/src/newport.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/newport.h')
-rw-r--r--src/newport.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/src/newport.h b/src/newport.h
new file mode 100644
index 0000000..ee71736
--- /dev/null
+++ b/src/newport.h
@@ -0,0 +1,128 @@
+/*
+ * Id: newport.h,v 1.4 2000/11/29 20:58:10 agx Exp $
+ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/newport/newport.h,v 1.10 2002/12/10 04:03:00 dawes Exp $ */
+
+#ifndef __NEWPORT_H__
+#define __NEWPORT_H__
+
+/*
+ * All drivers should include these:
+ */
+#include "xf86.h"
+#include "xf86_OSproc.h"
+#include "xf86_ansic.h"
+#include "compiler.h"
+#include "xf86Resources.h"
+
+#include "xf86cmap.h"
+
+/* xaa & hardware cursor */
+#include "xaa.h"
+#include "xf86Cursor.h"
+
+/* register definitions of the Newport card */
+#include "newport_regs.h"
+
+#define NEWPORT_BASE_ADDR0 0x1f0f0000
+#define NEWPORT_BASE_OFFSET 0x00400000
+#define NEWPORT_MAX_BOARDS 4
+
+#if 0
+# define DEBUG 1
+#endif
+
+#ifdef DEBUG
+# define TRACE_ENTER(str) ErrorF("newport: " str " %d\n",pScrn->scrnIndex)
+# define TRACE_EXIT(str) ErrorF("newport: " str " done\n")
+# define TRACE(str) ErrorF("newport trace: " str "\n")
+#else
+# define TRACE_ENTER(str)
+# define TRACE_EXIT(str)
+# define TRACE(str)
+#endif
+
+typedef struct {
+ unsigned busID;
+ int bitplanes;
+ /* revision numbers of the various pieces of silicon */
+ unsigned int board_rev, cmap_rev, rex3_rev, xmap9_rev, bt445_rev;
+ /* shadow copies of frequently used registers */
+ NewportRegsPtr pNewportRegs; /* Pointer to REX3 registers */
+ npireg_t drawmode1; /* REX3 drawmode1 common to all drawing operations */
+ CARD16 vc2ctrl; /* VC2 control register */
+
+ /* ShadowFB stuff: */
+ CARD32* ShadowPtr;
+ unsigned long int ShadowPitch;
+ unsigned int Bpp; /* Bytes per pixel */
+
+ /* HWCursour stuff: */
+ Bool hwCursor;
+ xf86CursorInfoPtr CursorInfoRec;
+ CARD16 curs_cmap_base; /* MSB of the cursor's cmap */
+
+ /* wrapped funtions: */
+ CloseScreenProcPtr CloseScreen;
+
+ /* newport register backups: */
+ npireg_t txt_drawmode0; /* Rex3 drawmode0 register */
+ npireg_t txt_drawmode1; /* Rex3 drawmode1 register */
+ npireg_t txt_wrmask; /* Rex3 write mask register */
+ npireg_t txt_smask1x; /* Rex3 screen mask 1 registers */
+ npireg_t txt_smask1y;
+ npireg_t txt_smask2x; /* Rex3 screen mask 2 registers */
+ npireg_t txt_smask2y;
+ npireg_t txt_clipmode; /* Rex3 clip mode register */
+
+ CARD16 txt_vc2ctrl; /* VC2 control register */
+ CARD16 txt_vc2cur_x; /* VC2 hw cursor x location */
+ CARD16 txt_vc2cur_y; /* VC2 hw cursor x location */
+ CARD32 txt_vc2cur_data[64]; /* VC2 hw cursor glyph data */
+
+ CARD8 txt_xmap9_cfg0; /* 0. Xmap9's control register */
+ CARD8 txt_xmap9_cfg1; /* 1. Xmap9's control register */
+ CARD8 txt_xmap9_ccmsb; /* cursor cmap msb */
+ CARD8 txt_xmap9_mi; /* Xmap9s' mode index register */
+ CARD32 txt_xmap9_mod0; /* Xmap9s' mode 0 register */
+
+ LOCO txt_colormap[256];
+
+ OptionInfoPtr Options;
+} NewportRec, *NewportPtr;
+
+#define NEWPORTPTR(p) ((NewportPtr)((p)->driverPrivate))
+#define NEWPORTREGSPTR(p) ((NEWPORTPTR(p))->pNewportRegs)
+
+/* Newport_regs.c */
+unsigned short NewportVc2Get(NewportRegsPtr, unsigned char vc2Ireg);
+void NewportVc2Set(NewportRegsPtr pNewportRegs, unsigned char vc2Ireg, unsigned short val);
+void NewportWait(NewportRegsPtr pNewportRegs);
+void NewportBfwait(NewportRegsPtr pNewportRegs);
+void NewportXmap9SetModeRegister(NewportRegsPtr pNewportRegs, CARD8 address, CARD32 mode);
+CARD32 NewportXmap9GetModeRegister(NewportRegsPtr pNewportRegs, unsigned chip, CARD8 address);
+void NewportBackupRex3( ScrnInfoPtr pScrn);
+void NewportRestoreRex3( ScrnInfoPtr pScrn);
+void NewportBackupXmap9s( ScrnInfoPtr pScrn);
+void NewportRestoreXmap9s( ScrnInfoPtr pScrn);
+void NewportBackupVc2( ScrnInfoPtr pScrn);
+void NewportRestoreVc2( ScrnInfoPtr pScrn);
+void NewportBackupVc2Cursor( ScrnInfoPtr pScrn);
+void NewportRestoreVc2Cursor( ScrnInfoPtr pScrn);
+
+/* newort_cmap.c */
+void NewportLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
+ LOCO* colors, VisualPtr pVisual);
+void NewportRestorePalette(ScrnInfoPtr pScrn);
+void NewportBackupPalette(ScrnInfoPtr pScrn);
+void NewportCmapSetRGB( NewportRegsPtr pNewportRegs, unsigned short addr, LOCO color);
+
+/* newport_shadow.c */
+void NewportRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void NewportRefreshArea24(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+
+/* newport_cursor.c */
+Bool NewportHWCursorInit(ScreenPtr pScreen);
+void NewportLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *bits);
+
+#endif /* __NEWPORT_H__ */