diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2013-08-07 19:20:14 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-11-08 12:33:41 -0500 |
commit | 8efff33742f5e2ed6184c2dacace5a1fe695909c (patch) | |
tree | 1bfc663a8bb3254ce3bf2f9101e5d7cebbe2b5d5 | |
parent | 21e438af6413496a970e491cb4b3e7449f452a10 (diff) |
drm/radeon: add golden register settings for hawaii
The golden register settings are optimal settings for
certain registers from the hardware team.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/radeon/cik.c | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c index b3b2da671c6c..6ca1f87af87a 100644 --- a/drivers/gpu/drm/radeon/cik.c +++ b/drivers/gpu/drm/radeon/cik.c | |||
@@ -1297,6 +1297,171 @@ static const u32 kalindi_mgcg_cgcg_init[] = | |||
1297 | 0xd80c, 0xff000ff0, 0x00000100 | 1297 | 0xd80c, 0xff000ff0, 0x00000100 |
1298 | }; | 1298 | }; |
1299 | 1299 | ||
1300 | static const u32 hawaii_golden_spm_registers[] = | ||
1301 | { | ||
1302 | 0x30800, 0xe0ffffff, 0xe0000000 | ||
1303 | }; | ||
1304 | |||
1305 | static const u32 hawaii_golden_common_registers[] = | ||
1306 | { | ||
1307 | 0x30800, 0xffffffff, 0xe0000000, | ||
1308 | 0x28350, 0xffffffff, 0x3a00161a, | ||
1309 | 0x28354, 0xffffffff, 0x0000002e, | ||
1310 | 0x9a10, 0xffffffff, 0x00018208, | ||
1311 | 0x98f8, 0xffffffff, 0x12011003 | ||
1312 | }; | ||
1313 | |||
1314 | static const u32 hawaii_golden_registers[] = | ||
1315 | { | ||
1316 | 0x3354, 0x00000333, 0x00000333, | ||
1317 | 0x9a10, 0x00010000, 0x00058208, | ||
1318 | 0x9830, 0xffffffff, 0x00000000, | ||
1319 | 0x9834, 0xf00fffff, 0x00000400, | ||
1320 | 0x9838, 0x0002021c, 0x00020200, | ||
1321 | 0xc78, 0x00000080, 0x00000000, | ||
1322 | 0x5bb0, 0x000000f0, 0x00000070, | ||
1323 | 0x5bc0, 0xf0311fff, 0x80300000, | ||
1324 | 0x350c, 0x00810000, 0x408af000, | ||
1325 | 0x7030, 0x31000111, 0x00000011, | ||
1326 | 0x2f48, 0x73773777, 0x12010001, | ||
1327 | 0x2120, 0x0000007f, 0x0000001b, | ||
1328 | 0x21dc, 0x00007fb6, 0x00002191, | ||
1329 | 0x3628, 0x0000003f, 0x0000000a, | ||
1330 | 0x362c, 0x0000003f, 0x0000000a, | ||
1331 | 0x2ae4, 0x00073ffe, 0x000022a2, | ||
1332 | 0x240c, 0x000007ff, 0x00000000, | ||
1333 | 0x8bf0, 0x00002001, 0x00000001, | ||
1334 | 0x8b24, 0xffffffff, 0x00ffffff, | ||
1335 | 0x30a04, 0x0000ff0f, 0x00000000, | ||
1336 | 0x28a4c, 0x07ffffff, 0x06000000, | ||
1337 | 0x3e78, 0x00000001, 0x00000002, | ||
1338 | 0xc768, 0x00000008, 0x00000008, | ||
1339 | 0xc770, 0x00000f00, 0x00000800, | ||
1340 | 0xc774, 0x00000f00, 0x00000800, | ||
1341 | 0xc798, 0x00ffffff, 0x00ff7fbf, | ||
1342 | 0xc79c, 0x00ffffff, 0x00ff7faf, | ||
1343 | 0x8c00, 0x000000ff, 0x00000800, | ||
1344 | 0xe40, 0x00001fff, 0x00001fff, | ||
1345 | 0x9060, 0x0000007f, 0x00000020, | ||
1346 | 0x9508, 0x00010000, 0x00010000, | ||
1347 | 0xae00, 0x00100000, 0x000ff07c, | ||
1348 | 0xac14, 0x000003ff, 0x0000000f, | ||
1349 | 0xac10, 0xffffffff, 0x7564fdec, | ||
1350 | 0xac0c, 0xffffffff, 0x3120b9a8, | ||
1351 | 0xac08, 0x20000000, 0x0f9c0000 | ||
1352 | }; | ||
1353 | |||
1354 | static const u32 hawaii_mgcg_cgcg_init[] = | ||
1355 | { | ||
1356 | 0xc420, 0xffffffff, 0xfffffffd, | ||
1357 | 0x30800, 0xffffffff, 0xe0000000, | ||
1358 | 0x3c2a0, 0xffffffff, 0x00000100, | ||
1359 | 0x3c208, 0xffffffff, 0x00000100, | ||
1360 | 0x3c2c0, 0xffffffff, 0x00000100, | ||
1361 | 0x3c2c8, 0xffffffff, 0x00000100, | ||
1362 | 0x3c2c4, 0xffffffff, 0x00000100, | ||
1363 | 0x55e4, 0xffffffff, 0x00200100, | ||
1364 | 0x3c280, 0xffffffff, 0x00000100, | ||
1365 | 0x3c214, 0xffffffff, 0x06000100, | ||
1366 | 0x3c220, 0xffffffff, 0x00000100, | ||
1367 | 0x3c218, 0xffffffff, 0x06000100, | ||
1368 | 0x3c204, 0xffffffff, 0x00000100, | ||
1369 | 0x3c2e0, 0xffffffff, 0x00000100, | ||
1370 | 0x3c224, 0xffffffff, 0x00000100, | ||
1371 | 0x3c200, 0xffffffff, 0x00000100, | ||
1372 | 0x3c230, 0xffffffff, 0x00000100, | ||
1373 | 0x3c234, 0xffffffff, 0x00000100, | ||
1374 | 0x3c250, 0xffffffff, 0x00000100, | ||
1375 | 0x3c254, 0xffffffff, 0x00000100, | ||
1376 | 0x3c258, 0xffffffff, 0x00000100, | ||
1377 | 0x3c25c, 0xffffffff, 0x00000100, | ||
1378 | 0x3c260, 0xffffffff, 0x00000100, | ||
1379 | 0x3c27c, 0xffffffff, 0x00000100, | ||
1380 | 0x3c278, 0xffffffff, 0x00000100, | ||
1381 | 0x3c210, 0xffffffff, 0x06000100, | ||
1382 | 0x3c290, 0xffffffff, 0x00000100, | ||
1383 | 0x3c274, 0xffffffff, 0x00000100, | ||
1384 | 0x3c2b4, 0xffffffff, 0x00000100, | ||
1385 | 0x3c2b0, 0xffffffff, 0x00000100, | ||
1386 | 0x3c270, 0xffffffff, 0x00000100, | ||
1387 | 0x30800, 0xffffffff, 0xe0000000, | ||
1388 | 0x3c020, 0xffffffff, 0x00010000, | ||
1389 | 0x3c024, 0xffffffff, 0x00030002, | ||
1390 | 0x3c028, 0xffffffff, 0x00040007, | ||
1391 | 0x3c02c, 0xffffffff, 0x00060005, | ||
1392 | 0x3c030, 0xffffffff, 0x00090008, | ||
1393 | 0x3c034, 0xffffffff, 0x00010000, | ||
1394 | 0x3c038, 0xffffffff, 0x00030002, | ||
1395 | 0x3c03c, 0xffffffff, 0x00040007, | ||
1396 | 0x3c040, 0xffffffff, 0x00060005, | ||
1397 | 0x3c044, 0xffffffff, 0x00090008, | ||
1398 | 0x3c048, 0xffffffff, 0x00010000, | ||
1399 | 0x3c04c, 0xffffffff, 0x00030002, | ||
1400 | 0x3c050, 0xffffffff, 0x00040007, | ||
1401 | 0x3c054, 0xffffffff, 0x00060005, | ||
1402 | 0x3c058, 0xffffffff, 0x00090008, | ||
1403 | 0x3c05c, 0xffffffff, 0x00010000, | ||
1404 | 0x3c060, 0xffffffff, 0x00030002, | ||
1405 | 0x3c064, 0xffffffff, 0x00040007, | ||
1406 | 0x3c068, 0xffffffff, 0x00060005, | ||
1407 | 0x3c06c, 0xffffffff, 0x00090008, | ||
1408 | 0x3c070, 0xffffffff, 0x00010000, | ||
1409 | 0x3c074, 0xffffffff, 0x00030002, | ||
1410 | 0x3c078, 0xffffffff, 0x00040007, | ||
1411 | 0x3c07c, 0xffffffff, 0x00060005, | ||
1412 | 0x3c080, 0xffffffff, 0x00090008, | ||
1413 | 0x3c084, 0xffffffff, 0x00010000, | ||
1414 | 0x3c088, 0xffffffff, 0x00030002, | ||
1415 | 0x3c08c, 0xffffffff, 0x00040007, | ||
1416 | 0x3c090, 0xffffffff, 0x00060005, | ||
1417 | 0x3c094, 0xffffffff, 0x00090008, | ||
1418 | 0x3c098, 0xffffffff, 0x00010000, | ||
1419 | 0x3c09c, 0xffffffff, 0x00030002, | ||
1420 | 0x3c0a0, 0xffffffff, 0x00040007, | ||
1421 | 0x3c0a4, 0xffffffff, 0x00060005, | ||
1422 | 0x3c0a8, 0xffffffff, 0x00090008, | ||
1423 | 0x3c0ac, 0xffffffff, 0x00010000, | ||
1424 | 0x3c0b0, 0xffffffff, 0x00030002, | ||
1425 | 0x3c0b4, 0xffffffff, 0x00040007, | ||
1426 | 0x3c0b8, 0xffffffff, 0x00060005, | ||
1427 | 0x3c0bc, 0xffffffff, 0x00090008, | ||
1428 | 0x3c0c0, 0xffffffff, 0x00010000, | ||
1429 | 0x3c0c4, 0xffffffff, 0x00030002, | ||
1430 | 0x3c0c8, 0xffffffff, 0x00040007, | ||
1431 | 0x3c0cc, 0xffffffff, 0x00060005, | ||
1432 | 0x3c0d0, 0xffffffff, 0x00090008, | ||
1433 | 0x3c0d4, 0xffffffff, 0x00010000, | ||
1434 | 0x3c0d8, 0xffffffff, 0x00030002, | ||
1435 | 0x3c0dc, 0xffffffff, 0x00040007, | ||
1436 | 0x3c0e0, 0xffffffff, 0x00060005, | ||
1437 | 0x3c0e4, 0xffffffff, 0x00090008, | ||
1438 | 0x3c0e8, 0xffffffff, 0x00010000, | ||
1439 | 0x3c0ec, 0xffffffff, 0x00030002, | ||
1440 | 0x3c0f0, 0xffffffff, 0x00040007, | ||
1441 | 0x3c0f4, 0xffffffff, 0x00060005, | ||
1442 | 0x3c0f8, 0xffffffff, 0x00090008, | ||
1443 | 0xc318, 0xffffffff, 0x00020200, | ||
1444 | 0x3350, 0xffffffff, 0x00000200, | ||
1445 | 0x15c0, 0xffffffff, 0x00000400, | ||
1446 | 0x55e8, 0xffffffff, 0x00000000, | ||
1447 | 0x2f50, 0xffffffff, 0x00000902, | ||
1448 | 0x3c000, 0xffffffff, 0x96940200, | ||
1449 | 0x8708, 0xffffffff, 0x00900100, | ||
1450 | 0xc424, 0xffffffff, 0x0020003f, | ||
1451 | 0x38, 0xffffffff, 0x0140001c, | ||
1452 | 0x3c, 0x000f0000, 0x000f0000, | ||
1453 | 0x220, 0xffffffff, 0xc060000c, | ||
1454 | 0x224, 0xc0000fff, 0x00000100, | ||
1455 | 0xf90, 0xffffffff, 0x00000100, | ||
1456 | 0xf98, 0x00000101, 0x00000000, | ||
1457 | 0x20a8, 0xffffffff, 0x00000104, | ||
1458 | 0x55e4, 0xff000fff, 0x00000100, | ||
1459 | 0x30cc, 0xc0000fff, 0x00000104, | ||
1460 | 0xc1e4, 0x00000001, 0x00000001, | ||
1461 | 0xd00c, 0xff000ff0, 0x00000100, | ||
1462 | 0xd80c, 0xff000ff0, 0x00000100 | ||
1463 | }; | ||
1464 | |||
1300 | static void cik_init_golden_registers(struct radeon_device *rdev) | 1465 | static void cik_init_golden_registers(struct radeon_device *rdev) |
1301 | { | 1466 | { |
1302 | switch (rdev->family) { | 1467 | switch (rdev->family) { |
@@ -1342,6 +1507,20 @@ static void cik_init_golden_registers(struct radeon_device *rdev) | |||
1342 | spectre_golden_spm_registers, | 1507 | spectre_golden_spm_registers, |
1343 | (const u32)ARRAY_SIZE(spectre_golden_spm_registers)); | 1508 | (const u32)ARRAY_SIZE(spectre_golden_spm_registers)); |
1344 | break; | 1509 | break; |
1510 | case CHIP_HAWAII: | ||
1511 | radeon_program_register_sequence(rdev, | ||
1512 | hawaii_mgcg_cgcg_init, | ||
1513 | (const u32)ARRAY_SIZE(hawaii_mgcg_cgcg_init)); | ||
1514 | radeon_program_register_sequence(rdev, | ||
1515 | hawaii_golden_registers, | ||
1516 | (const u32)ARRAY_SIZE(hawaii_golden_registers)); | ||
1517 | radeon_program_register_sequence(rdev, | ||
1518 | hawaii_golden_common_registers, | ||
1519 | (const u32)ARRAY_SIZE(hawaii_golden_common_registers)); | ||
1520 | radeon_program_register_sequence(rdev, | ||
1521 | hawaii_golden_spm_registers, | ||
1522 | (const u32)ARRAY_SIZE(hawaii_golden_spm_registers)); | ||
1523 | break; | ||
1345 | default: | 1524 | default: |
1346 | break; | 1525 | break; |
1347 | } | 1526 | } |