Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1029 | serge | 1 | /* |
2 | * Copyright 2007 Luc Verhaegen |
||
3 | * Copyright 2007 Matthias Hopf |
||
4 | * Copyright 2007 Egbert Eich |
||
5 | * Copyright 2007 Advanced Micro Devices, Inc. |
||
6 | * |
||
7 | * Permission is hereby granted, free of charge, to any person obtaining a |
||
8 | * copy of this software and associated documentation files (the "Software"), |
||
9 | * to deal in the Software without restriction, including without limitation |
||
10 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, |
||
11 | * and/or sell copies of the Software, and to permit persons to whom the |
||
12 | * Software is furnished to do so, subject to the following conditions: |
||
13 | * |
||
14 | * The above copyright notice and this permission notice shall be included in |
||
15 | * all copies or substantial portions of the Software. |
||
16 | * |
||
17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||
18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||
19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
||
20 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR |
||
21 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, |
||
22 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
||
23 | * OTHER DEALINGS IN THE SOFTWARE. |
||
24 | */ |
||
25 | |||
26 | #ifdef HAVE_CONFIG_H |
||
27 | #include "config.h" |
||
28 | #endif |
||
29 | |||
30 | #include "xf86.h" |
||
31 | #include "rhd.h" |
||
32 | #ifdef ATOM_BIOS |
||
33 | #include "rhd_atombios.h" |
||
34 | #endif |
||
35 | #include "rhd_connector.h" |
||
36 | #include "rhd_output.h" |
||
37 | #include "rhd_card.h" |
||
38 | |||
39 | SymTabRec RHDChipsets[] = { |
||
40 | /* R500 */ |
||
41 | { RHD_RV505, "RV505" }, |
||
42 | { RHD_RV515, "RV515" }, |
||
43 | { RHD_RV516, "RV516" }, |
||
44 | { RHD_R520, "R520" }, |
||
45 | { RHD_RV530, "RV530" }, |
||
46 | { RHD_RV535, "RV535" }, |
||
47 | { RHD_RV550, "RV550" }, |
||
48 | { RHD_RV560, "RV560" }, |
||
49 | { RHD_RV570, "RV570" }, |
||
50 | { RHD_R580, "R580" }, |
||
51 | /* R500 Mobility */ |
||
52 | { RHD_M52, "M52" }, |
||
53 | { RHD_M54, "M54" }, |
||
54 | { RHD_M56, "M56" }, |
||
55 | { RHD_M58, "M58" }, |
||
56 | { RHD_M62, "M62" }, |
||
57 | { RHD_M64, "M64" }, |
||
58 | { RHD_M66, "M66" }, |
||
59 | { RHD_M68, "M68" }, |
||
60 | { RHD_M71, "M71" }, |
||
61 | /* R500 integrated */ |
||
62 | { RHD_RS600, "RS600" }, |
||
63 | { RHD_RS690, "RS690" }, |
||
64 | { RHD_RS740, "RS740" }, |
||
65 | /* R600 */ |
||
66 | { RHD_R600, "R600" }, |
||
67 | { RHD_RV610, "RV610" }, |
||
68 | { RHD_RV630, "RV630" }, |
||
69 | /* R600 Mobility */ |
||
70 | { RHD_M72, "M72" }, |
||
71 | { RHD_M74, "M74" }, |
||
72 | { RHD_M76, "M76" }, |
||
73 | /* RV670 came into existence after RV6x0 and M7x */ |
||
74 | { RHD_RV670, "RV670" }, |
||
75 | { RHD_M88, "M88" }, |
||
76 | { RHD_R680, "R680" }, |
||
77 | { RHD_RV620, "RV620" }, |
||
78 | { RHD_M82, "M82" }, |
||
79 | { RHD_RV635, "RV635" }, |
||
80 | { RHD_M86, "M86" }, |
||
81 | { RHD_RS780, "RS780" }, |
||
82 | { RHD_RV770, "RV770" }, |
||
83 | { RHD_RV730, "RV730" }, |
||
84 | { RHD_RV710, "RV710" }, |
||
85 | { -1, NULL } |
||
86 | }; |
||
87 | |||
88 | # define RHD_DEVICE_MATCH(d, i) { (d),(i) } |
||
89 | # define PCI_ID_LIST PciChipset_t RHDPCIchipsets[] |
||
90 | # define LIST_END { 0, 0} |
||
91 | |||
92 | const PCI_ID_LIST = { |
||
93 | RHD_DEVICE_MATCH( 0x7100, RHD_R520 ), /* Radeon X1800 */ |
||
94 | RHD_DEVICE_MATCH( 0x7101, RHD_M58 ), /* Mobility Radeon X1800 XT */ |
||
95 | RHD_DEVICE_MATCH( 0x7102, RHD_M58 ), /* Mobility Radeon X1800 */ |
||
96 | RHD_DEVICE_MATCH( 0x7103, RHD_M58 ), /* Mobility FireGL V7200 */ |
||
97 | RHD_DEVICE_MATCH( 0x7104, RHD_R520 ), /* FireGL V7200 */ |
||
98 | RHD_DEVICE_MATCH( 0x7105, RHD_R520 ), /* FireGL V5300 */ |
||
99 | RHD_DEVICE_MATCH( 0x7106, RHD_M58 ), /* Mobility FireGL V7100 */ |
||
100 | RHD_DEVICE_MATCH( 0x7108, RHD_R520 ), /* Radeon X1800 */ |
||
101 | RHD_DEVICE_MATCH( 0x7109, RHD_R520 ), /* Radeon X1800 */ |
||
102 | RHD_DEVICE_MATCH( 0x710A, RHD_R520 ), /* Radeon X1800 */ |
||
103 | RHD_DEVICE_MATCH( 0x710B, RHD_R520 ), /* Radeon X1800 */ |
||
104 | RHD_DEVICE_MATCH( 0x710C, RHD_R520 ), /* Radeon X1800 */ |
||
105 | RHD_DEVICE_MATCH( 0x710E, RHD_R520 ), /* FireGL V7300 */ |
||
106 | RHD_DEVICE_MATCH( 0x710F, RHD_R520 ), /* FireGL V7350 */ |
||
107 | RHD_DEVICE_MATCH( 0x7140, RHD_RV515 ), /* Radeon X1600/X1550 */ |
||
108 | RHD_DEVICE_MATCH( 0x7141, RHD_RV505 ), /* RV505 */ |
||
109 | RHD_DEVICE_MATCH( 0x7142, RHD_RV515 ), /* Radeon X1300/X1550 */ |
||
110 | RHD_DEVICE_MATCH( 0x7143, RHD_RV505 ), /* Radeon X1550 */ |
||
111 | RHD_DEVICE_MATCH( 0x7144, RHD_M54 ), /* M54-GL */ |
||
112 | RHD_DEVICE_MATCH( 0x7145, RHD_M54 ), /* Mobility Radeon X1400 */ |
||
113 | RHD_DEVICE_MATCH( 0x7146, RHD_RV515 ), /* Radeon X1300/X1550 */ |
||
114 | RHD_DEVICE_MATCH( 0x7147, RHD_RV505 ), /* Radeon X1550 64-bit */ |
||
115 | RHD_DEVICE_MATCH( 0x7149, RHD_M52 ), /* Mobility Radeon X1300 */ |
||
116 | RHD_DEVICE_MATCH( 0x714A, RHD_M52 ), /* Mobility Radeon X1300 */ |
||
117 | RHD_DEVICE_MATCH( 0x714B, RHD_M52 ), /* Mobility Radeon X1300 */ |
||
118 | RHD_DEVICE_MATCH( 0x714C, RHD_M52 ), /* Mobility Radeon X1300 */ |
||
119 | RHD_DEVICE_MATCH( 0x714D, RHD_RV515 ), /* Radeon X1300 */ |
||
120 | RHD_DEVICE_MATCH( 0x714E, RHD_RV515 ), /* Radeon X1300 */ |
||
121 | RHD_DEVICE_MATCH( 0x714F, RHD_RV505 ), /* RV505 */ |
||
122 | RHD_DEVICE_MATCH( 0x7151, RHD_RV505 ), /* RV505 */ |
||
123 | RHD_DEVICE_MATCH( 0x7152, RHD_RV515 ), /* FireGL V3300 */ |
||
124 | RHD_DEVICE_MATCH( 0x7153, RHD_RV515 ), /* FireGL V3350 */ |
||
125 | RHD_DEVICE_MATCH( 0x715E, RHD_RV515 ), /* Radeon X1300 */ |
||
126 | RHD_DEVICE_MATCH( 0x715F, RHD_RV505 ), /* Radeon X1550 64-bit */ |
||
127 | RHD_DEVICE_MATCH( 0x7180, RHD_RV516 ), /* Radeon X1300/X1550 */ |
||
128 | RHD_DEVICE_MATCH( 0x7181, RHD_RV516 ), /* Radeon X1600 */ |
||
129 | RHD_DEVICE_MATCH( 0x7183, RHD_RV516 ), /* Radeon X1300/X1550 */ |
||
130 | RHD_DEVICE_MATCH( 0x7186, RHD_M64 ), /* Mobility Radeon X1450 */ |
||
131 | RHD_DEVICE_MATCH( 0x7187, RHD_RV516 ), /* Radeon X1300/X1550 */ |
||
132 | RHD_DEVICE_MATCH( 0x7188, RHD_M64 ), /* Mobility Radeon X2300 */ |
||
133 | RHD_DEVICE_MATCH( 0x718A, RHD_M64 ), /* Mobility Radeon X2300 */ |
||
134 | RHD_DEVICE_MATCH( 0x718B, RHD_M62 ), /* Mobility Radeon X1350 */ |
||
135 | RHD_DEVICE_MATCH( 0x718C, RHD_M62 ), /* Mobility Radeon X1350 */ |
||
136 | RHD_DEVICE_MATCH( 0x718D, RHD_M64 ), /* Mobility Radeon X1450 */ |
||
137 | RHD_DEVICE_MATCH( 0x718F, RHD_RV516 ), /* Radeon X1300 */ |
||
138 | RHD_DEVICE_MATCH( 0x7193, RHD_RV516 ), /* Radeon X1550 */ |
||
139 | RHD_DEVICE_MATCH( 0x7196, RHD_M62 ), /* Mobility Radeon X1350 */ |
||
140 | RHD_DEVICE_MATCH( 0x719B, RHD_RV516 ), /* FireMV 2250 */ |
||
141 | RHD_DEVICE_MATCH( 0x719F, RHD_RV516 ), /* Radeon X1550 64-bit */ |
||
142 | RHD_DEVICE_MATCH( 0x71C0, RHD_RV530 ), /* Radeon X1600 */ |
||
143 | RHD_DEVICE_MATCH( 0x71C1, RHD_RV535 ), /* Radeon X1650 */ |
||
144 | RHD_DEVICE_MATCH( 0x71C2, RHD_RV530 ), /* Radeon X1600 */ |
||
145 | RHD_DEVICE_MATCH( 0x71C3, RHD_RV535 ), /* Radeon X1600 */ |
||
146 | RHD_DEVICE_MATCH( 0x71C4, RHD_M56 ), /* Mobility FireGL V5200 */ |
||
147 | RHD_DEVICE_MATCH( 0x71C5, RHD_M56 ), /* Mobility Radeon X1600 */ |
||
148 | RHD_DEVICE_MATCH( 0x71C6, RHD_RV530 ), /* Radeon X1650 */ |
||
149 | RHD_DEVICE_MATCH( 0x71C7, RHD_RV535 ), /* Radeon X1650 */ |
||
150 | RHD_DEVICE_MATCH( 0x71CD, RHD_RV530 ), /* Radeon X1600 */ |
||
151 | RHD_DEVICE_MATCH( 0x71CE, RHD_RV530 ), /* Radeon X1300 XT/X1600 Pro */ |
||
152 | RHD_DEVICE_MATCH( 0x71D2, RHD_RV530 ), /* FireGL V3400 */ |
||
153 | RHD_DEVICE_MATCH( 0x71D4, RHD_M66 ), /* Mobility FireGL V5250 */ |
||
154 | RHD_DEVICE_MATCH( 0x71D5, RHD_M66 ), /* Mobility Radeon X1700 */ |
||
155 | RHD_DEVICE_MATCH( 0x71D6, RHD_M66 ), /* Mobility Radeon X1700 XT */ |
||
156 | RHD_DEVICE_MATCH( 0x71DA, RHD_RV530 ), /* FireGL V5200 */ |
||
157 | RHD_DEVICE_MATCH( 0x71DE, RHD_M66 ), /* Mobility Radeon X1700 */ |
||
158 | RHD_DEVICE_MATCH( 0x7200, RHD_RV550 ), /* Radeon X2300HD */ |
||
159 | RHD_DEVICE_MATCH( 0x7210, RHD_M71 ), /* Mobility Radeon HD 2300 */ |
||
160 | RHD_DEVICE_MATCH( 0x7211, RHD_M71 ), /* Mobility Radeon HD 2300 */ |
||
161 | RHD_DEVICE_MATCH( 0x7240, RHD_R580 ), /* Radeon X1950 */ |
||
162 | RHD_DEVICE_MATCH( 0x7243, RHD_R580 ), /* Radeon X1900 */ |
||
163 | RHD_DEVICE_MATCH( 0x7244, RHD_R580 ), /* Radeon X1950 */ |
||
164 | RHD_DEVICE_MATCH( 0x7245, RHD_R580 ), /* Radeon X1900 */ |
||
165 | RHD_DEVICE_MATCH( 0x7246, RHD_R580 ), /* Radeon X1900 */ |
||
166 | RHD_DEVICE_MATCH( 0x7247, RHD_R580 ), /* Radeon X1900 */ |
||
167 | RHD_DEVICE_MATCH( 0x7248, RHD_R580 ), /* Radeon X1900 */ |
||
168 | RHD_DEVICE_MATCH( 0x7249, RHD_R580 ), /* Radeon X1900 */ |
||
169 | RHD_DEVICE_MATCH( 0x724A, RHD_R580 ), /* Radeon X1900 */ |
||
170 | RHD_DEVICE_MATCH( 0x724B, RHD_R580 ), /* Radeon X1900 */ |
||
171 | RHD_DEVICE_MATCH( 0x724C, RHD_R580 ), /* Radeon X1900 */ |
||
172 | RHD_DEVICE_MATCH( 0x724D, RHD_R580 ), /* Radeon X1900 */ |
||
173 | RHD_DEVICE_MATCH( 0x724E, RHD_R580 ), /* AMD Stream Processor */ |
||
174 | RHD_DEVICE_MATCH( 0x724F, RHD_R580 ), /* Radeon X1900 */ |
||
175 | RHD_DEVICE_MATCH( 0x7280, RHD_RV570 ), /* Radeon X1950 */ |
||
176 | RHD_DEVICE_MATCH( 0x7281, RHD_RV560 ), /* RV560 */ |
||
177 | RHD_DEVICE_MATCH( 0x7283, RHD_RV560 ), /* RV560 */ |
||
178 | RHD_DEVICE_MATCH( 0x7284, RHD_M68 ), /* Mobility Radeon X1900 */ |
||
179 | RHD_DEVICE_MATCH( 0x7287, RHD_RV560 ), /* RV560 */ |
||
180 | RHD_DEVICE_MATCH( 0x7288, RHD_RV570 ), /* Radeon X1950 GT */ |
||
181 | RHD_DEVICE_MATCH( 0x7289, RHD_RV570 ), /* RV570 */ |
||
182 | RHD_DEVICE_MATCH( 0x728B, RHD_RV570 ), /* RV570 */ |
||
183 | RHD_DEVICE_MATCH( 0x728C, RHD_RV570 ), /* ATI FireGL V7400 */ |
||
184 | RHD_DEVICE_MATCH( 0x7290, RHD_RV560 ), /* RV560 */ |
||
185 | RHD_DEVICE_MATCH( 0x7291, RHD_RV560 ), /* Radeon X1650 */ |
||
186 | RHD_DEVICE_MATCH( 0x7293, RHD_RV560 ), /* Radeon X1650 */ |
||
187 | RHD_DEVICE_MATCH( 0x7297, RHD_RV560 ), /* RV560 */ |
||
188 | RHD_DEVICE_MATCH( 0x791E, RHD_RS690 ), /* Radeon X1200 */ |
||
189 | RHD_DEVICE_MATCH( 0x791F, RHD_RS690 ), /* Radeon X1200 */ |
||
190 | RHD_DEVICE_MATCH( 0x793F, RHD_RS600 ), /* Radeon Xpress 1200 */ |
||
191 | RHD_DEVICE_MATCH( 0x7941, RHD_RS600 ), /* Radeon Xpress 1200 */ |
||
192 | RHD_DEVICE_MATCH( 0x7942, RHD_RS600 ), /* Radeon Xpress 1200 (M) */ |
||
193 | RHD_DEVICE_MATCH( 0x796C, RHD_RS740 ), /* RS740 */ |
||
194 | RHD_DEVICE_MATCH( 0x796D, RHD_RS740 ), /* RS740M */ |
||
195 | RHD_DEVICE_MATCH( 0x796E, RHD_RS740 ), /* ATI Radeon 2100 RS740 */ |
||
196 | RHD_DEVICE_MATCH( 0x796F, RHD_RS740 ), /* RS740M */ |
||
197 | RHD_DEVICE_MATCH( 0x9400, RHD_R600 ), /* Radeon HD 2900 XT */ |
||
198 | RHD_DEVICE_MATCH( 0x9401, RHD_R600 ), /* Radeon HD 2900 XT */ |
||
199 | RHD_DEVICE_MATCH( 0x9402, RHD_R600 ), /* Radeon HD 2900 XT */ |
||
200 | RHD_DEVICE_MATCH( 0x9403, RHD_R600 ), /* Radeon HD 2900 Pro */ |
||
201 | RHD_DEVICE_MATCH( 0x9405, RHD_R600 ), /* Radeon HD 2900 GT */ |
||
202 | RHD_DEVICE_MATCH( 0x940A, RHD_R600 ), /* FireGL V8650 */ |
||
203 | RHD_DEVICE_MATCH( 0x940B, RHD_R600 ), /* FireGL V8600 */ |
||
204 | RHD_DEVICE_MATCH( 0x940F, RHD_R600 ), /* FireGL V7600 */ |
||
205 | RHD_DEVICE_MATCH( 0x9440, RHD_RV770 ), /* ATI Radeon 4800 Series */ |
||
206 | RHD_DEVICE_MATCH( 0x9441, RHD_RV770 ), /* ATI Radeon 4870 X2 */ |
||
207 | RHD_DEVICE_MATCH( 0x9442, RHD_RV770 ), /* ATI Radeon 4800 Series */ |
||
208 | // RHD_DEVICE_MATCH( 0x9443, RHD_R700 ), /* ATI Radeon 4800 Series */ |
||
209 | RHD_DEVICE_MATCH( 0x9444, RHD_RV770 ), /* Everest ATI FirePro Graphics Accelerator */ |
||
210 | RHD_DEVICE_MATCH( 0x9446, RHD_RV770 ), /* K2 ATI FirePro Graphics Accelerator */ |
||
211 | // RHD_DEVICE_MATCH( 0x9447, RHD_R700 ), /* K2 ATI FirePro Graphics Accelerator */ |
||
212 | RHD_DEVICE_MATCH( 0x944A, RHD_M98 ), /* M98 */ |
||
213 | RHD_DEVICE_MATCH( 0x944B, RHD_M98 ), /* M98 */ |
||
214 | RHD_DEVICE_MATCH( 0x944C, RHD_RV770 ), /* RV770 */ |
||
215 | RHD_DEVICE_MATCH( 0x944E, RHD_RV770 ), /* RV770 */ |
||
216 | // RHD_DEVICE_MATCH( 0x944F, RHD_R700 ), /* R700 */ |
||
217 | RHD_DEVICE_MATCH( 0x9456, RHD_RV770 ), /* Denali ATI FirePro Graphics Accelerator */ |
||
218 | RHD_DEVICE_MATCH( 0x945A, RHD_M98 ), /* M98 */ |
||
219 | RHD_DEVICE_MATCH( 0x945B, RHD_M98 ), /* M98 */ |
||
220 | RHD_DEVICE_MATCH( 0x946A, RHD_M98 ), /* M98 */ |
||
221 | RHD_DEVICE_MATCH( 0x946B, RHD_M98 ), /* M98 */ |
||
222 | RHD_DEVICE_MATCH( 0x947A, RHD_M98 ), /* M98 */ |
||
223 | RHD_DEVICE_MATCH( 0x947B, RHD_M98 ), /* M96 */ |
||
224 | RHD_DEVICE_MATCH( 0x9480, RHD_M96 ), /* M98 */ |
||
225 | RHD_DEVICE_MATCH( 0x9487, RHD_RV730 ), /* RV730 */ |
||
226 | RHD_DEVICE_MATCH( 0x9488, RHD_M96 ), /* M96 */ |
||
227 | RHD_DEVICE_MATCH( 0x9489, RHD_M96 ), /* M96M GL */ |
||
228 | RHD_DEVICE_MATCH( 0x948F, RHD_RV730 ), /* RV730 */ |
||
229 | RHD_DEVICE_MATCH( 0x9487, RHD_RV730 ), /* RV730 */ |
||
230 | RHD_DEVICE_MATCH( 0x9490, RHD_RV730 ), /* RV730 */ |
||
231 | RHD_DEVICE_MATCH( 0x9498, RHD_RV730 ), /* RV730 */ |
||
232 | RHD_DEVICE_MATCH( 0x949E, RHD_RV730 ), /* RV730 */ |
||
233 | RHD_DEVICE_MATCH( 0x949F, RHD_RV730 ), /* RV730 */ |
||
234 | RHD_DEVICE_MATCH( 0x94C0, RHD_RV610 ), /* RV610 */ |
||
235 | RHD_DEVICE_MATCH( 0x94C1, RHD_RV610 ), /* Radeon HD 2400 XT */ |
||
236 | RHD_DEVICE_MATCH( 0x94C3, RHD_RV610 ), /* Radeon HD 2400 Pro */ |
||
237 | RHD_DEVICE_MATCH( 0x94C4, RHD_RV610 ), /* ATI Radeon HD 2400 PRO AGP */ |
||
238 | RHD_DEVICE_MATCH( 0x94C5, RHD_RV610 ), /* FireGL V4000 */ |
||
239 | RHD_DEVICE_MATCH( 0x94C6, RHD_RV610 ), /* RV610 */ |
||
240 | RHD_DEVICE_MATCH( 0x94C7, RHD_RV610 ), /* ATI Radeon HD 2350 */ |
||
241 | RHD_DEVICE_MATCH( 0x94C8, RHD_M74 ), /* Mobility Radeon HD 2400 XT */ |
||
242 | RHD_DEVICE_MATCH( 0x94C9, RHD_M72 ), /* Mobility Radeon HD 2400 */ |
||
243 | RHD_DEVICE_MATCH( 0x94CB, RHD_M72 ), /* ATI RADEON E2400 */ |
||
244 | RHD_DEVICE_MATCH( 0x94CC, RHD_RV610 ), /* ATI Radeon HD 2400 */ |
||
245 | RHD_DEVICE_MATCH( 0x9500, RHD_RV670 ), /* RV670 */ |
||
246 | RHD_DEVICE_MATCH( 0x9501, RHD_RV670 ), /* ATI Radeon HD3870 */ |
||
247 | RHD_DEVICE_MATCH( 0x9504, RHD_M88 ), /* ATI Mobility Radeon HD 3850 */ |
||
248 | RHD_DEVICE_MATCH( 0x9505, RHD_RV670 ), /* ATI Radeon HD3850 */ |
||
249 | RHD_DEVICE_MATCH( 0x9506, RHD_M88 ), /* ATI Mobility Radeon HD 3850 X2 */ |
||
250 | RHD_DEVICE_MATCH( 0x9507, RHD_RV670 ), /* RV670 */ |
||
251 | RHD_DEVICE_MATCH( 0x9508, RHD_M88 ), /* ATI Mobility Radeon HD 3870 */ |
||
252 | RHD_DEVICE_MATCH( 0x9509, RHD_M88 ), /* ATI Mobility Radeon HD 3870 X2 */ |
||
253 | RHD_DEVICE_MATCH( 0x950F, RHD_R680 ), /* ATI Radeon HD3870 X2 */ |
||
254 | RHD_DEVICE_MATCH( 0x9511, RHD_RV670 ), /* ATI FireGL V7700 */ |
||
255 | RHD_DEVICE_MATCH( 0x9515, RHD_RV670 ), /* ATI Radeon HD 3850 AGP */ |
||
256 | RHD_DEVICE_MATCH( 0x9517, RHD_RV670 ), /* ATI Radeon HD 3960 */ |
||
257 | RHD_DEVICE_MATCH( 0x9519, RHD_RV670 ), /* FireStream 9170 */ |
||
258 | RHD_DEVICE_MATCH( 0x9540, RHD_RV710 ), /* */ |
||
259 | RHD_DEVICE_MATCH( 0x9541, RHD_RV710 ), /* */ |
||
260 | RHD_DEVICE_MATCH( 0x9542, RHD_RV710 ), /* */ |
||
261 | RHD_DEVICE_MATCH( 0x954E, RHD_RV710 ), /* */ |
||
262 | RHD_DEVICE_MATCH( 0x954f, RHD_RV710 ), /* */ |
||
263 | RHD_DEVICE_MATCH( 0x9580, RHD_RV630 ), /* RV630 */ |
||
264 | RHD_DEVICE_MATCH( 0x9581, RHD_M76 ), /* Mobility Radeon HD 2600 */ |
||
265 | RHD_DEVICE_MATCH( 0x9583, RHD_M76 ), /* Mobility Radeon HD 2600 XT */ |
||
266 | RHD_DEVICE_MATCH( 0x9586, RHD_RV630 ), /* ATI Radeon HD 2600 XT AGP */ |
||
267 | RHD_DEVICE_MATCH( 0x9587, RHD_RV630 ), /* ATI Radeon HD 2600 Pro AGP */ |
||
268 | RHD_DEVICE_MATCH( 0x9588, RHD_RV630 ), /* Radeon HD 2600 XT */ |
||
269 | RHD_DEVICE_MATCH( 0x9589, RHD_RV630 ), /* Radeon HD 2600 Pro */ |
||
270 | RHD_DEVICE_MATCH( 0x958A, RHD_RV630 ), /* Gemini RV630 */ |
||
271 | RHD_DEVICE_MATCH( 0x958B, RHD_M76 ), /* Gemini ATI Mobility Radeon HD 2600 XT */ |
||
272 | RHD_DEVICE_MATCH( 0x958C, RHD_RV630 ), /* FireGL V5600 */ |
||
273 | RHD_DEVICE_MATCH( 0x958D, RHD_RV630 ), /* FireGL V3600 */ |
||
274 | RHD_DEVICE_MATCH( 0x958E, RHD_RV630 ), /* ATI Radeon HD 2600 LE */ |
||
275 | RHD_DEVICE_MATCH( 0x958F, RHD_M76 ), /* ATI Mobility FireGL Graphics Processor */ |
||
276 | RHD_DEVICE_MATCH( 0x9590, RHD_RV635 ), /* ATI Radeon HD 3600 Series */ |
||
277 | RHD_DEVICE_MATCH( 0x9591, RHD_M86 ), /* Mobility Radeon HD 3650 */ |
||
278 | RHD_DEVICE_MATCH( 0x9593, RHD_M86 ), /* Mobility Radeon HD 3670 */ |
||
279 | RHD_DEVICE_MATCH( 0x9595, RHD_M86 ), /* Mobility FireGL V5700 */ |
||
280 | RHD_DEVICE_MATCH( 0x9596, RHD_RV635 ), /* ATI Radeon HD 3650 AGP */ |
||
281 | RHD_DEVICE_MATCH( 0x9597, RHD_RV635 ), /* ATI Radeon HD 3600 Series */ |
||
282 | RHD_DEVICE_MATCH( 0x9598, RHD_RV635 ), /* ATI Radeon HD 3670 */ |
||
283 | RHD_DEVICE_MATCH( 0x9599, RHD_RV635 ), /* ATI Radeon HD 3600 Series */ |
||
284 | RHD_DEVICE_MATCH( 0x959B, RHD_M86 ), /* Mobility FireGL Graphics Processor */ |
||
285 | RHD_DEVICE_MATCH( 0x95C0, RHD_RV620 ), /* ATI Radeon HD 3470 */ |
||
286 | RHD_DEVICE_MATCH( 0x95C2, RHD_M82 ), /* ATI Mobility Radeon HD 3430 (M82) */ |
||
287 | RHD_DEVICE_MATCH( 0x95C4, RHD_M82 ), /* Mobility Radeon HD 3400 Series (M82) */ |
||
288 | RHD_DEVICE_MATCH( 0x95C5, RHD_RV620 ), /* ATI Radeon HD 3450 */ |
||
289 | RHD_DEVICE_MATCH( 0x95C6, RHD_RV620 ), /* ATI Radeon HD 3450 */ |
||
290 | RHD_DEVICE_MATCH( 0x95C7, RHD_RV620 ), /* ATI Radeon HD 3430 */ |
||
291 | RHD_DEVICE_MATCH( 0x95CC, RHD_RV620 ), /* Fire PRO Professional Graphics ASIC */ |
||
292 | RHD_DEVICE_MATCH( 0x95CD, RHD_RV620 ), /* ATI FireMV 2450 */ |
||
293 | RHD_DEVICE_MATCH( 0x95CE, RHD_RV620 ), /* ATI FireMV 2260 */ |
||
294 | RHD_DEVICE_MATCH( 0x95CF, RHD_RV620 ), /* ATI FireMV 2260 */ |
||
295 | RHD_DEVICE_MATCH( 0x9610, RHD_RS780 ), /* ATI Radeon HD 3200 Graphics */ |
||
296 | RHD_DEVICE_MATCH( 0x9611, RHD_RS780 ), /* ATI Radeon 3100 Graphics */ |
||
297 | RHD_DEVICE_MATCH( 0x9612, RHD_RS780 ), /* ATI Radeon HD 3200 Graphics */ |
||
298 | RHD_DEVICE_MATCH( 0x9613, RHD_RS780 ), /* ATI Radeon 3100 Graphics */ |
||
299 | RHD_DEVICE_MATCH( 0x9614, RHD_RS780 ), /* ATI Radeon HD 3300 Graphics */ |
||
300 | LIST_END |
||
301 | }; |
||
302 | |||
303 | static enum RHD_CHIPSETS rhdIGPChipsetList[] = { |
||
304 | RHD_RS690, |
||
305 | RHD_RS690, |
||
306 | RHD_RS690, |
||
307 | RHD_RS780, |
||
308 | RHD_UNKNOWN /* end marker */ |
||
309 | }; |
||
310 | |||
311 | /* |
||
312 | * |
||
313 | */ |
||
314 | void |
||
315 | RHDIdentify(int flags) |
||
316 | { |
||
317 | |||
318 | } |
||
319 | |||
320 | /* |
||
321 | * |
||
322 | */ |
||
323 | Bool |
||
324 | RHDIsIGP(enum RHD_CHIPSETS chipset) |
||
325 | { |
||
326 | int i = 0; |
||
327 | while (rhdIGPChipsetList[i] != RHD_UNKNOWN) { |
||
328 | if (chipset == (rhdIGPChipsetList[i])) |
||
329 | return TRUE; |
||
330 | i++; |
||
331 | } |
||
332 | return FALSE; |
||
333 | } |
||
334 | |||
335 | /* |
||
336 | * Some macros to help us make connector tables less messy. |
||
337 | * There are, after all, a limited number of possibilities at the moment. |
||
338 | */ |
||
339 | #define ID_CONNECTORINFO_EMPTY \ |
||
340 | { {RHD_CONNECTOR_NONE, "NULL", RHD_DDC_NONE, RHD_HPD_NONE, \ |
||
341 | { RHD_OUTPUT_NONE, RHD_OUTPUT_NONE}}} |
||
342 | |||
343 | #ifdef ATOM_BIOS |
||
344 | # define DEVINFO_EMPTY { { atomNone, atomNone } } |
||
345 | #endif |
||
346 | |||
347 | /* Radeon RV610 0x94C3 0x0000 0x0000 */ |
||
348 | #define VGA_B1_TV_B_DVI_AA00 \ |
||
349 | {{ RHD_CONNECTOR_DVI_SINGLE, "VGA CRT2", RHD_DDC_1, RHD_HPD_NONE, \ |
||
350 | { RHD_OUTPUT_NONE, RHD_OUTPUT_DACB }}, \ |
||
351 | {RHD_CONNECTOR_TV, "7PIN_DIN TV1 CV", RHD_DDC_0, RHD_HPD_NONE, \ |
||
352 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE }}, \ |
||
353 | {RHD_CONNECTOR_DVI_SINGLE, "SINGLE_LINK_DVI CRT1 DFP2", RHD_DDC_0, RHD_HPD_0, \ |
||
354 | {RHD_OUTPUT_LVTMA, RHD_OUTPUT_DACA }}} |
||
355 | |||
356 | |||
357 | /* Radeon X1300 0x7187:0x1545:0x1930 */ |
||
358 | #define VGA_A0_TV_B_DVI_B11 \ |
||
359 | { { RHD_CONNECTOR_VGA, "VGA CRT1", RHD_DDC_0, RHD_HPD_NONE, \ |
||
360 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE }}, \ |
||
361 | { RHD_CONNECTOR_TV, "SVIDEO TV1", RHD_DDC_NONE, RHD_HPD_NONE, \ |
||
362 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE }}, \ |
||
363 | { RHD_CONNECTOR_DVI, "DVI-D DFP3", RHD_DDC_1, RHD_HPD_1, \ |
||
364 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE }}} |
||
365 | |||
366 | /* Sapphire X1550 reports 2x DVI-I but has only 1 VGA and 1 DVI */ |
||
367 | #define VGA_A0_DVI_BB11 \ |
||
368 | { {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
369 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE}}, \ |
||
370 | {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_1, RHD_HPD_1, \ |
||
371 | { RHD_OUTPUT_DACB, RHD_OUTPUT_LVTMA}}} |
||
372 | |||
373 | /* 0x7249:0x1043:0x0168 */ |
||
374 | #define DVI_AB10_DVI_A01 \ |
||
375 | { { RHD_CONNECTOR_DVI, "DVI-I DFP1 CRT2", RHD_DDC_1, RHD_HPD_0, \ |
||
376 | { RHD_OUTPUT_TMDSA, RHD_OUTPUT_DACB }}, \ |
||
377 | { RHD_CONNECTOR_DVI, "DVI-I DFP2", RHD_DDC_0, RHD_HPD_1, \ |
||
378 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE }}, \ |
||
379 | { RHD_CONNECTOR_TV, "SVIDEO TV1", RHD_DDC_NONE, RHD_HPD_NONE, \ |
||
380 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE }}} |
||
381 | |||
382 | #define VISIONTEK_C1550 \ |
||
383 | { {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
384 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE } }, \ |
||
385 | {RHD_CONNECTOR_TV, "SVIDEO", RHD_DDC_NONE, RHD_HPD_NONE, \ |
||
386 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE } }, \ |
||
387 | {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_1, RHD_HPD_0, \ |
||
388 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_DACB } } } |
||
389 | |||
390 | /* MacBook Pro provides a weird atombios connector table. */ |
||
391 | #define ID_CONNECTORINFO_MACBOOKPRO \ |
||
392 | { {RHD_CONNECTOR_PANEL, "Panel", RHD_DDC_2, RHD_HPD_NONE, \ |
||
393 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE}}, \ |
||
394 | {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_0, RHD_HPD_0, \ |
||
395 | { RHD_OUTPUT_DACB, RHD_OUTPUT_TMDSA}}} |
||
396 | |||
397 | #ifdef ATOM_BIOS |
||
398 | # define DEVINFO_MACBOOKPRO \ |
||
399 | { { atomLCD1, atomNone }, { atomCRT2, atomDFP1 } } |
||
400 | #endif |
||
401 | |||
402 | /* GeCube HD 2400PRO AGP (GC-RX24PGA2-D3) specifies 2 DVI again.*/ |
||
403 | #define BROKEN_VGA_B1_DVI_AB00 \ |
||
404 | { {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_0, RHD_HPD_0, \ |
||
405 | { RHD_OUTPUT_DACA, RHD_OUTPUT_LVTMA}}, \ |
||
406 | {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_1, RHD_HPD_NONE, \ |
||
407 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE}}} |
||
408 | |||
409 | /* Fujitsu Siemens Amilo PI1536 has no HPD on its DVI connector. */ |
||
410 | #define PANEL_B_DVI_AA1 \ |
||
411 | { {RHD_CONNECTOR_PANEL, "Panel", RHD_DDC_NONE, RHD_HPD_NONE, \ |
||
412 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE}}, \ |
||
413 | {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_0, RHD_HPD_NONE, \ |
||
414 | { RHD_OUTPUT_DACA, RHD_OUTPUT_TMDSA}}} |
||
415 | |||
416 | /* Sapphire Radeon HD 2600 PRO AGP reports VGA output as DVI */ |
||
417 | #define DVI_BA10_TV_B0_VGA_A0 \ |
||
418 | { { RHD_CONNECTOR_DVI, "DUAL_LINK_DVI_I", RHD_DDC_1, RHD_HPD_0, \ |
||
419 | { RHD_OUTPUT_TMDSA, RHD_OUTPUT_DACB }}, \ |
||
420 | { RHD_CONNECTOR_TV, "7PIN_DIN TV1 CV", RHD_DDC_0, RHD_HPD_NONE, \ |
||
421 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE }}, \ |
||
422 | { RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
423 | { RHD_OUTPUT_NONE, RHD_OUTPUT_DACA }}} |
||
424 | |||
425 | /* MSI RX2600PRO-T2D512Z/D2 */ |
||
426 | #define DVI_BA12_TV_B0_DVI_AB01 \ |
||
427 | { { RHD_CONNECTOR_DVI, "DUAL_LINK_DVI_I DFP1 CRT2", RHD_DDC_1, RHD_HPD_2, \ |
||
428 | { RHD_OUTPUT_TMDSA, RHD_OUTPUT_DACB }}, \ |
||
429 | { RHD_CONNECTOR_TV, "7PIN_DIN TV1 CV", RHD_DDC_NONE, RHD_HPD_NONE, \ |
||
430 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE }}, \ |
||
431 | { RHD_CONNECTOR_DVI, "DUAL_LINK_DVI_I CRT1 DFP2", RHD_DDC_0, RHD_HPD_1, \ |
||
432 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_DACA }}} |
||
433 | |||
434 | #if defined(USE_ID_CONNECTORS) || !defined(ATOM_BIOS) |
||
435 | |||
436 | #define VGA_A0_TVB_DVI_BB12 \ |
||
437 | { { RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
438 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE }}, \ |
||
439 | { RHD_CONNECTOR_TV, "SVIDEO", RHD_DDC_NONE, RHD_HPD_NONE, \ |
||
440 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE }}, \ |
||
441 | { RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_1, RHD_HPD_2, \ |
||
442 | { RHD_OUTPUT_DACB, RHD_OUTPUT_LVTMA }}} |
||
443 | |||
444 | #define VGA_A0_DVI_BA10 \ |
||
445 | { {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
446 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE}}, \ |
||
447 | {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_1, RHD_HPD_0, \ |
||
448 | { RHD_OUTPUT_DACB, RHD_OUTPUT_TMDSA}}} |
||
449 | |||
450 | #define VGA_A0_DVI_BB10 \ |
||
451 | { {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
452 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE}}, \ |
||
453 | {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_1, RHD_HPD_0, \ |
||
454 | { RHD_OUTPUT_DACB, RHD_OUTPUT_LVTMA}}} |
||
455 | |||
456 | #define VGA_B1_DVI_AA00 \ |
||
457 | { {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_1, RHD_HPD_NONE, \ |
||
458 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE}}, \ |
||
459 | {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_0, RHD_HPD_0, \ |
||
460 | { RHD_OUTPUT_DACA, RHD_OUTPUT_TMDSA}}} |
||
461 | |||
462 | #define VGA_B1_DVI_AB01 \ |
||
463 | { {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_1, RHD_HPD_NONE, \ |
||
464 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE}}, \ |
||
465 | {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_0, RHD_HPD_1, \ |
||
466 | { RHD_OUTPUT_DACA, RHD_OUTPUT_LVTMA}}} |
||
467 | |||
468 | #define VGA_B1_DVI_AB00 \ |
||
469 | { {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_1, RHD_HPD_NONE, \ |
||
470 | { RHD_OUTPUT_DACB, RHD_OUTPUT_NONE}}, \ |
||
471 | {RHD_CONNECTOR_DVI, "DVI-I", RHD_DDC_0, RHD_HPD_0, \ |
||
472 | { RHD_OUTPUT_DACA, RHD_OUTPUT_LVTMA}}} |
||
473 | |||
474 | #define DVI_AA00_DVI_BB11 \ |
||
475 | { {RHD_CONNECTOR_DVI, "DVI-I 1", RHD_DDC_0, RHD_HPD_0, \ |
||
476 | { RHD_OUTPUT_DACA, RHD_OUTPUT_TMDSA}}, \ |
||
477 | {RHD_CONNECTOR_DVI, "DVI-I 2", RHD_DDC_1, RHD_HPD_1, \ |
||
478 | { RHD_OUTPUT_DACB, RHD_OUTPUT_LVTMA}}} |
||
479 | |||
480 | #define DVI_BA10_DVI_AB01 \ |
||
481 | { {RHD_CONNECTOR_DVI, "DVI-I 1", RHD_DDC_1, RHD_HPD_0, \ |
||
482 | { RHD_OUTPUT_DACB, RHD_OUTPUT_TMDSA}}, \ |
||
483 | {RHD_CONNECTOR_DVI, "DVI-I 2", RHD_DDC_0, RHD_HPD_1, \ |
||
484 | { RHD_OUTPUT_DACA, RHD_OUTPUT_LVTMA}}} |
||
485 | |||
486 | #define DVI_BB11_DVI_AA00 \ |
||
487 | { {RHD_CONNECTOR_DVI, "DVI-I 1", RHD_DDC_1, RHD_HPD_1, \ |
||
488 | { RHD_OUTPUT_DACB, RHD_OUTPUT_LVTMA}}, \ |
||
489 | {RHD_CONNECTOR_DVI, "DVI-I 2", RHD_DDC_0, RHD_HPD_0, \ |
||
490 | { RHD_OUTPUT_DACA, RHD_OUTPUT_TMDSA}}} |
||
491 | |||
492 | #define PANEL_B_VGA_A0 \ |
||
493 | { {RHD_CONNECTOR_PANEL, "Panel", RHD_DDC_NONE, RHD_HPD_NONE, \ |
||
494 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE}}, \ |
||
495 | {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
496 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE}}} |
||
497 | |||
498 | #define PANEL_B1_VGA_A0 \ |
||
499 | { {RHD_CONNECTOR_PANEL, "Panel", RHD_DDC_1, RHD_HPD_NONE, \ |
||
500 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE}}, \ |
||
501 | {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
502 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE}}} |
||
503 | |||
504 | #define PANEL_B1_VGA_A2 \ |
||
505 | { {RHD_CONNECTOR_PANEL, "Panel", RHD_DDC_1, RHD_HPD_NONE, \ |
||
506 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE}}, \ |
||
507 | {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_2, RHD_HPD_NONE, \ |
||
508 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE}}} |
||
509 | |||
510 | #define PANEL_B2_VGA_A0 \ |
||
511 | { {RHD_CONNECTOR_PANEL, "Panel", RHD_DDC_2, RHD_HPD_NONE, \ |
||
512 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE}}, \ |
||
513 | {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
514 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE}}} |
||
515 | |||
516 | #define PANEL_B2_VGA_A0_DVI_A10 \ |
||
517 | { {RHD_CONNECTOR_PANEL, "Panel", RHD_DDC_2, RHD_HPD_NONE, \ |
||
518 | { RHD_OUTPUT_LVTMA, RHD_OUTPUT_NONE}}, \ |
||
519 | {RHD_CONNECTOR_VGA, "VGA", RHD_DDC_0, RHD_HPD_NONE, \ |
||
520 | { RHD_OUTPUT_DACA, RHD_OUTPUT_NONE}}, \ |
||
521 | {RHD_CONNECTOR_DVI, "DVI-D", RHD_DDC_1, RHD_HPD_0, \ |
||
522 | { RHD_OUTPUT_TMDSA, RHD_OUTPUT_NONE}}} |
||
523 | |||
524 | #else /* if !defined(USE_ID_CONNECTORS) && defined(ATOM_BIOS) */ |
||
525 | |||
526 | #define VGA_A0_TVB_DVI_BB12 ID_CONNECTORINFO_EMPTY |
||
527 | #define VGA_A0_DVI_BA10 ID_CONNECTORINFO_EMPTY |
||
528 | #define VGA_A0_DVI_BB10 ID_CONNECTORINFO_EMPTY |
||
529 | #define VGA_B1_DVI_AA00 ID_CONNECTORINFO_EMPTY |
||
530 | #define VGA_B1_DVI_AB01 ID_CONNECTORINFO_EMPTY |
||
531 | #define VGA_B1_DVI_AB00 ID_CONNECTORINFO_EMPTY |
||
532 | #define DVI_AA00_DVI_BB11 ID_CONNECTORINFO_EMPTY |
||
533 | #define DVI_BA10_DVI_AB01 ID_CONNECTORINFO_EMPTY |
||
534 | #define DVI_BB11_DVI_AA00 ID_CONNECTORINFO_EMPTY |
||
535 | #define PANEL_B_VGA_A0 ID_CONNECTORINFO_EMPTY |
||
536 | #define PANEL_B1_VGA_A0 ID_CONNECTORINFO_EMPTY |
||
537 | #define PANEL_B1_VGA_A2 ID_CONNECTORINFO_EMPTY |
||
538 | #define PANEL_B2_VGA_A0 ID_CONNECTORINFO_EMPTY |
||
539 | #define PANEL_B2_VGA_A0_DVI_A10 ID_CONNECTORINFO_EMPTY |
||
540 | |||
541 | #endif /* if defined(USE_ID_CONNECTORS) || !defined(ATOM_BIOS) */ |
||
542 | |||
543 | /* |
||
544 | * List of pci subsystem / card ids. |
||
545 | * |
||
546 | * Used for: |
||
547 | * - printing card name. |
||
548 | * - connector mapping. |
||
549 | * |
||
550 | */ |
||
551 | static struct rhdCard |
||
552 | rhdCards[] = |
||
553 | { |
||
554 | /* 0x7100 : R520 : Radeon X1800 */ |
||
555 | { 0x7100, 0x1002, 0x0B12, "Powercolor X1800XT", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
556 | /* 0x7101 : M58 : Mobility Radeon X1800 XT */ |
||
557 | /* 0x7102 : M58 : Mobility Radeon X1800 */ |
||
558 | /* 0x7103 : M58 : Mobility FireGL V7200 */ |
||
559 | /* 0x7104 : R520 : FireGL V7200 */ |
||
560 | { 0x7104, 0x1002, 0x0B32, "ATI FireGL V7200 RH", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
561 | /* 0x7105 : R520 : FireGL V5300 */ |
||
562 | /* 0x7106 : M58 : Mobility FireGL V7100 */ |
||
563 | /* 0x7108 : R520 : Radeon X1800 */ |
||
564 | /* 0x7109 : R520 : Radeon X1800 */ |
||
565 | /* 0x710A : R520 : Radeon X1800 */ |
||
566 | /* 0x710B : R520 : Radeon X1800 */ |
||
567 | /* 0x710C : R520 : Radeon X1800 */ |
||
568 | /* 0x710E : R520 : FireGL V7300 */ |
||
569 | /* 0x710F : R520 : FireGL V7350 */ |
||
570 | /* 0x7140 : RV515 : Radeon X1600 */ |
||
571 | { 0x7140, 0x1787, 0x3000, "PowerColor X1550", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
572 | /* 0x7141 : RV505 : RV505 */ |
||
573 | /* 0x7142 : RV515 : Radeon X1300/X1550 */ |
||
574 | /* 0x7143 : RV505 : Radeon X1550 */ |
||
575 | /* 0x7144 : M54 : M54-GL */ |
||
576 | /* 0x7145 : M54 : Mobility Radeon X1400 */ |
||
577 | { 0x7145, 0x1028, 0x2002, "Dell Inspiron 9400", RHD_CARD_FLAG_NONE, PANEL_B2_VGA_A0_DVI_A10, DEVINFO_EMPTY }, |
||
578 | { 0x7145, 0x1028, 0x2003, "Dell Inspiron 6400", RHD_CARD_FLAG_NONE, PANEL_B_VGA_A0, DEVINFO_EMPTY }, |
||
579 | { 0x7145, 0x1179, 0xFF10, "Toshiba Satellite A100-773", RHD_CARD_FLAG_NONE, PANEL_B1_VGA_A2, DEVINFO_EMPTY }, |
||
580 | { 0x7145, 0x1297, 0x3058, "M54P X1440", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
581 | { 0x7145, 0x1734, 0x10B0, "Fujitsu Siemens Amilo PI1536", RHD_CARD_FLAG_NONE, PANEL_B_DVI_AA1, DEVINFO_EMPTY }, |
||
582 | { 0x7145, 0x17AA, 0x2006, "Lenovo Thinkpad T60 (2007)", RHD_CARD_FLAG_NONE, PANEL_B2_VGA_A0_DVI_A10, DEVINFO_EMPTY }, |
||
583 | { 0x7145, 0x17AA, 0x202A, "Lenovo Thinkpad Z61m", RHD_CARD_FLAG_NONE, PANEL_B2_VGA_A0, DEVINFO_EMPTY }, |
||
584 | /* 0x7146 : RV515 : Radeon X1300/X1550 */ |
||
585 | { 0x7146, 0x174B, 0x0470, "Sapphire X1300", RHD_CARD_FLAG_NONE, VGA_B1_DVI_AB01, DEVINFO_EMPTY }, |
||
586 | { 0x7146, 0x174B, 0x0920, "Sapphire X1300", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
587 | { 0x7146, 0x1545, 0x2350, "Visiontek C1550", RHD_CARD_FLAG_NONE, VISIONTEK_C1550, DEVINFO_EMPTY }, |
||
588 | /* 0x7147 : RV505 : Radeon X1550 64-bit */ |
||
589 | { 0x7147, 0x174B, 0x0840, "Sapphire X1550", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
590 | /* 0x7149 : M52 : Mobility Radeon X1300 */ |
||
591 | { 0x7149, 0x1028, 0x2003, "Dell Inspiron E1505", RHD_CARD_FLAG_NONE, PANEL_B_VGA_A0, DEVINFO_EMPTY }, |
||
592 | { 0x7149, 0x17AA, 0x2005, "Lenovo Thinkpad T60 (2008)", RHD_CARD_FLAG_NONE, PANEL_B2_VGA_A0_DVI_A10, DEVINFO_EMPTY }, |
||
593 | /* 0x714A : M52 : Mobility Radeon X1300 */ |
||
594 | /* 0x714B : M52 : Mobility Radeon X1300 */ |
||
595 | /* 0x714C : M52 : Mobility Radeon X1300 */ |
||
596 | /* 0x714D : RV515 : Radeon X1300 */ |
||
597 | /* 0x714E : RV515 : Radeon X1300 */ |
||
598 | /* 0x714F : RV505 : RV505 */ |
||
599 | /* 0x7151 : RV505 : RV505 */ |
||
600 | /* 0x7152 : RV515 : FireGL V3300 */ |
||
601 | { 0x7152, 0x1002, 0x0B02, "ATI FireGL V3300", RHD_CARD_FLAG_NONE, DVI_BB11_DVI_AA00, DEVINFO_EMPTY }, |
||
602 | /* 0x7153 : RV515 : FireGL V3350 */ |
||
603 | /* 0x715E : RV515 : Radeon X1300 */ |
||
604 | /* 0x715F : RV505 : Radeon X1550 64-bit */ |
||
605 | /* 0x7180 : RV516 : Radeon X1300/X1550 */ |
||
606 | /* 0x7181 : RV516 : Radeon X1600 */ |
||
607 | /* 0x7183 : RV516 : Radeon X1300/X1550 */ |
||
608 | { 0x7183, 0x1028, 0x0D02, "Dell ATI Radeon X1300", RHD_CARD_FLAG_DMS59, DVI_AA00_DVI_BB11, DEVINFO_EMPTY }, |
||
609 | { 0x7183, 0x1092, 0x3000, "RX155PCI", RHD_CARD_FLAG_NONE, VGA_A0_TVB_DVI_BB12, DEVINFO_EMPTY }, |
||
610 | /* 0x7186 : M64 : Mobility Radeon X1450 */ |
||
611 | /* 0x7187 : RV516 : Radeon X1300/X1550 */ |
||
612 | { 0x7187, 0x174B, 0x3000, "RV516 : Radeon X1300/X1550", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
613 | { 0x7187, 0x1458, 0x215C, "RV516 : Radeon X1300/X1550", RHD_CARD_FLAG_DMS59, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
614 | { 0x7187, 0x1545, 0x1930, "RV516 : Radeon X1300", RHD_CARD_FLAG_NONE, VGA_A0_TV_B_DVI_B11, DEVINFO_EMPTY }, |
||
615 | /* 0x7188 : M64 : Mobility Radeon X2300 */ |
||
616 | /* 0x718A : M64 : Mobility Radeon X2300 */ |
||
617 | /* 0x718B : M62 : Mobility Radeon X1350 */ |
||
618 | /* 0x718C : M62 : Mobility Radeon X1350 */ |
||
619 | /* 0x718D : M64 : Mobility Radeon X1450 */ |
||
620 | /* 0x718F : RV516 : Radeon X1300 */ |
||
621 | /* 0x7193 : RV516 : Radeon X1550 */ |
||
622 | /* 0x7196 : M62 : Mobility Radeon X1350 */ |
||
623 | /* 0x719B : RV516 : FireMV 2250 */ |
||
624 | /* 0x719F : RV516 : Radeon X1550 64-bit */ |
||
625 | /* 0x71C0 : RV530 : Radeon X1600 */ |
||
626 | /* 0x71C1 : RV535 : Radeon X1650 */ |
||
627 | { 0x71C1, 0x174B, 0x0840, "Sapphire X1650 Pro", RHD_CARD_FLAG_NONE, DVI_AA00_DVI_BB11, DEVINFO_EMPTY }, |
||
628 | /* 0x71C2 : RV530 : Radeon X1600 */ |
||
629 | { 0x71C2, 0x1458, 0x2146, "Gigabyte GV-RX16P256DE-RH", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
630 | { 0x71C2, 0x17EE, 0x71C0, "Connect3D Radeon X1600 Pro", RHD_CARD_FLAG_NONE, VGA_B1_DVI_AA00, DEVINFO_EMPTY }, |
||
631 | /* 0x71C3 : RV535 : Radeon X1600 */ |
||
632 | /* 0x71C4 : M56 : Mobility FireGL V5200 */ |
||
633 | { 0x71C4, 0x17AA, 0x2007, "Lenovo Thinkpad T60p V5200", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
634 | /* 0x71C5 : M56 : Mobility Radeon X1600 */ |
||
635 | { 0x71C5, 0x103C, 0x30A3, "HP/Compaq nc8430", RHD_CARD_FLAG_NONE, PANEL_B1_VGA_A0, DEVINFO_EMPTY }, |
||
636 | { 0x71C5, 0x103C, 0x30B4, "HP/Compaq nw8440", RHD_CARD_FLAG_NONE, PANEL_B1_VGA_A0, DEVINFO_EMPTY }, |
||
637 | { 0x71C5, 0x1043, 0x10B2, "Asus W3J/Z96", RHD_CARD_FLAG_NONE, PANEL_B_VGA_A0, DEVINFO_EMPTY }, |
||
638 | { 0x71C5, 0x106B, 0x0080, "Macbook Pro", RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_MACBOOKPRO, DEVINFO_MACBOOKPRO }, |
||
639 | { 0x71C5, 0x1179, 0xFF10, "Toshiba Satellite A100-237", RHD_CARD_FLAG_NONE, PANEL_B1_VGA_A2, DEVINFO_EMPTY }, |
||
640 | /* 0x71C6 : RV530 : Radeon X1650 */ |
||
641 | { 0x71C6, 0x174B, 0x0850, "Sapphire X1650 Pro AGP", RHD_CARD_FLAG_NONE, VGA_A0_DVI_BA10, DEVINFO_EMPTY }, |
||
642 | { 0x71C6, 0x1462, 0x0400, "MSI RX1650 Pro", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
643 | /* 0x71C7 : RV535 : Radeon X1650 */ |
||
644 | { 0x71C7, 0x1043, 0x01B6, "Asus EAX1650 Silent", RHD_CARD_FLAG_NONE, VGA_A0_DVI_BB10, DEVINFO_EMPTY }, |
||
645 | { 0x71C7, 0x1787, 0x2227, "Diamond Viper X1650 Pro", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
646 | /* 0x71CD : RV530 : Radeon X1600 */ |
||
647 | { 0x71CD, 0x174B, 0x0840, "PCP X1600 400M/500E", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
648 | /* 0x71CE : RV530 : Radeon X1300 XT/X1600 Pro */ |
||
649 | { 0x71CE, 0x18BC, 0x2770, "Radeon X1300 XT/X1600 Pro", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
650 | /* 0x71D2 : RV530 : FireGL V3400 */ |
||
651 | { 0x71D2, 0x1002, 0x2B02, "ATI FireGL V3400", RHD_CARD_FLAG_NONE, DVI_BB11_DVI_AA00, DEVINFO_EMPTY }, |
||
652 | /* 0x71D4 : M66 : Mobility FireGL V5250 */ |
||
653 | { 0x71D4, 0x17AA, 0x20A4, "Lenovo Thinkpad T60p V5250", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
654 | /* 0x71D5 : M66 : Mobility Radeon X1700 */ |
||
655 | /* 0x71D6 : M66 : Mobility Radeon X1700 XT */ |
||
656 | /* 0x71DA : RV530 : FireGL V5200 */ |
||
657 | /* 0x71DE : M66 : Mobility Radeon X1700 */ |
||
658 | /* 0x7200 : RV550 : Radeon X2300HD */ |
||
659 | /* 0x7210 : M71 : Mobility Radeon HD 2300 */ |
||
660 | /* 0x7211 : M71 : Mobility Radeon HD 2300 */ |
||
661 | /* 0x7240 : R580 : Radeon X1950 */ |
||
662 | /* 0x7243 : R580 : Radeon X1900 */ |
||
663 | /* 0x7244 : R580 : Radeon X1950 */ |
||
664 | /* 0x7245 : R580 : Radeon X1900 */ |
||
665 | /* 0x7246 : R580 : Radeon X1900 */ |
||
666 | /* 0x7247 : R580 : Radeon X1900 */ |
||
667 | /* 0x7248 : R580 : Radeon X1900 */ |
||
668 | /* 0x7249 : R580 : Radeon X1900 */ |
||
669 | { 0x7249, 0x1002, 0x0B12, "ATI Radeon X1900 XTX", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
670 | /* { 0x7249, 0x1043, 0x016B, "ATI Radeon X1900 XTX", RHD_CARD_FLAG_NONE, DVI_AB10_DVI_A01, DEVINFO_EMPTY }, */ |
||
671 | /* 0x724A : R580 : Radeon X1900 */ |
||
672 | /* 0x724B : R580 : Radeon X1900 */ |
||
673 | { 0x724B, 0x1002, 0x0B12, "Sapphire Radeon X1900 GT", RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
674 | /* 0x724C : R580 : Radeon X1900 */ |
||
675 | /* 0x724D : R580 : Radeon X1900 */ |
||
676 | /* 0x724E : R580 : AMD Stream Processor */ |
||
677 | /* 0x724F : R580 : Radeon X1900 */ |
||
678 | /* 0x7280 : RV570 : Radeon X1950 */ |
||
679 | { 0x7280, 0x174B, 0xE190, "Sapphire X1950 Pro", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
680 | { 0x7280, 0x18BC, 0x2870, "GeCube X1950 Pro", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
681 | /* 0x7281 : RV560 : RV560 */ |
||
682 | /* 0x7283 : RV560 : RV560 */ |
||
683 | /* 0x7284 : M68 : Mobility Radeon X1900 */ |
||
684 | /* 0x7287 : RV560 : RV560 */ |
||
685 | /* 0x7288 : RV570 : Radeon X1950 GT */ |
||
686 | { 0x7288, 0x174B, 0xE190, "Sapphire X1950 GT", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
687 | /* 0x7289 : RV570 : RV570 */ |
||
688 | /* 0x728B : RV570 : RV570 */ |
||
689 | /* 0x728C : RV570 : ATI FireGL V7400 */ |
||
690 | /* 0x7290 : RV560 : RV560 */ |
||
691 | /* 0x7291 : RV560 : Radeon X1650 */ |
||
692 | /* 0x7293 : RV560 : Radeon X1650 */ |
||
693 | /* 0x7297 : RV560 : RV560 */ |
||
694 | /* 0x791E : RS690 : Radeon X1200 */ |
||
695 | { 0x791E, 0x1043, 0x826D, "Asus M2A-VM", RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
696 | /* 0x791F : RS690 : Radeon X1200 */ |
||
697 | { 0x791F, 0x103C, 0x30C2, "HP/Compaq 6715b", RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
698 | /* 0x793F : RS600 : Radeon Xpress 1200 */ |
||
699 | /* 0x7941 : RS600 : Radeon Xpress 1200 */ |
||
700 | /* 0x7942 : RS600 : Radeon Xpress 1200 (M) */ |
||
701 | /* 0x796C : RS740 : RS740 */ |
||
702 | /* 0x796D : RS740 : RS740M */ |
||
703 | /* 0x796E : RS740 : RS740 */ |
||
704 | /* 0x796F : RS740 : RS740M */ |
||
705 | /* 0x9400 : R600 : Radeon HD 2900 XT */ |
||
706 | { 0x9400, 0x1002, 0x3142, "Sapphire HD 2900 XT", RHD_CARD_FLAG_NONE, DVI_BB11_DVI_AA00, DEVINFO_EMPTY }, |
||
707 | /* 0x9401 : R600 : Radeon HD 2900 XT */ |
||
708 | /* 0x9402 : R600 : Radeon HD 2900 XT */ |
||
709 | /* 0x9403 : R600 : Radeon HD 2900 Pro */ |
||
710 | /* 0x9405 : R600 : ATI Radeon HD 2900 GT */ |
||
711 | /* 0x940A : R600 : ATI FireGL V8650 */ |
||
712 | /* 0x940B : R600 : ATI FireGL V8600 */ |
||
713 | /* 0x940F : R600 : ATI FireGL V7600 */ |
||
714 | /* 0x94C0 : RV610 : RV610 */ |
||
715 | /* 0x94C1 : RV610 : Radeon HD 2400 XT */ |
||
716 | { 0x94C1, 0x1002, 0x0D02, "ATI Radeon HD 2400 XT", RHD_CARD_FLAG_DMS59, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
717 | { 0x94C1, 0x1028, 0x0D02, "Dell Radeon HD 2400 XT", RHD_CARD_FLAG_DMS59, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
718 | { 0x94C1, 0x174B, 0xE390, "Sapphire HD 2400 XT", RHD_CARD_FLAG_NONE, VGA_B1_DVI_AB00, DEVINFO_EMPTY }, |
||
719 | { 0x94C3, 0x0000, 0x0000, "ATI Radeon 2400 HD GENERIC", RHD_CARD_FLAG_NONE, VGA_B1_TV_B_DVI_AA00, DEVINFO_EMPTY }, |
||
720 | /* 0x94C3 : RV610 : Radeon HD 2400 Pro */ |
||
721 | { 0x94C3, 0x1545, 0x3210, "ATI Radeon 2400HD Pro", RHD_CARD_FLAG_HPDSWAP, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
722 | { 0x94C3, 0x174B, 0xE370, "Sapphire HD 2400 Pro", RHD_CARD_FLAG_NONE, VGA_A0_DVI_BB10, DEVINFO_EMPTY }, |
||
723 | { 0x94C3, 0x18BC, 0x3550, "GeCube Radeon HD 2400PRO", RHD_CARD_FLAG_NONE, BROKEN_VGA_B1_DVI_AB00, DEVINFO_EMPTY }, |
||
724 | /* 0x94C4 : RV610 : ATI Radeon HD 2400 PRO AGP */ |
||
725 | { 0x94C4, 0x18BC, 0x0028, "GeCube Radeon HD 2400PRO AGP", RHD_CARD_FLAG_NONE, BROKEN_VGA_B1_DVI_AB00, DEVINFO_EMPTY }, |
||
726 | /* 0x94C5 : RV610 : ATI FireGL V4000 */ |
||
727 | /* 0x94C6 : RV610 : RV610 */ |
||
728 | /* 0x94C7 : RV610 : ATI Radeon HD 2350 */ |
||
729 | /* 0x94C8 : M74 : Mobility Radeon HD 2400 XT */ |
||
730 | /* 0x94C9 : M72 : Mobility Radeon HD 2400 */ |
||
731 | /* 0x94CB : M72 : ATI RADEON E2400 */ |
||
732 | /* 0x94CC : RV610 : RV610 */ |
||
733 | /* 0x9505 : RV670 : ATI Radeon HD 3850 */ |
||
734 | /* 0x9580 : RV630 : RV630 */ |
||
735 | /* 0x9581 : M76 : Mobility Radeon HD 2600 */ |
||
736 | /* 0x9583 : M76 : Mobility Radeon HD 2600 XT */ |
||
737 | /* 0x9586 : RV630 : ATI Radeon HD 2600 XT AGP */ |
||
738 | /* 0x9587 : RV630 : ATI Radeon HD 2600 Pro AGP */ |
||
739 | { 0x9587, 0x1002, 0x0028, "Sapphire Radeon HD 2600 PRO AGP", RHD_CARD_FLAG_NONE, DVI_BA10_TV_B0_VGA_A0, DEVINFO_EMPTY }, |
||
740 | { 0x9587, 0x1462, 0x0028, "MSI HD2600PRO AGP", RHD_CARD_FLAG_NONE, DVI_BA12_TV_B0_DVI_AB01, DEVINFO_EMPTY }, |
||
741 | /* 0x9588 : RV630 : Radeon HD 2600 XT */ |
||
742 | { 0x9588, 0x1002, 0x2542, "ATI Radeon HD 2600XT DDR4", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
743 | { 0x9588, 0x1448, 0x216C, "Gigabyte HD 2600 XT 256MB DDR3", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
744 | { 0x9588, 0x174B, 0x2E42, "Sapphire HD 2600 XT", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
745 | /* 0x9589 : RV630 : Radeon HD 2600 Pro */ |
||
746 | { 0x9589, 0x174B, 0xE410, "Sapphire HD 2600 Pro", RHD_CARD_FLAG_NONE, DVI_BA10_DVI_AB01, DEVINFO_EMPTY }, |
||
747 | /* 0x958A : RV630 : Gemini RV630 */ |
||
748 | /* 0x958B : M76 : Gemini ATI Mobility Radeon HD 2600 XT */ |
||
749 | /* 0x958C : RV630 : ATI FireGL V5600 */ |
||
750 | /* 0x958D : RV630 : ATI FireGL V3600 */ |
||
751 | /* 0x958E : RV630 : ATI Radeon HD 2600 LE */ |
||
752 | { 0x9610, 0x105B, 0x0E0F, "Foxconn A7GM-S (RS780)", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, |
||
753 | { 0, 0, 0, NULL, 0, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY } /* KEEP THIS: End marker. */ |
||
754 | }; |
||
755 | |||
756 | /* |
||
757 | * |
||
758 | */ |
||
759 | |||
760 | struct rhdCard *RHDCardIdentify(RHDPtr rhdPtr) |
||
761 | { |
||
762 | unsigned int deviceID, subVendorID, subDeviceID; |
||
763 | int i; |
||
764 | |||
765 | deviceID = (unsigned int) rhdPtr->PciDeviceID; |
||
766 | subVendorID = (unsigned int)rhdPtr->subvendor_id; |
||
767 | subDeviceID = (unsigned int)rhdPtr->subdevice_id; |
||
768 | |||
769 | for (i = 0; rhdCards[i].name; i++) |
||
770 | if ((rhdCards[i].device == deviceID) && |
||
771 | (rhdCards[i].card_vendor == subVendorID) && |
||
772 | (rhdCards[i].card_device == subDeviceID)) |
||
773 | return rhdCards + i; |
||
774 | |||
775 | xf86DrvMsg(pScrn->scrnIndex, X_INFO, |
||
776 | "Unknown card detected: 0x%04X:0x%04X:0x%04X.\n", |
||
777 | deviceID, subVendorID, subDeviceID); |
||
778 | return NULL; |
||
779 | } |
||
780 | |||
781 | #define USE_ATOMBIOS RHD_RV770 |
||
782 | #define USE_ATOM_CRTC USE_ATOMBIOS |
||
783 | #define USE_ATOM_PLL USE_ATOMBIOS |
||
784 | #define USE_ATOM_OUTPUT USE_ATOMBIOS |
||
785 | |||
786 | /* |
||
787 | * |
||
788 | */ |
||
789 | Bool |
||
790 | RHDUseAtom(RHDPtr rhdPtr, enum RHD_CHIPSETS *BlackList, |
||
791 | enum atomSubSystem subsys) |
||
792 | { |
||
793 | #ifdef ATOM_BIOS |
||
794 | Bool FromSys = FALSE, ret = FALSE; |
||
795 | CARD32 FromUser = 0; |
||
796 | int i = 0; |
||
797 | char *message = NULL; |
||
798 | enum RHD_CHIPSETS AtomChip; |
||
799 | int from = 0; |
||
800 | |||
801 | switch (subsys) { |
||
802 | case atomUsageCrtc: |
||
803 | AtomChip = USE_ATOM_CRTC; |
||
804 | message = "Crtcs"; |
||
805 | FromUser = (rhdPtr->UseAtomFlags >> RHD_ATOMBIOS_CRTC) & 0x7; |
||
806 | break; |
||
807 | case atomUsagePLL: |
||
808 | AtomChip = USE_ATOM_PLL; |
||
809 | message = "PLLs"; |
||
810 | FromUser = (rhdPtr->UseAtomFlags >> RHD_ATOMBIOS_PLL) & 0x7; |
||
811 | break; |
||
812 | case atomUsageOutput: |
||
813 | AtomChip = USE_ATOM_OUTPUT; |
||
814 | message = "Outputs"; |
||
815 | FromUser = (rhdPtr->UseAtomFlags >> RHD_ATOMBIOS_OUTPUT) & 0x7; |
||
816 | break; |
||
817 | case atomUsageAny: |
||
818 | AtomChip = min(USE_ATOM_OUTPUT,min(USE_ATOM_PLL, USE_ATOM_CRTC)); |
||
819 | message = "All"; |
||
820 | FromUser = ((rhdPtr->UseAtomFlags >> RHD_ATOMBIOS_OUTPUT) |
||
821 | | (rhdPtr->UseAtomFlags >> RHD_ATOMBIOS_PLL) |
||
822 | | (rhdPtr->UseAtomFlags >> RHD_ATOMBIOS_CRTC)) & 0x7; |
||
823 | break; |
||
824 | } |
||
825 | |||
826 | if (rhdPtr->ChipSet >= AtomChip) |
||
827 | FromSys = TRUE; |
||
828 | |||
829 | if (!FromSys && BlackList) { |
||
830 | while (BlackList[i] != RHD_CHIP_END) { |
||
831 | if (BlackList[i++] == rhdPtr->ChipSet) { |
||
832 | FromSys = TRUE; |
||
833 | } |
||
834 | } |
||
835 | } |
||
836 | if (!FromSys) { |
||
837 | if (rhdPtr->UseAtomBIOS.set) { |
||
838 | // from = X_CONFIG; |
||
839 | ret = rhdPtr->UseAtomBIOS.val.bool; |
||
840 | } |
||
841 | if (FromUser & RHD_ATOMBIOS_ON) |
||
842 | ret = TRUE; |
||
843 | if (FromUser & RHD_ATOMBIOS_OFF) |
||
844 | ret = FALSE; |
||
845 | } else { |
||
846 | ret = TRUE; |
||
847 | if ((FromUser & RHD_ATOMBIOS_FORCE) && (FromUser & RHD_ATOMBIOS_OFF)) { |
||
848 | // from = X_CONFIG; |
||
849 | ret = FALSE; |
||
850 | } |
||
851 | } |
||
852 | if (ret) |
||
853 | xf86DrvMsg(rhdPtr->scrnIndex, from, "Using AtomBIOS for %s\n", |
||
854 | message); |
||
855 | |||
856 | return ret; |
||
857 | #else |
||
858 | return 0; |
||
859 | #endif /* ATOM_BIOS */ |
||
860 | } |