Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/radeon/si: add support for golden register init

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+793
+793
drivers/gpu/drm/radeon/si.c
··· 70 70 extern void evergreen_print_gpu_status_regs(struct radeon_device *rdev); 71 71 extern bool evergreen_is_display_hung(struct radeon_device *rdev); 72 72 73 + static const u32 tahiti_golden_rlc_registers[] = 74 + { 75 + 0xc424, 0xffffffff, 0x00601005, 76 + 0xc47c, 0xffffffff, 0x10104040, 77 + 0xc488, 0xffffffff, 0x0100000a, 78 + 0xc314, 0xffffffff, 0x00000800, 79 + 0xc30c, 0xffffffff, 0x800000f4, 80 + 0xf4a8, 0xffffffff, 0x00000000 81 + }; 82 + 83 + static const u32 tahiti_golden_registers[] = 84 + { 85 + 0x9a10, 0x00010000, 0x00018208, 86 + 0x9830, 0xffffffff, 0x00000000, 87 + 0x9834, 0xf00fffff, 0x00000400, 88 + 0x9838, 0x0002021c, 0x00020200, 89 + 0xc78, 0x00000080, 0x00000000, 90 + 0xd030, 0x000300c0, 0x00800040, 91 + 0xd830, 0x000300c0, 0x00800040, 92 + 0x5bb0, 0x000000f0, 0x00000070, 93 + 0x5bc0, 0x00200000, 0x50100000, 94 + 0x7030, 0x31000311, 0x00000011, 95 + 0x277c, 0x00000003, 0x000007ff, 96 + 0x240c, 0x000007ff, 0x00000000, 97 + 0x8a14, 0xf000001f, 0x00000007, 98 + 0x8b24, 0xffffffff, 0x00ffffff, 99 + 0x8b10, 0x0000ff0f, 0x00000000, 100 + 0x28a4c, 0x07ffffff, 0x4e000000, 101 + 0x28350, 0x3f3f3fff, 0x2a00126a, 102 + 0x30, 0x000000ff, 0x0040, 103 + 0x34, 0x00000040, 0x00004040, 104 + 0x9100, 0x07ffffff, 0x03000000, 105 + 0x8e88, 0x01ff1f3f, 0x00000000, 106 + 0x8e84, 0x01ff1f3f, 0x00000000, 107 + 0x9060, 0x0000007f, 0x00000020, 108 + 0x9508, 0x00010000, 0x00010000, 109 + 0xac14, 0x00000200, 0x000002fb, 110 + 0xac10, 0xffffffff, 0x0000543b, 111 + 0xac0c, 0xffffffff, 0xa9210876, 112 + 0x88d0, 0xffffffff, 0x000fff40, 113 + 0x88d4, 0x0000001f, 0x00000010, 114 + 0x1410, 0x20000000, 0x20fffed8, 115 + 0x15c0, 0x000c0fc0, 0x000c0400 116 + }; 117 + 118 + static const u32 tahiti_golden_registers2[] = 119 + { 120 + 0xc64, 0x00000001, 0x00000001 121 + }; 122 + 123 + static const u32 pitcairn_golden_rlc_registers[] = 124 + { 125 + 0xc424, 0xffffffff, 0x00601004, 126 + 0xc47c, 0xffffffff, 0x10102020, 127 + 0xc488, 0xffffffff, 0x01000020, 128 + 0xc314, 0xffffffff, 0x00000800, 129 + 0xc30c, 0xffffffff, 0x800000a4 130 + }; 131 + 132 + static const u32 pitcairn_golden_registers[] = 133 + { 134 + 0x9a10, 0x00010000, 0x00018208, 135 + 0x9830, 0xffffffff, 0x00000000, 136 + 0x9834, 0xf00fffff, 0x00000400, 137 + 0x9838, 0x0002021c, 0x00020200, 138 + 0xc78, 0x00000080, 0x00000000, 139 + 0xd030, 0x000300c0, 0x00800040, 140 + 0xd830, 0x000300c0, 0x00800040, 141 + 0x5bb0, 0x000000f0, 0x00000070, 142 + 0x5bc0, 0x00200000, 0x50100000, 143 + 0x7030, 0x31000311, 0x00000011, 144 + 0x2ae4, 0x00073ffe, 0x000022a2, 145 + 0x240c, 0x000007ff, 0x00000000, 146 + 0x8a14, 0xf000001f, 0x00000007, 147 + 0x8b24, 0xffffffff, 0x00ffffff, 148 + 0x8b10, 0x0000ff0f, 0x00000000, 149 + 0x28a4c, 0x07ffffff, 0x4e000000, 150 + 0x28350, 0x3f3f3fff, 0x2a00126a, 151 + 0x30, 0x000000ff, 0x0040, 152 + 0x34, 0x00000040, 0x00004040, 153 + 0x9100, 0x07ffffff, 0x03000000, 154 + 0x9060, 0x0000007f, 0x00000020, 155 + 0x9508, 0x00010000, 0x00010000, 156 + 0xac14, 0x000003ff, 0x000000f7, 157 + 0xac10, 0xffffffff, 0x00000000, 158 + 0xac0c, 0xffffffff, 0x32761054, 159 + 0x88d4, 0x0000001f, 0x00000010, 160 + 0x15c0, 0x000c0fc0, 0x000c0400 161 + }; 162 + 163 + static const u32 verde_golden_rlc_registers[] = 164 + { 165 + 0xc424, 0xffffffff, 0x033f1005, 166 + 0xc47c, 0xffffffff, 0x10808020, 167 + 0xc488, 0xffffffff, 0x00800008, 168 + 0xc314, 0xffffffff, 0x00001000, 169 + 0xc30c, 0xffffffff, 0x80010014 170 + }; 171 + 172 + static const u32 verde_golden_registers[] = 173 + { 174 + 0x9a10, 0x00010000, 0x00018208, 175 + 0x9830, 0xffffffff, 0x00000000, 176 + 0x9834, 0xf00fffff, 0x00000400, 177 + 0x9838, 0x0002021c, 0x00020200, 178 + 0xc78, 0x00000080, 0x00000000, 179 + 0xd030, 0x000300c0, 0x00800040, 180 + 0xd030, 0x000300c0, 0x00800040, 181 + 0xd830, 0x000300c0, 0x00800040, 182 + 0xd830, 0x000300c0, 0x00800040, 183 + 0x5bb0, 0x000000f0, 0x00000070, 184 + 0x5bc0, 0x00200000, 0x50100000, 185 + 0x7030, 0x31000311, 0x00000011, 186 + 0x2ae4, 0x00073ffe, 0x000022a2, 187 + 0x2ae4, 0x00073ffe, 0x000022a2, 188 + 0x2ae4, 0x00073ffe, 0x000022a2, 189 + 0x240c, 0x000007ff, 0x00000000, 190 + 0x240c, 0x000007ff, 0x00000000, 191 + 0x240c, 0x000007ff, 0x00000000, 192 + 0x8a14, 0xf000001f, 0x00000007, 193 + 0x8a14, 0xf000001f, 0x00000007, 194 + 0x8a14, 0xf000001f, 0x00000007, 195 + 0x8b24, 0xffffffff, 0x00ffffff, 196 + 0x8b10, 0x0000ff0f, 0x00000000, 197 + 0x28a4c, 0x07ffffff, 0x4e000000, 198 + 0x28350, 0x3f3f3fff, 0x0000124a, 199 + 0x28350, 0x3f3f3fff, 0x0000124a, 200 + 0x28350, 0x3f3f3fff, 0x0000124a, 201 + 0x30, 0x000000ff, 0x0040, 202 + 0x34, 0x00000040, 0x00004040, 203 + 0x9100, 0x07ffffff, 0x03000000, 204 + 0x9100, 0x07ffffff, 0x03000000, 205 + 0x8e88, 0x01ff1f3f, 0x00000000, 206 + 0x8e88, 0x01ff1f3f, 0x00000000, 207 + 0x8e88, 0x01ff1f3f, 0x00000000, 208 + 0x8e84, 0x01ff1f3f, 0x00000000, 209 + 0x8e84, 0x01ff1f3f, 0x00000000, 210 + 0x8e84, 0x01ff1f3f, 0x00000000, 211 + 0x9060, 0x0000007f, 0x00000020, 212 + 0x9508, 0x00010000, 0x00010000, 213 + 0xac14, 0x000003ff, 0x00000003, 214 + 0xac14, 0x000003ff, 0x00000003, 215 + 0xac14, 0x000003ff, 0x00000003, 216 + 0xac10, 0xffffffff, 0x00000000, 217 + 0xac10, 0xffffffff, 0x00000000, 218 + 0xac10, 0xffffffff, 0x00000000, 219 + 0xac0c, 0xffffffff, 0x00001032, 220 + 0xac0c, 0xffffffff, 0x00001032, 221 + 0xac0c, 0xffffffff, 0x00001032, 222 + 0x88d4, 0x0000001f, 0x00000010, 223 + 0x88d4, 0x0000001f, 0x00000010, 224 + 0x88d4, 0x0000001f, 0x00000010, 225 + 0x15c0, 0x000c0fc0, 0x000c0400 226 + }; 227 + 228 + static const u32 oland_golden_rlc_registers[] = 229 + { 230 + 0xc424, 0xffffffff, 0x00601005, 231 + 0xc47c, 0xffffffff, 0x10104040, 232 + 0xc488, 0xffffffff, 0x0100000a, 233 + 0xc314, 0xffffffff, 0x00000800, 234 + 0xc30c, 0xffffffff, 0x800000f4 235 + }; 236 + 237 + static const u32 oland_golden_registers[] = 238 + { 239 + 0x9a10, 0x00010000, 0x00018208, 240 + 0x9830, 0xffffffff, 0x00000000, 241 + 0x9834, 0xf00fffff, 0x00000400, 242 + 0x9838, 0x0002021c, 0x00020200, 243 + 0xc78, 0x00000080, 0x00000000, 244 + 0xd030, 0x000300c0, 0x00800040, 245 + 0xd830, 0x000300c0, 0x00800040, 246 + 0x5bb0, 0x000000f0, 0x00000070, 247 + 0x5bc0, 0x00200000, 0x50100000, 248 + 0x7030, 0x31000311, 0x00000011, 249 + 0x2ae4, 0x00073ffe, 0x000022a2, 250 + 0x240c, 0x000007ff, 0x00000000, 251 + 0x8a14, 0xf000001f, 0x00000007, 252 + 0x8b24, 0xffffffff, 0x00ffffff, 253 + 0x8b10, 0x0000ff0f, 0x00000000, 254 + 0x28a4c, 0x07ffffff, 0x4e000000, 255 + 0x28350, 0x3f3f3fff, 0x00000082, 256 + 0x30, 0x000000ff, 0x0040, 257 + 0x34, 0x00000040, 0x00004040, 258 + 0x9100, 0x07ffffff, 0x03000000, 259 + 0x9060, 0x0000007f, 0x00000020, 260 + 0x9508, 0x00010000, 0x00010000, 261 + 0xac14, 0x000003ff, 0x000000f3, 262 + 0xac10, 0xffffffff, 0x00000000, 263 + 0xac0c, 0xffffffff, 0x00003210, 264 + 0x88d4, 0x0000001f, 0x00000010, 265 + 0x15c0, 0x000c0fc0, 0x000c0400 266 + }; 267 + 268 + static const u32 tahiti_mgcg_cgcg_init[] = 269 + { 270 + 0xc400, 0xffffffff, 0xfffffffc, 271 + 0x802c, 0xffffffff, 0xe0000000, 272 + 0x9a60, 0xffffffff, 0x00000100, 273 + 0x92a4, 0xffffffff, 0x00000100, 274 + 0xc164, 0xffffffff, 0x00000100, 275 + 0x9774, 0xffffffff, 0x00000100, 276 + 0x8984, 0xffffffff, 0x06000100, 277 + 0x8a18, 0xffffffff, 0x00000100, 278 + 0x92a0, 0xffffffff, 0x00000100, 279 + 0xc380, 0xffffffff, 0x00000100, 280 + 0x8b28, 0xffffffff, 0x00000100, 281 + 0x9144, 0xffffffff, 0x00000100, 282 + 0x8d88, 0xffffffff, 0x00000100, 283 + 0x8d8c, 0xffffffff, 0x00000100, 284 + 0x9030, 0xffffffff, 0x00000100, 285 + 0x9034, 0xffffffff, 0x00000100, 286 + 0x9038, 0xffffffff, 0x00000100, 287 + 0x903c, 0xffffffff, 0x00000100, 288 + 0xad80, 0xffffffff, 0x00000100, 289 + 0xac54, 0xffffffff, 0x00000100, 290 + 0x897c, 0xffffffff, 0x06000100, 291 + 0x9868, 0xffffffff, 0x00000100, 292 + 0x9510, 0xffffffff, 0x00000100, 293 + 0xaf04, 0xffffffff, 0x00000100, 294 + 0xae04, 0xffffffff, 0x00000100, 295 + 0x949c, 0xffffffff, 0x00000100, 296 + 0x802c, 0xffffffff, 0xe0000000, 297 + 0x9160, 0xffffffff, 0x00010000, 298 + 0x9164, 0xffffffff, 0x00030002, 299 + 0x9168, 0xffffffff, 0x00040007, 300 + 0x916c, 0xffffffff, 0x00060005, 301 + 0x9170, 0xffffffff, 0x00090008, 302 + 0x9174, 0xffffffff, 0x00020001, 303 + 0x9178, 0xffffffff, 0x00040003, 304 + 0x917c, 0xffffffff, 0x00000007, 305 + 0x9180, 0xffffffff, 0x00060005, 306 + 0x9184, 0xffffffff, 0x00090008, 307 + 0x9188, 0xffffffff, 0x00030002, 308 + 0x918c, 0xffffffff, 0x00050004, 309 + 0x9190, 0xffffffff, 0x00000008, 310 + 0x9194, 0xffffffff, 0x00070006, 311 + 0x9198, 0xffffffff, 0x000a0009, 312 + 0x919c, 0xffffffff, 0x00040003, 313 + 0x91a0, 0xffffffff, 0x00060005, 314 + 0x91a4, 0xffffffff, 0x00000009, 315 + 0x91a8, 0xffffffff, 0x00080007, 316 + 0x91ac, 0xffffffff, 0x000b000a, 317 + 0x91b0, 0xffffffff, 0x00050004, 318 + 0x91b4, 0xffffffff, 0x00070006, 319 + 0x91b8, 0xffffffff, 0x0008000b, 320 + 0x91bc, 0xffffffff, 0x000a0009, 321 + 0x91c0, 0xffffffff, 0x000d000c, 322 + 0x91c4, 0xffffffff, 0x00060005, 323 + 0x91c8, 0xffffffff, 0x00080007, 324 + 0x91cc, 0xffffffff, 0x0000000b, 325 + 0x91d0, 0xffffffff, 0x000a0009, 326 + 0x91d4, 0xffffffff, 0x000d000c, 327 + 0x91d8, 0xffffffff, 0x00070006, 328 + 0x91dc, 0xffffffff, 0x00090008, 329 + 0x91e0, 0xffffffff, 0x0000000c, 330 + 0x91e4, 0xffffffff, 0x000b000a, 331 + 0x91e8, 0xffffffff, 0x000e000d, 332 + 0x91ec, 0xffffffff, 0x00080007, 333 + 0x91f0, 0xffffffff, 0x000a0009, 334 + 0x91f4, 0xffffffff, 0x0000000d, 335 + 0x91f8, 0xffffffff, 0x000c000b, 336 + 0x91fc, 0xffffffff, 0x000f000e, 337 + 0x9200, 0xffffffff, 0x00090008, 338 + 0x9204, 0xffffffff, 0x000b000a, 339 + 0x9208, 0xffffffff, 0x000c000f, 340 + 0x920c, 0xffffffff, 0x000e000d, 341 + 0x9210, 0xffffffff, 0x00110010, 342 + 0x9214, 0xffffffff, 0x000a0009, 343 + 0x9218, 0xffffffff, 0x000c000b, 344 + 0x921c, 0xffffffff, 0x0000000f, 345 + 0x9220, 0xffffffff, 0x000e000d, 346 + 0x9224, 0xffffffff, 0x00110010, 347 + 0x9228, 0xffffffff, 0x000b000a, 348 + 0x922c, 0xffffffff, 0x000d000c, 349 + 0x9230, 0xffffffff, 0x00000010, 350 + 0x9234, 0xffffffff, 0x000f000e, 351 + 0x9238, 0xffffffff, 0x00120011, 352 + 0x923c, 0xffffffff, 0x000c000b, 353 + 0x9240, 0xffffffff, 0x000e000d, 354 + 0x9244, 0xffffffff, 0x00000011, 355 + 0x9248, 0xffffffff, 0x0010000f, 356 + 0x924c, 0xffffffff, 0x00130012, 357 + 0x9250, 0xffffffff, 0x000d000c, 358 + 0x9254, 0xffffffff, 0x000f000e, 359 + 0x9258, 0xffffffff, 0x00100013, 360 + 0x925c, 0xffffffff, 0x00120011, 361 + 0x9260, 0xffffffff, 0x00150014, 362 + 0x9264, 0xffffffff, 0x000e000d, 363 + 0x9268, 0xffffffff, 0x0010000f, 364 + 0x926c, 0xffffffff, 0x00000013, 365 + 0x9270, 0xffffffff, 0x00120011, 366 + 0x9274, 0xffffffff, 0x00150014, 367 + 0x9278, 0xffffffff, 0x000f000e, 368 + 0x927c, 0xffffffff, 0x00110010, 369 + 0x9280, 0xffffffff, 0x00000014, 370 + 0x9284, 0xffffffff, 0x00130012, 371 + 0x9288, 0xffffffff, 0x00160015, 372 + 0x928c, 0xffffffff, 0x0010000f, 373 + 0x9290, 0xffffffff, 0x00120011, 374 + 0x9294, 0xffffffff, 0x00000015, 375 + 0x9298, 0xffffffff, 0x00140013, 376 + 0x929c, 0xffffffff, 0x00170016, 377 + 0x9150, 0xffffffff, 0x96940200, 378 + 0x8708, 0xffffffff, 0x00900100, 379 + 0xc478, 0xffffffff, 0x00000080, 380 + 0xc404, 0xffffffff, 0x0020003f, 381 + 0x30, 0xffffffff, 0x0000001c, 382 + 0x34, 0x000f0000, 0x000f0000, 383 + 0x160c, 0xffffffff, 0x00000100, 384 + 0x1024, 0xffffffff, 0x00000100, 385 + 0x102c, 0x00000101, 0x00000000, 386 + 0x20a8, 0xffffffff, 0x00000104, 387 + 0x264c, 0x000c0000, 0x000c0000, 388 + 0x2648, 0x000c0000, 0x000c0000, 389 + 0x55e4, 0xff000fff, 0x00000100, 390 + 0x55e8, 0x00000001, 0x00000001, 391 + 0x2f50, 0x00000001, 0x00000001, 392 + 0x30cc, 0xc0000fff, 0x00000104, 393 + 0xc1e4, 0x00000001, 0x00000001, 394 + 0xd0c0, 0xfffffff0, 0x00000100, 395 + 0xd8c0, 0xfffffff0, 0x00000100 396 + }; 397 + 398 + static const u32 pitcairn_mgcg_cgcg_init[] = 399 + { 400 + 0xc400, 0xffffffff, 0xfffffffc, 401 + 0x802c, 0xffffffff, 0xe0000000, 402 + 0x9a60, 0xffffffff, 0x00000100, 403 + 0x92a4, 0xffffffff, 0x00000100, 404 + 0xc164, 0xffffffff, 0x00000100, 405 + 0x9774, 0xffffffff, 0x00000100, 406 + 0x8984, 0xffffffff, 0x06000100, 407 + 0x8a18, 0xffffffff, 0x00000100, 408 + 0x92a0, 0xffffffff, 0x00000100, 409 + 0xc380, 0xffffffff, 0x00000100, 410 + 0x8b28, 0xffffffff, 0x00000100, 411 + 0x9144, 0xffffffff, 0x00000100, 412 + 0x8d88, 0xffffffff, 0x00000100, 413 + 0x8d8c, 0xffffffff, 0x00000100, 414 + 0x9030, 0xffffffff, 0x00000100, 415 + 0x9034, 0xffffffff, 0x00000100, 416 + 0x9038, 0xffffffff, 0x00000100, 417 + 0x903c, 0xffffffff, 0x00000100, 418 + 0xad80, 0xffffffff, 0x00000100, 419 + 0xac54, 0xffffffff, 0x00000100, 420 + 0x897c, 0xffffffff, 0x06000100, 421 + 0x9868, 0xffffffff, 0x00000100, 422 + 0x9510, 0xffffffff, 0x00000100, 423 + 0xaf04, 0xffffffff, 0x00000100, 424 + 0xae04, 0xffffffff, 0x00000100, 425 + 0x949c, 0xffffffff, 0x00000100, 426 + 0x802c, 0xffffffff, 0xe0000000, 427 + 0x9160, 0xffffffff, 0x00010000, 428 + 0x9164, 0xffffffff, 0x00030002, 429 + 0x9168, 0xffffffff, 0x00040007, 430 + 0x916c, 0xffffffff, 0x00060005, 431 + 0x9170, 0xffffffff, 0x00090008, 432 + 0x9174, 0xffffffff, 0x00020001, 433 + 0x9178, 0xffffffff, 0x00040003, 434 + 0x917c, 0xffffffff, 0x00000007, 435 + 0x9180, 0xffffffff, 0x00060005, 436 + 0x9184, 0xffffffff, 0x00090008, 437 + 0x9188, 0xffffffff, 0x00030002, 438 + 0x918c, 0xffffffff, 0x00050004, 439 + 0x9190, 0xffffffff, 0x00000008, 440 + 0x9194, 0xffffffff, 0x00070006, 441 + 0x9198, 0xffffffff, 0x000a0009, 442 + 0x919c, 0xffffffff, 0x00040003, 443 + 0x91a0, 0xffffffff, 0x00060005, 444 + 0x91a4, 0xffffffff, 0x00000009, 445 + 0x91a8, 0xffffffff, 0x00080007, 446 + 0x91ac, 0xffffffff, 0x000b000a, 447 + 0x91b0, 0xffffffff, 0x00050004, 448 + 0x91b4, 0xffffffff, 0x00070006, 449 + 0x91b8, 0xffffffff, 0x0008000b, 450 + 0x91bc, 0xffffffff, 0x000a0009, 451 + 0x91c0, 0xffffffff, 0x000d000c, 452 + 0x9200, 0xffffffff, 0x00090008, 453 + 0x9204, 0xffffffff, 0x000b000a, 454 + 0x9208, 0xffffffff, 0x000c000f, 455 + 0x920c, 0xffffffff, 0x000e000d, 456 + 0x9210, 0xffffffff, 0x00110010, 457 + 0x9214, 0xffffffff, 0x000a0009, 458 + 0x9218, 0xffffffff, 0x000c000b, 459 + 0x921c, 0xffffffff, 0x0000000f, 460 + 0x9220, 0xffffffff, 0x000e000d, 461 + 0x9224, 0xffffffff, 0x00110010, 462 + 0x9228, 0xffffffff, 0x000b000a, 463 + 0x922c, 0xffffffff, 0x000d000c, 464 + 0x9230, 0xffffffff, 0x00000010, 465 + 0x9234, 0xffffffff, 0x000f000e, 466 + 0x9238, 0xffffffff, 0x00120011, 467 + 0x923c, 0xffffffff, 0x000c000b, 468 + 0x9240, 0xffffffff, 0x000e000d, 469 + 0x9244, 0xffffffff, 0x00000011, 470 + 0x9248, 0xffffffff, 0x0010000f, 471 + 0x924c, 0xffffffff, 0x00130012, 472 + 0x9250, 0xffffffff, 0x000d000c, 473 + 0x9254, 0xffffffff, 0x000f000e, 474 + 0x9258, 0xffffffff, 0x00100013, 475 + 0x925c, 0xffffffff, 0x00120011, 476 + 0x9260, 0xffffffff, 0x00150014, 477 + 0x9150, 0xffffffff, 0x96940200, 478 + 0x8708, 0xffffffff, 0x00900100, 479 + 0xc478, 0xffffffff, 0x00000080, 480 + 0xc404, 0xffffffff, 0x0020003f, 481 + 0x30, 0xffffffff, 0x0000001c, 482 + 0x34, 0x000f0000, 0x000f0000, 483 + 0x160c, 0xffffffff, 0x00000100, 484 + 0x1024, 0xffffffff, 0x00000100, 485 + 0x102c, 0x00000101, 0x00000000, 486 + 0x20a8, 0xffffffff, 0x00000104, 487 + 0x55e4, 0xff000fff, 0x00000100, 488 + 0x55e8, 0x00000001, 0x00000001, 489 + 0x2f50, 0x00000001, 0x00000001, 490 + 0x30cc, 0xc0000fff, 0x00000104, 491 + 0xc1e4, 0x00000001, 0x00000001, 492 + 0xd0c0, 0xfffffff0, 0x00000100, 493 + 0xd8c0, 0xfffffff0, 0x00000100 494 + }; 495 + 496 + static const u32 verde_mgcg_cgcg_init[] = 497 + { 498 + 0xc400, 0xffffffff, 0xfffffffc, 499 + 0x802c, 0xffffffff, 0xe0000000, 500 + 0x9a60, 0xffffffff, 0x00000100, 501 + 0x92a4, 0xffffffff, 0x00000100, 502 + 0xc164, 0xffffffff, 0x00000100, 503 + 0x9774, 0xffffffff, 0x00000100, 504 + 0x8984, 0xffffffff, 0x06000100, 505 + 0x8a18, 0xffffffff, 0x00000100, 506 + 0x92a0, 0xffffffff, 0x00000100, 507 + 0xc380, 0xffffffff, 0x00000100, 508 + 0x8b28, 0xffffffff, 0x00000100, 509 + 0x9144, 0xffffffff, 0x00000100, 510 + 0x8d88, 0xffffffff, 0x00000100, 511 + 0x8d8c, 0xffffffff, 0x00000100, 512 + 0x9030, 0xffffffff, 0x00000100, 513 + 0x9034, 0xffffffff, 0x00000100, 514 + 0x9038, 0xffffffff, 0x00000100, 515 + 0x903c, 0xffffffff, 0x00000100, 516 + 0xad80, 0xffffffff, 0x00000100, 517 + 0xac54, 0xffffffff, 0x00000100, 518 + 0x897c, 0xffffffff, 0x06000100, 519 + 0x9868, 0xffffffff, 0x00000100, 520 + 0x9510, 0xffffffff, 0x00000100, 521 + 0xaf04, 0xffffffff, 0x00000100, 522 + 0xae04, 0xffffffff, 0x00000100, 523 + 0x949c, 0xffffffff, 0x00000100, 524 + 0x802c, 0xffffffff, 0xe0000000, 525 + 0x9160, 0xffffffff, 0x00010000, 526 + 0x9164, 0xffffffff, 0x00030002, 527 + 0x9168, 0xffffffff, 0x00040007, 528 + 0x916c, 0xffffffff, 0x00060005, 529 + 0x9170, 0xffffffff, 0x00090008, 530 + 0x9174, 0xffffffff, 0x00020001, 531 + 0x9178, 0xffffffff, 0x00040003, 532 + 0x917c, 0xffffffff, 0x00000007, 533 + 0x9180, 0xffffffff, 0x00060005, 534 + 0x9184, 0xffffffff, 0x00090008, 535 + 0x9188, 0xffffffff, 0x00030002, 536 + 0x918c, 0xffffffff, 0x00050004, 537 + 0x9190, 0xffffffff, 0x00000008, 538 + 0x9194, 0xffffffff, 0x00070006, 539 + 0x9198, 0xffffffff, 0x000a0009, 540 + 0x919c, 0xffffffff, 0x00040003, 541 + 0x91a0, 0xffffffff, 0x00060005, 542 + 0x91a4, 0xffffffff, 0x00000009, 543 + 0x91a8, 0xffffffff, 0x00080007, 544 + 0x91ac, 0xffffffff, 0x000b000a, 545 + 0x91b0, 0xffffffff, 0x00050004, 546 + 0x91b4, 0xffffffff, 0x00070006, 547 + 0x91b8, 0xffffffff, 0x0008000b, 548 + 0x91bc, 0xffffffff, 0x000a0009, 549 + 0x91c0, 0xffffffff, 0x000d000c, 550 + 0x9200, 0xffffffff, 0x00090008, 551 + 0x9204, 0xffffffff, 0x000b000a, 552 + 0x9208, 0xffffffff, 0x000c000f, 553 + 0x920c, 0xffffffff, 0x000e000d, 554 + 0x9210, 0xffffffff, 0x00110010, 555 + 0x9214, 0xffffffff, 0x000a0009, 556 + 0x9218, 0xffffffff, 0x000c000b, 557 + 0x921c, 0xffffffff, 0x0000000f, 558 + 0x9220, 0xffffffff, 0x000e000d, 559 + 0x9224, 0xffffffff, 0x00110010, 560 + 0x9228, 0xffffffff, 0x000b000a, 561 + 0x922c, 0xffffffff, 0x000d000c, 562 + 0x9230, 0xffffffff, 0x00000010, 563 + 0x9234, 0xffffffff, 0x000f000e, 564 + 0x9238, 0xffffffff, 0x00120011, 565 + 0x923c, 0xffffffff, 0x000c000b, 566 + 0x9240, 0xffffffff, 0x000e000d, 567 + 0x9244, 0xffffffff, 0x00000011, 568 + 0x9248, 0xffffffff, 0x0010000f, 569 + 0x924c, 0xffffffff, 0x00130012, 570 + 0x9250, 0xffffffff, 0x000d000c, 571 + 0x9254, 0xffffffff, 0x000f000e, 572 + 0x9258, 0xffffffff, 0x00100013, 573 + 0x925c, 0xffffffff, 0x00120011, 574 + 0x9260, 0xffffffff, 0x00150014, 575 + 0x9150, 0xffffffff, 0x96940200, 576 + 0x8708, 0xffffffff, 0x00900100, 577 + 0xc478, 0xffffffff, 0x00000080, 578 + 0xc404, 0xffffffff, 0x0020003f, 579 + 0x30, 0xffffffff, 0x0000001c, 580 + 0x34, 0x000f0000, 0x000f0000, 581 + 0x160c, 0xffffffff, 0x00000100, 582 + 0x1024, 0xffffffff, 0x00000100, 583 + 0x102c, 0x00000101, 0x00000000, 584 + 0x20a8, 0xffffffff, 0x00000104, 585 + 0x264c, 0x000c0000, 0x000c0000, 586 + 0x2648, 0x000c0000, 0x000c0000, 587 + 0x55e4, 0xff000fff, 0x00000100, 588 + 0x55e8, 0x00000001, 0x00000001, 589 + 0x2f50, 0x00000001, 0x00000001, 590 + 0x30cc, 0xc0000fff, 0x00000104, 591 + 0xc1e4, 0x00000001, 0x00000001, 592 + 0xd0c0, 0xfffffff0, 0x00000100, 593 + 0xd8c0, 0xfffffff0, 0x00000100 594 + }; 595 + 596 + static const u32 oland_mgcg_cgcg_init[] = 597 + { 598 + 0xc400, 0xffffffff, 0xfffffffc, 599 + 0x802c, 0xffffffff, 0xe0000000, 600 + 0x9a60, 0xffffffff, 0x00000100, 601 + 0x92a4, 0xffffffff, 0x00000100, 602 + 0xc164, 0xffffffff, 0x00000100, 603 + 0x9774, 0xffffffff, 0x00000100, 604 + 0x8984, 0xffffffff, 0x06000100, 605 + 0x8a18, 0xffffffff, 0x00000100, 606 + 0x92a0, 0xffffffff, 0x00000100, 607 + 0xc380, 0xffffffff, 0x00000100, 608 + 0x8b28, 0xffffffff, 0x00000100, 609 + 0x9144, 0xffffffff, 0x00000100, 610 + 0x8d88, 0xffffffff, 0x00000100, 611 + 0x8d8c, 0xffffffff, 0x00000100, 612 + 0x9030, 0xffffffff, 0x00000100, 613 + 0x9034, 0xffffffff, 0x00000100, 614 + 0x9038, 0xffffffff, 0x00000100, 615 + 0x903c, 0xffffffff, 0x00000100, 616 + 0xad80, 0xffffffff, 0x00000100, 617 + 0xac54, 0xffffffff, 0x00000100, 618 + 0x897c, 0xffffffff, 0x06000100, 619 + 0x9868, 0xffffffff, 0x00000100, 620 + 0x9510, 0xffffffff, 0x00000100, 621 + 0xaf04, 0xffffffff, 0x00000100, 622 + 0xae04, 0xffffffff, 0x00000100, 623 + 0x949c, 0xffffffff, 0x00000100, 624 + 0x802c, 0xffffffff, 0xe0000000, 625 + 0x9160, 0xffffffff, 0x00010000, 626 + 0x9164, 0xffffffff, 0x00030002, 627 + 0x9168, 0xffffffff, 0x00040007, 628 + 0x916c, 0xffffffff, 0x00060005, 629 + 0x9170, 0xffffffff, 0x00090008, 630 + 0x9174, 0xffffffff, 0x00020001, 631 + 0x9178, 0xffffffff, 0x00040003, 632 + 0x917c, 0xffffffff, 0x00000007, 633 + 0x9180, 0xffffffff, 0x00060005, 634 + 0x9184, 0xffffffff, 0x00090008, 635 + 0x9188, 0xffffffff, 0x00030002, 636 + 0x918c, 0xffffffff, 0x00050004, 637 + 0x9190, 0xffffffff, 0x00000008, 638 + 0x9194, 0xffffffff, 0x00070006, 639 + 0x9198, 0xffffffff, 0x000a0009, 640 + 0x919c, 0xffffffff, 0x00040003, 641 + 0x91a0, 0xffffffff, 0x00060005, 642 + 0x91a4, 0xffffffff, 0x00000009, 643 + 0x91a8, 0xffffffff, 0x00080007, 644 + 0x91ac, 0xffffffff, 0x000b000a, 645 + 0x91b0, 0xffffffff, 0x00050004, 646 + 0x91b4, 0xffffffff, 0x00070006, 647 + 0x91b8, 0xffffffff, 0x0008000b, 648 + 0x91bc, 0xffffffff, 0x000a0009, 649 + 0x91c0, 0xffffffff, 0x000d000c, 650 + 0x91c4, 0xffffffff, 0x00060005, 651 + 0x91c8, 0xffffffff, 0x00080007, 652 + 0x91cc, 0xffffffff, 0x0000000b, 653 + 0x91d0, 0xffffffff, 0x000a0009, 654 + 0x91d4, 0xffffffff, 0x000d000c, 655 + 0x9150, 0xffffffff, 0x96940200, 656 + 0x8708, 0xffffffff, 0x00900100, 657 + 0xc478, 0xffffffff, 0x00000080, 658 + 0xc404, 0xffffffff, 0x0020003f, 659 + 0x30, 0xffffffff, 0x0000001c, 660 + 0x34, 0x000f0000, 0x000f0000, 661 + 0x160c, 0xffffffff, 0x00000100, 662 + 0x1024, 0xffffffff, 0x00000100, 663 + 0x102c, 0x00000101, 0x00000000, 664 + 0x20a8, 0xffffffff, 0x00000104, 665 + 0x264c, 0x000c0000, 0x000c0000, 666 + 0x2648, 0x000c0000, 0x000c0000, 667 + 0x55e4, 0xff000fff, 0x00000100, 668 + 0x55e8, 0x00000001, 0x00000001, 669 + 0x2f50, 0x00000001, 0x00000001, 670 + 0x30cc, 0xc0000fff, 0x00000104, 671 + 0xc1e4, 0x00000001, 0x00000001, 672 + 0xd0c0, 0xfffffff0, 0x00000100, 673 + 0xd8c0, 0xfffffff0, 0x00000100 674 + }; 675 + 676 + static u32 verde_pg_init[] = 677 + { 678 + 0x353c, 0xffffffff, 0x40000, 679 + 0x3538, 0xffffffff, 0x200010ff, 680 + 0x353c, 0xffffffff, 0x0, 681 + 0x353c, 0xffffffff, 0x0, 682 + 0x353c, 0xffffffff, 0x0, 683 + 0x353c, 0xffffffff, 0x0, 684 + 0x353c, 0xffffffff, 0x0, 685 + 0x353c, 0xffffffff, 0x7007, 686 + 0x3538, 0xffffffff, 0x300010ff, 687 + 0x353c, 0xffffffff, 0x0, 688 + 0x353c, 0xffffffff, 0x0, 689 + 0x353c, 0xffffffff, 0x0, 690 + 0x353c, 0xffffffff, 0x0, 691 + 0x353c, 0xffffffff, 0x0, 692 + 0x353c, 0xffffffff, 0x400000, 693 + 0x3538, 0xffffffff, 0x100010ff, 694 + 0x353c, 0xffffffff, 0x0, 695 + 0x353c, 0xffffffff, 0x0, 696 + 0x353c, 0xffffffff, 0x0, 697 + 0x353c, 0xffffffff, 0x0, 698 + 0x353c, 0xffffffff, 0x0, 699 + 0x353c, 0xffffffff, 0x120200, 700 + 0x3538, 0xffffffff, 0x500010ff, 701 + 0x353c, 0xffffffff, 0x0, 702 + 0x353c, 0xffffffff, 0x0, 703 + 0x353c, 0xffffffff, 0x0, 704 + 0x353c, 0xffffffff, 0x0, 705 + 0x353c, 0xffffffff, 0x0, 706 + 0x353c, 0xffffffff, 0x1e1e16, 707 + 0x3538, 0xffffffff, 0x600010ff, 708 + 0x353c, 0xffffffff, 0x0, 709 + 0x353c, 0xffffffff, 0x0, 710 + 0x353c, 0xffffffff, 0x0, 711 + 0x353c, 0xffffffff, 0x0, 712 + 0x353c, 0xffffffff, 0x0, 713 + 0x353c, 0xffffffff, 0x171f1e, 714 + 0x3538, 0xffffffff, 0x700010ff, 715 + 0x353c, 0xffffffff, 0x0, 716 + 0x353c, 0xffffffff, 0x0, 717 + 0x353c, 0xffffffff, 0x0, 718 + 0x353c, 0xffffffff, 0x0, 719 + 0x353c, 0xffffffff, 0x0, 720 + 0x353c, 0xffffffff, 0x0, 721 + 0x3538, 0xffffffff, 0x9ff, 722 + 0x3500, 0xffffffff, 0x0, 723 + 0x3504, 0xffffffff, 0x10000800, 724 + 0x3504, 0xffffffff, 0xf, 725 + 0x3504, 0xffffffff, 0xf, 726 + 0x3500, 0xffffffff, 0x4, 727 + 0x3504, 0xffffffff, 0x1000051e, 728 + 0x3504, 0xffffffff, 0xffff, 729 + 0x3504, 0xffffffff, 0xffff, 730 + 0x3500, 0xffffffff, 0x8, 731 + 0x3504, 0xffffffff, 0x80500, 732 + 0x3500, 0xffffffff, 0x12, 733 + 0x3504, 0xffffffff, 0x9050c, 734 + 0x3500, 0xffffffff, 0x1d, 735 + 0x3504, 0xffffffff, 0xb052c, 736 + 0x3500, 0xffffffff, 0x2a, 737 + 0x3504, 0xffffffff, 0x1053e, 738 + 0x3500, 0xffffffff, 0x2d, 739 + 0x3504, 0xffffffff, 0x10546, 740 + 0x3500, 0xffffffff, 0x30, 741 + 0x3504, 0xffffffff, 0xa054e, 742 + 0x3500, 0xffffffff, 0x3c, 743 + 0x3504, 0xffffffff, 0x1055f, 744 + 0x3500, 0xffffffff, 0x3f, 745 + 0x3504, 0xffffffff, 0x10567, 746 + 0x3500, 0xffffffff, 0x42, 747 + 0x3504, 0xffffffff, 0x1056f, 748 + 0x3500, 0xffffffff, 0x45, 749 + 0x3504, 0xffffffff, 0x10572, 750 + 0x3500, 0xffffffff, 0x48, 751 + 0x3504, 0xffffffff, 0x20575, 752 + 0x3500, 0xffffffff, 0x4c, 753 + 0x3504, 0xffffffff, 0x190801, 754 + 0x3500, 0xffffffff, 0x67, 755 + 0x3504, 0xffffffff, 0x1082a, 756 + 0x3500, 0xffffffff, 0x6a, 757 + 0x3504, 0xffffffff, 0x1b082d, 758 + 0x3500, 0xffffffff, 0x87, 759 + 0x3504, 0xffffffff, 0x310851, 760 + 0x3500, 0xffffffff, 0xba, 761 + 0x3504, 0xffffffff, 0x891, 762 + 0x3500, 0xffffffff, 0xbc, 763 + 0x3504, 0xffffffff, 0x893, 764 + 0x3500, 0xffffffff, 0xbe, 765 + 0x3504, 0xffffffff, 0x20895, 766 + 0x3500, 0xffffffff, 0xc2, 767 + 0x3504, 0xffffffff, 0x20899, 768 + 0x3500, 0xffffffff, 0xc6, 769 + 0x3504, 0xffffffff, 0x2089d, 770 + 0x3500, 0xffffffff, 0xca, 771 + 0x3504, 0xffffffff, 0x8a1, 772 + 0x3500, 0xffffffff, 0xcc, 773 + 0x3504, 0xffffffff, 0x8a3, 774 + 0x3500, 0xffffffff, 0xce, 775 + 0x3504, 0xffffffff, 0x308a5, 776 + 0x3500, 0xffffffff, 0xd3, 777 + 0x3504, 0xffffffff, 0x6d08cd, 778 + 0x3500, 0xffffffff, 0x142, 779 + 0x3504, 0xffffffff, 0x2000095a, 780 + 0x3504, 0xffffffff, 0x1, 781 + 0x3500, 0xffffffff, 0x144, 782 + 0x3504, 0xffffffff, 0x301f095b, 783 + 0x3500, 0xffffffff, 0x165, 784 + 0x3504, 0xffffffff, 0xc094d, 785 + 0x3500, 0xffffffff, 0x173, 786 + 0x3504, 0xffffffff, 0xf096d, 787 + 0x3500, 0xffffffff, 0x184, 788 + 0x3504, 0xffffffff, 0x15097f, 789 + 0x3500, 0xffffffff, 0x19b, 790 + 0x3504, 0xffffffff, 0xc0998, 791 + 0x3500, 0xffffffff, 0x1a9, 792 + 0x3504, 0xffffffff, 0x409a7, 793 + 0x3500, 0xffffffff, 0x1af, 794 + 0x3504, 0xffffffff, 0xcdc, 795 + 0x3500, 0xffffffff, 0x1b1, 796 + 0x3504, 0xffffffff, 0x800, 797 + 0x3508, 0xffffffff, 0x6c9b2000, 798 + 0x3510, 0xfc00, 0x2000, 799 + 0x3544, 0xffffffff, 0xfc0, 800 + 0x28d4, 0x00000100, 0x100 801 + }; 802 + 803 + static void si_init_golden_registers(struct radeon_device *rdev) 804 + { 805 + switch (rdev->family) { 806 + case CHIP_TAHITI: 807 + radeon_program_register_sequence(rdev, 808 + tahiti_golden_registers, 809 + (const u32)ARRAY_SIZE(tahiti_golden_registers)); 810 + radeon_program_register_sequence(rdev, 811 + tahiti_golden_rlc_registers, 812 + (const u32)ARRAY_SIZE(tahiti_golden_rlc_registers)); 813 + radeon_program_register_sequence(rdev, 814 + tahiti_mgcg_cgcg_init, 815 + (const u32)ARRAY_SIZE(tahiti_mgcg_cgcg_init)); 816 + radeon_program_register_sequence(rdev, 817 + tahiti_golden_registers2, 818 + (const u32)ARRAY_SIZE(tahiti_golden_registers2)); 819 + break; 820 + case CHIP_PITCAIRN: 821 + radeon_program_register_sequence(rdev, 822 + pitcairn_golden_registers, 823 + (const u32)ARRAY_SIZE(pitcairn_golden_registers)); 824 + radeon_program_register_sequence(rdev, 825 + pitcairn_golden_rlc_registers, 826 + (const u32)ARRAY_SIZE(pitcairn_golden_rlc_registers)); 827 + radeon_program_register_sequence(rdev, 828 + pitcairn_mgcg_cgcg_init, 829 + (const u32)ARRAY_SIZE(pitcairn_mgcg_cgcg_init)); 830 + break; 831 + case CHIP_VERDE: 832 + radeon_program_register_sequence(rdev, 833 + verde_golden_registers, 834 + (const u32)ARRAY_SIZE(verde_golden_registers)); 835 + radeon_program_register_sequence(rdev, 836 + verde_golden_rlc_registers, 837 + (const u32)ARRAY_SIZE(verde_golden_rlc_registers)); 838 + radeon_program_register_sequence(rdev, 839 + verde_mgcg_cgcg_init, 840 + (const u32)ARRAY_SIZE(verde_mgcg_cgcg_init)); 841 + radeon_program_register_sequence(rdev, 842 + verde_pg_init, 843 + (const u32)ARRAY_SIZE(verde_pg_init)); 844 + break; 845 + case CHIP_OLAND: 846 + radeon_program_register_sequence(rdev, 847 + oland_golden_registers, 848 + (const u32)ARRAY_SIZE(oland_golden_registers)); 849 + radeon_program_register_sequence(rdev, 850 + oland_golden_rlc_registers, 851 + (const u32)ARRAY_SIZE(oland_golden_rlc_registers)); 852 + radeon_program_register_sequence(rdev, 853 + oland_mgcg_cgcg_init, 854 + (const u32)ARRAY_SIZE(oland_mgcg_cgcg_init)); 855 + break; 856 + default: 857 + break; 858 + } 859 + } 860 + 73 861 #define PCIE_BUS_CLK 10000 74 862 #define TCLK (PCIE_BUS_CLK / 10) 75 863 ··· 5223 4435 /* post card */ 5224 4436 atom_asic_init(rdev->mode_info.atom_context); 5225 4437 4438 + /* init golden registers */ 4439 + si_init_golden_registers(rdev); 4440 + 5226 4441 rdev->accel_working = true; 5227 4442 r = si_startup(rdev); 5228 4443 if (r) { ··· 5285 4494 DRM_INFO("GPU not posted. posting now...\n"); 5286 4495 atom_asic_init(rdev->mode_info.atom_context); 5287 4496 } 4497 + /* init golden registers */ 4498 + si_init_golden_registers(rdev); 5288 4499 /* Initialize scratch registers */ 5289 4500 si_scratch_init(rdev); 5290 4501 /* Initialize surface registers */