diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2011-01-06 21:19:24 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2011-01-06 23:11:31 -0500 |
commit | adb68fa2f79fbfb49a920c1b69d607a3ab4f985b (patch) | |
tree | c78d354e8c5d0f1f189472c3a0714ae9a911cf78 /drivers/gpu/drm/radeon/evergreen.c | |
parent | c901bcddd09560b78f0a5f8081b86745cc553edf (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.c | 71 |
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: |