1  /* SPDX-License-Identifier: GPL-2.0 */
2  
3  #ifndef TRIDENTFB_DEBUG
4  #define TRIDENTFB_DEBUG 0
5  #endif
6  
7  #if TRIDENTFB_DEBUG
8  #define debug(f, a...)	printk("%s:" f,  __func__ , ## a);
9  #else
10  #define debug(f, a...)
11  #endif
12  
13  #define output(f, a...) pr_info("tridentfb: " f, ## a)
14  
15  #define Kb	(1024)
16  #define Mb	(Kb*Kb)
17  
18  /* PCI IDS of supported cards temporarily here */
19  
20  #define CYBER9320	0x9320
21  #define CYBER9388	0x9388
22  #define CYBER9382	0x9382		/* the real PCI id for this is 9660 */
23  #define CYBER9385	0x9385		/* ditto */
24  #define CYBER9397	0x9397
25  #define CYBER9397DVD	0x939A
26  #define CYBER9520	0x9520
27  #define CYBER9525DVD	0x9525
28  #define TGUI9440	0x9440
29  #define TGUI9660	0x9660
30  #define PROVIDIA9685	0x9685
31  #define IMAGE975	0x9750
32  #define IMAGE985	0x9850
33  #define BLADE3D		0x9880
34  #define CYBERBLADEE4	0x9540
35  #define CYBERBLADEi7	0x8400
36  #define CYBERBLADEi7D	0x8420
37  #define CYBERBLADEi1	0x8500
38  #define CYBERBLADEi1D	0x8520
39  #define CYBERBLADEAi1	0x8600
40  #define CYBERBLADEAi1D	0x8620
41  #define CYBERBLADEXPAi1 0x8820
42  #define CYBERBLADEXPm8  0x9910
43  #define CYBERBLADEXPm16 0x9930
44  
45  /* these defines are for 'lcd' variable */
46  #define LCD_STRETCH	0
47  #define LCD_CENTER	1
48  #define LCD_BIOS	2
49  
50  /* General Registers */
51  #define SPR	0x1F		/* Software Programming Register (videoram) */
52  
53  /* 3C4 */
54  #define RevisionID 0x09
55  #define OldOrNew 0x0B
56  #define ConfPort1 0x0C
57  #define ConfPort2 0x0C
58  #define NewMode2 0x0D
59  #define NewMode1 0x0E
60  #define Protection 0x11
61  #define MCLKLow 0x16
62  #define MCLKHigh 0x17
63  #define ClockLow 0x18
64  #define ClockHigh 0x19
65  #define SSetup 0x20
66  #define SKey 0x37
67  #define SPKey 0x57
68  
69  /* 3x4 */
70  #define CRTCModuleTest 0x1E
71  #define FIFOControl 0x20
72  #define LinearAddReg 0x21
73  #define DRAMTiming 0x23
74  #define New32 0x23
75  #define RAMDACTiming 0x25
76  #define CRTHiOrd 0x27
77  #define AddColReg 0x29
78  #define InterfaceSel 0x2A
79  #define HorizOverflow 0x2B
80  #define GETest 0x2D
81  #define Performance 0x2F
82  #define GraphEngReg 0x36
83  #define I2C 0x37
84  #define PixelBusReg 0x38
85  #define PCIReg 0x39
86  #define DRAMControl 0x3A
87  #define MiscContReg 0x3C
88  #define CursorXLow 0x40
89  #define CursorXHigh 0x41
90  #define CursorYLow 0x42
91  #define CursorYHigh 0x43
92  #define CursorLocLow 0x44
93  #define CursorLocHigh 0x45
94  #define CursorXOffset 0x46
95  #define CursorYOffset 0x47
96  #define CursorFG1 0x48
97  #define CursorFG2 0x49
98  #define CursorFG3 0x4A
99  #define CursorFG4 0x4B
100  #define CursorBG1 0x4C
101  #define CursorBG2 0x4D
102  #define CursorBG3 0x4E
103  #define CursorBG4 0x4F
104  #define CursorControl 0x50
105  #define PCIRetry 0x55
106  #define PreEndControl 0x56
107  #define PreEndFetch 0x57
108  #define PCIMaster 0x60
109  #define Enhancement0 0x62
110  #define NewEDO 0x64
111  #define TVinterface 0xC0
112  #define TVMode 0xC1
113  #define ClockControl 0xCF
114  
115  
116  /* 3CE */
117  #define MiscExtFunc 0x0F
118  #define PowerStatus 0x23
119  #define MiscIntContReg 0x2F
120  #define CyberControl 0x30
121  #define CyberEnhance 0x31
122  #define FPConfig     0x33
123  #define VertStretch  0x52
124  #define HorStretch   0x53
125  #define BiosMode     0x5c
126  #define BiosReg      0x5d
127  
128  /* Graphics Engine */
129  #define STATUS	0x2120
130  #define OLDCMD	0x2124
131  #define DRAWFL	0x2128
132  #define OLDCLR	0x212C
133  #define OLDDST	0x2138
134  #define OLDSRC	0x213C
135  #define OLDDIM	0x2140
136  #define CMD	0x2144
137  #define ROP	0x2148
138  #define COLOR	0x2160
139  #define BGCOLOR	0x2164
140  #define SRC1	0x2100
141  #define SRC2	0x2104
142  #define DST1	0x2108
143  #define DST2	0x210C
144  
145  #define ROP_S	0xCC
146  #define ROP_P	0xF0
147  #define ROP_X	0x66
148