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 | |
| 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')
| -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 9c990c3f877..6a73867cf25 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: |
