aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/evergreen.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2011-01-06 21:19:24 -0500
committerDave Airlie <airlied@redhat.com>2011-01-06 23:11:31 -0500
commitadb68fa2f79fbfb49a920c1b69d607a3ab4f985b (patch)
treec78d354e8c5d0f1f189472c3a0714ae9a911cf78 /drivers/gpu/drm/radeon/evergreen.c
parentc901bcddd09560b78f0a5f8081b86745cc553edf (diff)
drm/radeon/kms: fill gpu init for NI asics
Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/evergreen.c')
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c71
1 files changed, 71 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 9c990c3f877f..6a73867cf25c 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -1384,11 +1384,14 @@ static u32 evergreen_get_tile_pipe_to_backend_map(struct radeon_device *rdev,
1384 case CHIP_CEDAR: 1384 case CHIP_CEDAR:
1385 case CHIP_REDWOOD: 1385 case CHIP_REDWOOD:
1386 case CHIP_PALM: 1386 case CHIP_PALM:
1387 case CHIP_TURKS:
1388 case CHIP_CAICOS:
1387 force_no_swizzle = false; 1389 force_no_swizzle = false;
1388 break; 1390 break;
1389 case CHIP_CYPRESS: 1391 case CHIP_CYPRESS:
1390 case CHIP_HEMLOCK: 1392 case CHIP_HEMLOCK:
1391 case CHIP_JUNIPER: 1393 case CHIP_JUNIPER:
1394 case CHIP_BARTS:
1392 default: 1395 default:
1393 force_no_swizzle = true; 1396 force_no_swizzle = true;
1394 break; 1397 break;
@@ -1502,6 +1505,7 @@ static void evergreen_program_channel_remap(struct radeon_device *rdev)
1502 switch (rdev->family) { 1505 switch (rdev->family) {
1503 case CHIP_HEMLOCK: 1506 case CHIP_HEMLOCK:
1504 case CHIP_CYPRESS: 1507 case CHIP_CYPRESS:
1508 case CHIP_BARTS:
1505 tcp_chan_steer_lo = 0x54763210; 1509 tcp_chan_steer_lo = 0x54763210;
1506 tcp_chan_steer_hi = 0x0000ba98; 1510 tcp_chan_steer_hi = 0x0000ba98;
1507 break; 1511 break;
@@ -1509,6 +1513,8 @@ static void evergreen_program_channel_remap(struct radeon_device *rdev)
1509 case CHIP_REDWOOD: 1513 case CHIP_REDWOOD:
1510 case CHIP_CEDAR: 1514 case CHIP_CEDAR:
1511 case CHIP_PALM: 1515 case CHIP_PALM:
1516 case CHIP_TURKS:
1517 case CHIP_CAICOS:
1512 default: 1518 default:
1513 tcp_chan_steer_lo = 0x76543210; 1519 tcp_chan_steer_lo = 0x76543210;
1514 tcp_chan_steer_hi = 0x0000ba98; 1520 tcp_chan_steer_hi = 0x0000ba98;
@@ -1652,6 +1658,69 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
1652 rdev->config.evergreen.sc_hiz_tile_fifo_size = 0x30; 1658 rdev->config.evergreen.sc_hiz_tile_fifo_size = 0x30;
1653 rdev->config.evergreen.sc_earlyz_tile_fifo_size = 0x130; 1659 rdev->config.evergreen.sc_earlyz_tile_fifo_size = 0x130;
1654 break; 1660 break;
1661 case CHIP_BARTS:
1662 rdev->config.evergreen.num_ses = 2;
1663 rdev->config.evergreen.max_pipes = 4;
1664 rdev->config.evergreen.max_tile_pipes = 8;
1665 rdev->config.evergreen.max_simds = 7;
1666 rdev->config.evergreen.max_backends = 4 * rdev->config.evergreen.num_ses;
1667 rdev->config.evergreen.max_gprs = 256;
1668 rdev->config.evergreen.max_threads = 248;
1669 rdev->config.evergreen.max_gs_threads = 32;
1670 rdev->config.evergreen.max_stack_entries = 512;
1671 rdev->config.evergreen.sx_num_of_sets = 4;
1672 rdev->config.evergreen.sx_max_export_size = 256;
1673 rdev->config.evergreen.sx_max_export_pos_size = 64;
1674 rdev->config.evergreen.sx_max_export_smx_size = 192;
1675 rdev->config.evergreen.max_hw_contexts = 8;
1676 rdev->config.evergreen.sq_num_cf_insts = 2;
1677
1678 rdev->config.evergreen.sc_prim_fifo_size = 0x100;
1679 rdev->config.evergreen.sc_hiz_tile_fifo_size = 0x30;
1680 rdev->config.evergreen.sc_earlyz_tile_fifo_size = 0x130;
1681 break;
1682 case CHIP_TURKS:
1683 rdev->config.evergreen.num_ses = 1;
1684 rdev->config.evergreen.max_pipes = 4;
1685 rdev->config.evergreen.max_tile_pipes = 4;
1686 rdev->config.evergreen.max_simds = 6;
1687 rdev->config.evergreen.max_backends = 2 * rdev->config.evergreen.num_ses;
1688 rdev->config.evergreen.max_gprs = 256;
1689 rdev->config.evergreen.max_threads = 248;
1690 rdev->config.evergreen.max_gs_threads = 32;
1691 rdev->config.evergreen.max_stack_entries = 256;
1692 rdev->config.evergreen.sx_num_of_sets = 4;
1693 rdev->config.evergreen.sx_max_export_size = 256;
1694 rdev->config.evergreen.sx_max_export_pos_size = 64;
1695 rdev->config.evergreen.sx_max_export_smx_size = 192;
1696 rdev->config.evergreen.max_hw_contexts = 8;
1697 rdev->config.evergreen.sq_num_cf_insts = 2;
1698
1699 rdev->config.evergreen.sc_prim_fifo_size = 0x100;
1700 rdev->config.evergreen.sc_hiz_tile_fifo_size = 0x30;
1701 rdev->config.evergreen.sc_earlyz_tile_fifo_size = 0x130;
1702 break;
1703 case CHIP_CAICOS:
1704 rdev->config.evergreen.num_ses = 1;
1705 rdev->config.evergreen.max_pipes = 4;
1706 rdev->config.evergreen.max_tile_pipes = 2;
1707 rdev->config.evergreen.max_simds = 2;
1708 rdev->config.evergreen.max_backends = 1 * rdev->config.evergreen.num_ses;
1709 rdev->config.evergreen.max_gprs = 256;
1710 rdev->config.evergreen.max_threads = 192;
1711 rdev->config.evergreen.max_gs_threads = 16;
1712 rdev->config.evergreen.max_stack_entries = 256;
1713 rdev->config.evergreen.sx_num_of_sets = 4;
1714 rdev->config.evergreen.sx_max_export_size = 128;
1715 rdev->config.evergreen.sx_max_export_pos_size = 32;
1716 rdev->config.evergreen.sx_max_export_smx_size = 96;
1717 rdev->config.evergreen.max_hw_contexts = 4;
1718 rdev->config.evergreen.sq_num_cf_insts = 1;
1719
1720 rdev->config.evergreen.sc_prim_fifo_size = 0x40;
1721 rdev->config.evergreen.sc_hiz_tile_fifo_size = 0x30;
1722 rdev->config.evergreen.sc_earlyz_tile_fifo_size = 0x130;
1723 break;
1655 } 1724 }
1656 1725
1657 /* Initialize HDP */ 1726 /* Initialize HDP */
@@ -1931,6 +2000,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
1931 switch (rdev->family) { 2000 switch (rdev->family) {
1932 case CHIP_CEDAR: 2001 case CHIP_CEDAR:
1933 case CHIP_PALM: 2002 case CHIP_PALM:
2003 case CHIP_CAICOS:
1934 /* no vertex cache */ 2004 /* no vertex cache */
1935 sq_config &= ~VC_ENABLE; 2005 sq_config &= ~VC_ENABLE;
1936 break; 2006 break;
@@ -1990,6 +2060,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
1990 switch (rdev->family) { 2060 switch (rdev->family) {
1991 case CHIP_CEDAR: 2061 case CHIP_CEDAR:
1992 case CHIP_PALM: 2062 case CHIP_PALM:
2063 case CHIP_CAICOS:
1993 vgt_cache_invalidation = CACHE_INVALIDATION(TC_ONLY); 2064 vgt_cache_invalidation = CACHE_INVALIDATION(TC_ONLY);
1994 break; 2065 break;
1995 default: 2066 default: