1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
#ifndef __Riva_STRUCT_H__
#define __Riva_STRUCT_H__
#include "riva_hw.h"
#include "colormapst.h"
#include "vgaHW.h"
#include "xaa.h"
#include "xf86Cursor.h"
#include "xf86int10.h"
#define RIVA_BITMASK(t,b) (((unsigned)(1U << (((t)-(b)+1)))-1) << (b))
#define RIVA_MASKEXPAND(mask) RIVA_BITMASK(1?mask,0?mask)
#define RIVA_SetBF(mask,value) ((value) << (0?mask))
#define RIVA_GetBF(var,mask) (((unsigned)((var) & RIVA_MASKEXPAND(mask))) >> (0?mask) )
#define RIVA_SetBitField(value,from,to) RIVA_SetBF(to, RIVA_GetBF(value,from))
#define RIVA_SetBit(n) (1<<(n))
#define RIVA_Set8Bits(value) ((value)&0xff)
typedef RIVA_HW_STATE* RivaRegPtr;
typedef struct {
Bool isHwCursor;
int CursorMaxWidth;
int CursorMaxHeight;
int CursorFlags;
int CursorOffscreenMemSize;
Bool (*UseHWCursor)(ScreenPtr, CursorPtr);
void (*LoadCursorImage)(ScrnInfoPtr, unsigned char*);
void (*ShowCursor)(ScrnInfoPtr);
void (*HideCursor)(ScrnInfoPtr);
void (*SetCursorPosition)(ScrnInfoPtr, int, int);
void (*SetCursorColors)(ScrnInfoPtr, int, int);
long maxPixelClock;
void (*LoadPalette)(ScrnInfoPtr, int, int*, LOCO*, VisualPtr);
void (*Save)(ScrnInfoPtr, vgaRegPtr, RivaRegPtr, Bool);
void (*Restore)(ScrnInfoPtr, vgaRegPtr, RivaRegPtr, Bool);
Bool (*ModeInit)(ScrnInfoPtr, DisplayModePtr);
} RivaRamdacRec, *RivaRamdacPtr;
typedef struct {
int bitsPerPixel;
int depth;
int displayWidth;
rgb weight;
DisplayModePtr mode;
} RivaFBLayout;
typedef struct {
RIVA_HW_INST riva;
RIVA_HW_STATE SavedReg;
RIVA_HW_STATE ModeReg;
EntityInfoPtr pEnt;
#if XSERVER_LIBPCIACCESS
struct pci_device *PciInfo;
#else
pciVideoPtr PciInfo;
PCITAG PciTag;
xf86AccessRec Access;
#endif
int ChipRev;
Bool Primary;
CARD32 IOAddress;
unsigned long FbAddress;
int FbBaseReg;
unsigned char * IOBase;
unsigned char * FbBase;
unsigned char * FbStart;
long FbMapSize;
long FbUsableSize;
RivaRamdacRec Dac;
Bool NoAccel;
Bool HWCursor;
Bool ShowCache;
Bool ShadowFB;
unsigned char * ShadowPtr;
int ShadowPitch;
int MinClock;
int MaxClock;
XAAInfoRecPtr AccelInfoRec;
xf86CursorInfoPtr CursorInfoRec;
DGAModePtr DGAModes;
int numDGAModes;
Bool DGAactive;
int DGAViewportStatus;
void (*Save)(ScrnInfoPtr, vgaRegPtr, RivaRegPtr, Bool);
void (*Restore)(ScrnInfoPtr, vgaRegPtr, RivaRegPtr, Bool);
Bool (*ModeInit)(ScrnInfoPtr, DisplayModePtr);
void (*PointerMoved)(SCRN_ARG_TYPE arg, int x, int y);
CloseScreenProcPtr CloseScreen;
Bool FBDev;
/* Color expansion */
unsigned char *expandBuffer;
unsigned char *expandFifo;
int expandWidth;
int expandRows;
CARD32 FgColor;
CARD32 BgColor;
int Rotate;
RivaFBLayout CurrentLayout;
/* Cursor */
CARD32 curFg, curBg;
CARD32 curImage[64];
/* Misc flags */
unsigned int opaqueMonochrome;
int currentRop;
/* I2C / DDC */
I2CBusPtr I2C;
xf86Int10InfoPtr pInt;
OptionInfoPtr Options;
unsigned char DDCBase;
} RivaRec, *RivaPtr;
#define RivaPTR(p) ((RivaPtr)((p)->driverPrivate))
void RivaRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
void RivaRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
void RivaRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
void RivaRefreshArea32(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
void RivaPointerMoved(SCRN_ARG_TYPE arg, int x, int y);
int RivaGetConfig(RivaPtr);
#endif /* __Riva_STRUCT_H__ */
|