diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 302 |
1 files changed, 295 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c index 6776cf756d40..e1dcab98e249 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | |||
@@ -268,7 +268,6 @@ static const u32 fiji_mgcg_cgcg_init[] = | |||
268 | mmCGTT_CP_CLK_CTRL, 0xffffffff, 0x00000100, | 268 | mmCGTT_CP_CLK_CTRL, 0xffffffff, 0x00000100, |
269 | mmCGTT_CPC_CLK_CTRL, 0xffffffff, 0x00000100, | 269 | mmCGTT_CPC_CLK_CTRL, 0xffffffff, 0x00000100, |
270 | mmCGTT_CPF_CLK_CTRL, 0xffffffff, 0x40000100, | 270 | mmCGTT_CPF_CLK_CTRL, 0xffffffff, 0x40000100, |
271 | mmCGTT_DRM_CLK_CTRL0, 0xffffffff, 0x00600100, | ||
272 | mmCGTT_GDS_CLK_CTRL, 0xffffffff, 0x00000100, | 271 | mmCGTT_GDS_CLK_CTRL, 0xffffffff, 0x00000100, |
273 | mmCGTT_IA_CLK_CTRL, 0xffffffff, 0x06000100, | 272 | mmCGTT_IA_CLK_CTRL, 0xffffffff, 0x06000100, |
274 | mmCGTT_PA_CLK_CTRL, 0xffffffff, 0x00000100, | 273 | mmCGTT_PA_CLK_CTRL, 0xffffffff, 0x00000100, |
@@ -296,10 +295,6 @@ static const u32 fiji_mgcg_cgcg_init[] = | |||
296 | mmCGTS_SM_CTRL_REG, 0xffffffff, 0x96e00200, | 295 | mmCGTS_SM_CTRL_REG, 0xffffffff, 0x96e00200, |
297 | mmCP_RB_WPTR_POLL_CNTL, 0xffffffff, 0x00900100, | 296 | mmCP_RB_WPTR_POLL_CNTL, 0xffffffff, 0x00900100, |
298 | mmRLC_CGCG_CGLS_CTRL, 0xffffffff, 0x0020003c, | 297 | mmRLC_CGCG_CGLS_CTRL, 0xffffffff, 0x0020003c, |
299 | mmPCIE_INDEX, 0xffffffff, 0x0140001c, | ||
300 | mmPCIE_DATA, 0x000f0000, 0x00000000, | ||
301 | mmCGTT_DRM_CLK_CTRL0, 0xff000fff, 0x00000100, | ||
302 | mmHDP_XDP_CGTT_BLK_CTRL, 0xc0000fff, 0x00000104, | ||
303 | mmCP_MEM_SLP_CNTL, 0x00000001, 0x00000001, | 298 | mmCP_MEM_SLP_CNTL, 0x00000001, 0x00000001, |
304 | }; | 299 | }; |
305 | 300 | ||
@@ -1000,7 +995,7 @@ static void gfx_v8_0_gpu_early_init(struct amdgpu_device *adev) | |||
1000 | adev->gfx.config.max_cu_per_sh = 16; | 995 | adev->gfx.config.max_cu_per_sh = 16; |
1001 | adev->gfx.config.max_sh_per_se = 1; | 996 | adev->gfx.config.max_sh_per_se = 1; |
1002 | adev->gfx.config.max_backends_per_se = 4; | 997 | adev->gfx.config.max_backends_per_se = 4; |
1003 | adev->gfx.config.max_texture_channel_caches = 8; | 998 | adev->gfx.config.max_texture_channel_caches = 16; |
1004 | adev->gfx.config.max_gprs = 256; | 999 | adev->gfx.config.max_gprs = 256; |
1005 | adev->gfx.config.max_gs_threads = 32; | 1000 | adev->gfx.config.max_gs_threads = 32; |
1006 | adev->gfx.config.max_hw_contexts = 8; | 1001 | adev->gfx.config.max_hw_contexts = 8; |
@@ -1613,6 +1608,296 @@ static void gfx_v8_0_tiling_mode_table_init(struct amdgpu_device *adev) | |||
1613 | WREG32(mmGB_MACROTILE_MODE0 + reg_offset, gb_tile_moden); | 1608 | WREG32(mmGB_MACROTILE_MODE0 + reg_offset, gb_tile_moden); |
1614 | } | 1609 | } |
1615 | case CHIP_FIJI: | 1610 | case CHIP_FIJI: |
1611 | for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++) { | ||
1612 | switch (reg_offset) { | ||
1613 | case 0: | ||
1614 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | | ||
1615 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1616 | TILE_SPLIT(ADDR_SURF_TILE_SPLIT_64B) | | ||
1617 | MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING)); | ||
1618 | break; | ||
1619 | case 1: | ||
1620 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | | ||
1621 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1622 | TILE_SPLIT(ADDR_SURF_TILE_SPLIT_128B) | | ||
1623 | MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING)); | ||
1624 | break; | ||
1625 | case 2: | ||
1626 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | | ||
1627 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1628 | TILE_SPLIT(ADDR_SURF_TILE_SPLIT_256B) | | ||
1629 | MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING)); | ||
1630 | break; | ||
1631 | case 3: | ||
1632 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | | ||
1633 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1634 | TILE_SPLIT(ADDR_SURF_TILE_SPLIT_512B) | | ||
1635 | MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING)); | ||
1636 | break; | ||
1637 | case 4: | ||
1638 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | | ||
1639 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1640 | TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) | | ||
1641 | MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING)); | ||
1642 | break; | ||
1643 | case 5: | ||
1644 | gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) | | ||
1645 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1646 | TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) | | ||
1647 | MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING)); | ||
1648 | break; | ||
1649 | case 6: | ||
1650 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) | | ||
1651 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1652 | TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) | | ||
1653 | MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING)); | ||
1654 | break; | ||
1655 | case 7: | ||
1656 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) | | ||
1657 | PIPE_CONFIG(ADDR_SURF_P4_16x16) | | ||
1658 | TILE_SPLIT(ADDR_SURF_TILE_SPLIT_2KB) | | ||
1659 | MICRO_TILE_MODE_NEW(ADDR_SURF_DEPTH_MICRO_TILING)); | ||
1660 | break; | ||
1661 | case 8: | ||
1662 | gb_tile_moden = (ARRAY_MODE(ARRAY_LINEAR_ALIGNED) | | ||
1663 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16)); | ||
1664 | break; | ||
1665 | case 9: | ||
1666 | gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) | | ||
1667 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1668 | MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) | | ||
1669 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2)); | ||
1670 | break; | ||
1671 | case 10: | ||
1672 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | | ||
1673 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1674 | MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) | | ||
1675 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2)); | ||
1676 | break; | ||
1677 | case 11: | ||
1678 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) | | ||
1679 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1680 | MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) | | ||
1681 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8)); | ||
1682 | break; | ||
1683 | case 12: | ||
1684 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) | | ||
1685 | PIPE_CONFIG(ADDR_SURF_P4_16x16) | | ||
1686 | MICRO_TILE_MODE_NEW(ADDR_SURF_DISPLAY_MICRO_TILING) | | ||
1687 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8)); | ||
1688 | break; | ||
1689 | case 13: | ||
1690 | gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) | | ||
1691 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1692 | MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) | | ||
1693 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2)); | ||
1694 | break; | ||
1695 | case 14: | ||
1696 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | | ||
1697 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1698 | MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) | | ||
1699 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2)); | ||
1700 | break; | ||
1701 | case 15: | ||
1702 | gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_THIN1) | | ||
1703 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1704 | MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) | | ||
1705 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2)); | ||
1706 | break; | ||
1707 | case 16: | ||
1708 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) | | ||
1709 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1710 | MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) | | ||
1711 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8)); | ||
1712 | break; | ||
1713 | case 17: | ||
1714 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) | | ||
1715 | PIPE_CONFIG(ADDR_SURF_P4_16x16) | | ||
1716 | MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) | | ||
1717 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8)); | ||
1718 | break; | ||
1719 | case 18: | ||
1720 | gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THICK) | | ||
1721 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1722 | MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) | | ||
1723 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1)); | ||
1724 | break; | ||
1725 | case 19: | ||
1726 | gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THICK) | | ||
1727 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1728 | MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) | | ||
1729 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1)); | ||
1730 | break; | ||
1731 | case 20: | ||
1732 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THICK) | | ||
1733 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1734 | MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) | | ||
1735 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1)); | ||
1736 | break; | ||
1737 | case 21: | ||
1738 | gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_THICK) | | ||
1739 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1740 | MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) | | ||
1741 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1)); | ||
1742 | break; | ||
1743 | case 22: | ||
1744 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) | | ||
1745 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1746 | MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) | | ||
1747 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1)); | ||
1748 | break; | ||
1749 | case 23: | ||
1750 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THICK) | | ||
1751 | PIPE_CONFIG(ADDR_SURF_P4_16x16) | | ||
1752 | MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) | | ||
1753 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1)); | ||
1754 | break; | ||
1755 | case 24: | ||
1756 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THICK) | | ||
1757 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1758 | MICRO_TILE_MODE_NEW(ADDR_SURF_THIN_MICRO_TILING) | | ||
1759 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1)); | ||
1760 | break; | ||
1761 | case 25: | ||
1762 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_XTHICK) | | ||
1763 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1764 | MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) | | ||
1765 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1)); | ||
1766 | break; | ||
1767 | case 26: | ||
1768 | gb_tile_moden = (ARRAY_MODE(ARRAY_3D_TILED_XTHICK) | | ||
1769 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1770 | MICRO_TILE_MODE_NEW(ADDR_SURF_THICK_MICRO_TILING) | | ||
1771 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_1)); | ||
1772 | break; | ||
1773 | case 27: | ||
1774 | gb_tile_moden = (ARRAY_MODE(ARRAY_1D_TILED_THIN1) | | ||
1775 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1776 | MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) | | ||
1777 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2)); | ||
1778 | break; | ||
1779 | case 28: | ||
1780 | gb_tile_moden = (ARRAY_MODE(ARRAY_2D_TILED_THIN1) | | ||
1781 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1782 | MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) | | ||
1783 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_2)); | ||
1784 | break; | ||
1785 | case 29: | ||
1786 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) | | ||
1787 | PIPE_CONFIG(ADDR_SURF_P16_32x32_16x16) | | ||
1788 | MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) | | ||
1789 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8)); | ||
1790 | break; | ||
1791 | case 30: | ||
1792 | gb_tile_moden = (ARRAY_MODE(ARRAY_PRT_TILED_THIN1) | | ||
1793 | PIPE_CONFIG(ADDR_SURF_P4_16x16) | | ||
1794 | MICRO_TILE_MODE_NEW(ADDR_SURF_ROTATED_MICRO_TILING) | | ||
1795 | SAMPLE_SPLIT(ADDR_SURF_SAMPLE_SPLIT_8)); | ||
1796 | break; | ||
1797 | default: | ||
1798 | gb_tile_moden = 0; | ||
1799 | break; | ||
1800 | } | ||
1801 | adev->gfx.config.tile_mode_array[reg_offset] = gb_tile_moden; | ||
1802 | WREG32(mmGB_TILE_MODE0 + reg_offset, gb_tile_moden); | ||
1803 | } | ||
1804 | for (reg_offset = 0; reg_offset < num_secondary_tile_mode_states; reg_offset++) { | ||
1805 | switch (reg_offset) { | ||
1806 | case 0: | ||
1807 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1808 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | | ||
1809 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) | | ||
1810 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1811 | break; | ||
1812 | case 1: | ||
1813 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1814 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | | ||
1815 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) | | ||
1816 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1817 | break; | ||
1818 | case 2: | ||
1819 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1820 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | | ||
1821 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) | | ||
1822 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1823 | break; | ||
1824 | case 3: | ||
1825 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1826 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | | ||
1827 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) | | ||
1828 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1829 | break; | ||
1830 | case 4: | ||
1831 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1832 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) | | ||
1833 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) | | ||
1834 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1835 | break; | ||
1836 | case 5: | ||
1837 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1838 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | | ||
1839 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) | | ||
1840 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1841 | break; | ||
1842 | case 6: | ||
1843 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1844 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | | ||
1845 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) | | ||
1846 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1847 | break; | ||
1848 | case 8: | ||
1849 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1850 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_8) | | ||
1851 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) | | ||
1852 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1853 | break; | ||
1854 | case 9: | ||
1855 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1856 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_4) | | ||
1857 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) | | ||
1858 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1859 | break; | ||
1860 | case 10: | ||
1861 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1862 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) | | ||
1863 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) | | ||
1864 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1865 | break; | ||
1866 | case 11: | ||
1867 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1868 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | | ||
1869 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) | | ||
1870 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1871 | break; | ||
1872 | case 12: | ||
1873 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1874 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_2) | | ||
1875 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) | | ||
1876 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1877 | break; | ||
1878 | case 13: | ||
1879 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1880 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | | ||
1881 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_2) | | ||
1882 | NUM_BANKS(ADDR_SURF_8_BANK)); | ||
1883 | break; | ||
1884 | case 14: | ||
1885 | gb_tile_moden = (BANK_WIDTH(ADDR_SURF_BANK_WIDTH_1) | | ||
1886 | BANK_HEIGHT(ADDR_SURF_BANK_HEIGHT_1) | | ||
1887 | MACRO_TILE_ASPECT(ADDR_SURF_MACRO_ASPECT_1) | | ||
1888 | NUM_BANKS(ADDR_SURF_4_BANK)); | ||
1889 | break; | ||
1890 | case 7: | ||
1891 | /* unused idx */ | ||
1892 | continue; | ||
1893 | default: | ||
1894 | gb_tile_moden = 0; | ||
1895 | break; | ||
1896 | } | ||
1897 | adev->gfx.config.macrotile_mode_array[reg_offset] = gb_tile_moden; | ||
1898 | WREG32(mmGB_MACROTILE_MODE0 + reg_offset, gb_tile_moden); | ||
1899 | } | ||
1900 | break; | ||
1616 | case CHIP_TONGA: | 1901 | case CHIP_TONGA: |
1617 | for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++) { | 1902 | for (reg_offset = 0; reg_offset < num_tile_mode_states; reg_offset++) { |
1618 | switch (reg_offset) { | 1903 | switch (reg_offset) { |
@@ -2971,10 +3256,13 @@ static int gfx_v8_0_cp_gfx_start(struct amdgpu_device *adev) | |||
2971 | amdgpu_ring_write(ring, mmPA_SC_RASTER_CONFIG - PACKET3_SET_CONTEXT_REG_START); | 3256 | amdgpu_ring_write(ring, mmPA_SC_RASTER_CONFIG - PACKET3_SET_CONTEXT_REG_START); |
2972 | switch (adev->asic_type) { | 3257 | switch (adev->asic_type) { |
2973 | case CHIP_TONGA: | 3258 | case CHIP_TONGA: |
2974 | case CHIP_FIJI: | ||
2975 | amdgpu_ring_write(ring, 0x16000012); | 3259 | amdgpu_ring_write(ring, 0x16000012); |
2976 | amdgpu_ring_write(ring, 0x0000002A); | 3260 | amdgpu_ring_write(ring, 0x0000002A); |
2977 | break; | 3261 | break; |
3262 | case CHIP_FIJI: | ||
3263 | amdgpu_ring_write(ring, 0x3a00161a); | ||
3264 | amdgpu_ring_write(ring, 0x0000002e); | ||
3265 | break; | ||
2978 | case CHIP_TOPAZ: | 3266 | case CHIP_TOPAZ: |
2979 | case CHIP_CARRIZO: | 3267 | case CHIP_CARRIZO: |
2980 | amdgpu_ring_write(ring, 0x00000002); | 3268 | amdgpu_ring_write(ring, 0x00000002); |