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