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