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