diff options
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/cik.c | 341 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/vi.c | 282 |
2 files changed, 623 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c index 4efc901f658c..edcc14287d2d 100644 --- a/drivers/gpu/drm/amd/amdgpu/cik.c +++ b/drivers/gpu/drm/amd/amdgpu/cik.c | |||
@@ -67,6 +67,7 @@ | |||
67 | 67 | ||
68 | #include "amdgpu_amdkfd.h" | 68 | #include "amdgpu_amdkfd.h" |
69 | #include "amdgpu_powerplay.h" | 69 | #include "amdgpu_powerplay.h" |
70 | #include "dce_virtual.h" | ||
70 | 71 | ||
71 | /* | 72 | /* |
72 | * Indirect registers accessor | 73 | * Indirect registers accessor |
@@ -1708,6 +1709,74 @@ static const struct amdgpu_ip_block_version bonaire_ip_blocks[] = | |||
1708 | }, | 1709 | }, |
1709 | }; | 1710 | }; |
1710 | 1711 | ||
1712 | static const struct amdgpu_ip_block_version bonaire_ip_blocks_vd[] = | ||
1713 | { | ||
1714 | /* ORDER MATTERS! */ | ||
1715 | { | ||
1716 | .type = AMD_IP_BLOCK_TYPE_COMMON, | ||
1717 | .major = 1, | ||
1718 | .minor = 0, | ||
1719 | .rev = 0, | ||
1720 | .funcs = &cik_common_ip_funcs, | ||
1721 | }, | ||
1722 | { | ||
1723 | .type = AMD_IP_BLOCK_TYPE_GMC, | ||
1724 | .major = 7, | ||
1725 | .minor = 0, | ||
1726 | .rev = 0, | ||
1727 | .funcs = &gmc_v7_0_ip_funcs, | ||
1728 | }, | ||
1729 | { | ||
1730 | .type = AMD_IP_BLOCK_TYPE_IH, | ||
1731 | .major = 2, | ||
1732 | .minor = 0, | ||
1733 | .rev = 0, | ||
1734 | .funcs = &cik_ih_ip_funcs, | ||
1735 | }, | ||
1736 | { | ||
1737 | .type = AMD_IP_BLOCK_TYPE_SMC, | ||
1738 | .major = 7, | ||
1739 | .minor = 0, | ||
1740 | .rev = 0, | ||
1741 | .funcs = &amdgpu_pp_ip_funcs, | ||
1742 | }, | ||
1743 | { | ||
1744 | .type = AMD_IP_BLOCK_TYPE_DCE, | ||
1745 | .major = 8, | ||
1746 | .minor = 2, | ||
1747 | .rev = 0, | ||
1748 | .funcs = &dce_virtual_ip_funcs, | ||
1749 | }, | ||
1750 | { | ||
1751 | .type = AMD_IP_BLOCK_TYPE_GFX, | ||
1752 | .major = 7, | ||
1753 | .minor = 2, | ||
1754 | .rev = 0, | ||
1755 | .funcs = &gfx_v7_0_ip_funcs, | ||
1756 | }, | ||
1757 | { | ||
1758 | .type = AMD_IP_BLOCK_TYPE_SDMA, | ||
1759 | .major = 2, | ||
1760 | .minor = 0, | ||
1761 | .rev = 0, | ||
1762 | .funcs = &cik_sdma_ip_funcs, | ||
1763 | }, | ||
1764 | { | ||
1765 | .type = AMD_IP_BLOCK_TYPE_UVD, | ||
1766 | .major = 4, | ||
1767 | .minor = 2, | ||
1768 | .rev = 0, | ||
1769 | .funcs = &uvd_v4_2_ip_funcs, | ||
1770 | }, | ||
1771 | { | ||
1772 | .type = AMD_IP_BLOCK_TYPE_VCE, | ||
1773 | .major = 2, | ||
1774 | .minor = 0, | ||
1775 | .rev = 0, | ||
1776 | .funcs = &vce_v2_0_ip_funcs, | ||
1777 | }, | ||
1778 | }; | ||
1779 | |||
1711 | static const struct amdgpu_ip_block_version hawaii_ip_blocks[] = | 1780 | static const struct amdgpu_ip_block_version hawaii_ip_blocks[] = |
1712 | { | 1781 | { |
1713 | /* ORDER MATTERS! */ | 1782 | /* ORDER MATTERS! */ |
@@ -1776,6 +1845,74 @@ static const struct amdgpu_ip_block_version hawaii_ip_blocks[] = | |||
1776 | }, | 1845 | }, |
1777 | }; | 1846 | }; |
1778 | 1847 | ||
1848 | static const struct amdgpu_ip_block_version hawaii_ip_blocks_vd[] = | ||
1849 | { | ||
1850 | /* ORDER MATTERS! */ | ||
1851 | { | ||
1852 | .type = AMD_IP_BLOCK_TYPE_COMMON, | ||
1853 | .major = 1, | ||
1854 | .minor = 0, | ||
1855 | .rev = 0, | ||
1856 | .funcs = &cik_common_ip_funcs, | ||
1857 | }, | ||
1858 | { | ||
1859 | .type = AMD_IP_BLOCK_TYPE_GMC, | ||
1860 | .major = 7, | ||
1861 | .minor = 0, | ||
1862 | .rev = 0, | ||
1863 | .funcs = &gmc_v7_0_ip_funcs, | ||
1864 | }, | ||
1865 | { | ||
1866 | .type = AMD_IP_BLOCK_TYPE_IH, | ||
1867 | .major = 2, | ||
1868 | .minor = 0, | ||
1869 | .rev = 0, | ||
1870 | .funcs = &cik_ih_ip_funcs, | ||
1871 | }, | ||
1872 | { | ||
1873 | .type = AMD_IP_BLOCK_TYPE_SMC, | ||
1874 | .major = 7, | ||
1875 | .minor = 0, | ||
1876 | .rev = 0, | ||
1877 | .funcs = &amdgpu_pp_ip_funcs, | ||
1878 | }, | ||
1879 | { | ||
1880 | .type = AMD_IP_BLOCK_TYPE_DCE, | ||
1881 | .major = 8, | ||
1882 | .minor = 5, | ||
1883 | .rev = 0, | ||
1884 | .funcs = &dce_virtual_ip_funcs, | ||
1885 | }, | ||
1886 | { | ||
1887 | .type = AMD_IP_BLOCK_TYPE_GFX, | ||
1888 | .major = 7, | ||
1889 | .minor = 3, | ||
1890 | .rev = 0, | ||
1891 | .funcs = &gfx_v7_0_ip_funcs, | ||
1892 | }, | ||
1893 | { | ||
1894 | .type = AMD_IP_BLOCK_TYPE_SDMA, | ||
1895 | .major = 2, | ||
1896 | .minor = 0, | ||
1897 | .rev = 0, | ||
1898 | .funcs = &cik_sdma_ip_funcs, | ||
1899 | }, | ||
1900 | { | ||
1901 | .type = AMD_IP_BLOCK_TYPE_UVD, | ||
1902 | .major = 4, | ||
1903 | .minor = 2, | ||
1904 | .rev = 0, | ||
1905 | .funcs = &uvd_v4_2_ip_funcs, | ||
1906 | }, | ||
1907 | { | ||
1908 | .type = AMD_IP_BLOCK_TYPE_VCE, | ||
1909 | .major = 2, | ||
1910 | .minor = 0, | ||
1911 | .rev = 0, | ||
1912 | .funcs = &vce_v2_0_ip_funcs, | ||
1913 | }, | ||
1914 | }; | ||
1915 | |||
1779 | static const struct amdgpu_ip_block_version kabini_ip_blocks[] = | 1916 | static const struct amdgpu_ip_block_version kabini_ip_blocks[] = |
1780 | { | 1917 | { |
1781 | /* ORDER MATTERS! */ | 1918 | /* ORDER MATTERS! */ |
@@ -1844,6 +1981,74 @@ static const struct amdgpu_ip_block_version kabini_ip_blocks[] = | |||
1844 | }, | 1981 | }, |
1845 | }; | 1982 | }; |
1846 | 1983 | ||
1984 | static const struct amdgpu_ip_block_version kabini_ip_blocks_vd[] = | ||
1985 | { | ||
1986 | /* ORDER MATTERS! */ | ||
1987 | { | ||
1988 | .type = AMD_IP_BLOCK_TYPE_COMMON, | ||
1989 | .major = 1, | ||
1990 | .minor = 0, | ||
1991 | .rev = 0, | ||
1992 | .funcs = &cik_common_ip_funcs, | ||
1993 | }, | ||
1994 | { | ||
1995 | .type = AMD_IP_BLOCK_TYPE_GMC, | ||
1996 | .major = 7, | ||
1997 | .minor = 0, | ||
1998 | .rev = 0, | ||
1999 | .funcs = &gmc_v7_0_ip_funcs, | ||
2000 | }, | ||
2001 | { | ||
2002 | .type = AMD_IP_BLOCK_TYPE_IH, | ||
2003 | .major = 2, | ||
2004 | .minor = 0, | ||
2005 | .rev = 0, | ||
2006 | .funcs = &cik_ih_ip_funcs, | ||
2007 | }, | ||
2008 | { | ||
2009 | .type = AMD_IP_BLOCK_TYPE_SMC, | ||
2010 | .major = 7, | ||
2011 | .minor = 0, | ||
2012 | .rev = 0, | ||
2013 | .funcs = &amdgpu_pp_ip_funcs, | ||
2014 | }, | ||
2015 | { | ||
2016 | .type = AMD_IP_BLOCK_TYPE_DCE, | ||
2017 | .major = 8, | ||
2018 | .minor = 3, | ||
2019 | .rev = 0, | ||
2020 | .funcs = &dce_virtual_ip_funcs, | ||
2021 | }, | ||
2022 | { | ||
2023 | .type = AMD_IP_BLOCK_TYPE_GFX, | ||
2024 | .major = 7, | ||
2025 | .minor = 2, | ||
2026 | .rev = 0, | ||
2027 | .funcs = &gfx_v7_0_ip_funcs, | ||
2028 | }, | ||
2029 | { | ||
2030 | .type = AMD_IP_BLOCK_TYPE_SDMA, | ||
2031 | .major = 2, | ||
2032 | .minor = 0, | ||
2033 | .rev = 0, | ||
2034 | .funcs = &cik_sdma_ip_funcs, | ||
2035 | }, | ||
2036 | { | ||
2037 | .type = AMD_IP_BLOCK_TYPE_UVD, | ||
2038 | .major = 4, | ||
2039 | .minor = 2, | ||
2040 | .rev = 0, | ||
2041 | .funcs = &uvd_v4_2_ip_funcs, | ||
2042 | }, | ||
2043 | { | ||
2044 | .type = AMD_IP_BLOCK_TYPE_VCE, | ||
2045 | .major = 2, | ||
2046 | .minor = 0, | ||
2047 | .rev = 0, | ||
2048 | .funcs = &vce_v2_0_ip_funcs, | ||
2049 | }, | ||
2050 | }; | ||
2051 | |||
1847 | static const struct amdgpu_ip_block_version mullins_ip_blocks[] = | 2052 | static const struct amdgpu_ip_block_version mullins_ip_blocks[] = |
1848 | { | 2053 | { |
1849 | /* ORDER MATTERS! */ | 2054 | /* ORDER MATTERS! */ |
@@ -1912,6 +2117,74 @@ static const struct amdgpu_ip_block_version mullins_ip_blocks[] = | |||
1912 | }, | 2117 | }, |
1913 | }; | 2118 | }; |
1914 | 2119 | ||
2120 | static const struct amdgpu_ip_block_version mullins_ip_blocks_vd[] = | ||
2121 | { | ||
2122 | /* ORDER MATTERS! */ | ||
2123 | { | ||
2124 | .type = AMD_IP_BLOCK_TYPE_COMMON, | ||
2125 | .major = 1, | ||
2126 | .minor = 0, | ||
2127 | .rev = 0, | ||
2128 | .funcs = &cik_common_ip_funcs, | ||
2129 | }, | ||
2130 | { | ||
2131 | .type = AMD_IP_BLOCK_TYPE_GMC, | ||
2132 | .major = 7, | ||
2133 | .minor = 0, | ||
2134 | .rev = 0, | ||
2135 | .funcs = &gmc_v7_0_ip_funcs, | ||
2136 | }, | ||
2137 | { | ||
2138 | .type = AMD_IP_BLOCK_TYPE_IH, | ||
2139 | .major = 2, | ||
2140 | .minor = 0, | ||
2141 | .rev = 0, | ||
2142 | .funcs = &cik_ih_ip_funcs, | ||
2143 | }, | ||
2144 | { | ||
2145 | .type = AMD_IP_BLOCK_TYPE_SMC, | ||
2146 | .major = 7, | ||
2147 | .minor = 0, | ||
2148 | .rev = 0, | ||
2149 | .funcs = &amdgpu_pp_ip_funcs, | ||
2150 | }, | ||
2151 | { | ||
2152 | .type = AMD_IP_BLOCK_TYPE_DCE, | ||
2153 | .major = 8, | ||
2154 | .minor = 3, | ||
2155 | .rev = 0, | ||
2156 | .funcs = &dce_virtual_ip_funcs, | ||
2157 | }, | ||
2158 | { | ||
2159 | .type = AMD_IP_BLOCK_TYPE_GFX, | ||
2160 | .major = 7, | ||
2161 | .minor = 2, | ||
2162 | .rev = 0, | ||
2163 | .funcs = &gfx_v7_0_ip_funcs, | ||
2164 | }, | ||
2165 | { | ||
2166 | .type = AMD_IP_BLOCK_TYPE_SDMA, | ||
2167 | .major = 2, | ||
2168 | .minor = 0, | ||
2169 | .rev = 0, | ||
2170 | .funcs = &cik_sdma_ip_funcs, | ||
2171 | }, | ||
2172 | { | ||
2173 | .type = AMD_IP_BLOCK_TYPE_UVD, | ||
2174 | .major = 4, | ||
2175 | .minor = 2, | ||
2176 | .rev = 0, | ||
2177 | .funcs = &uvd_v4_2_ip_funcs, | ||
2178 | }, | ||
2179 | { | ||
2180 | .type = AMD_IP_BLOCK_TYPE_VCE, | ||
2181 | .major = 2, | ||
2182 | .minor = 0, | ||
2183 | .rev = 0, | ||
2184 | .funcs = &vce_v2_0_ip_funcs, | ||
2185 | }, | ||
2186 | }; | ||
2187 | |||
1915 | static const struct amdgpu_ip_block_version kaveri_ip_blocks[] = | 2188 | static const struct amdgpu_ip_block_version kaveri_ip_blocks[] = |
1916 | { | 2189 | { |
1917 | /* ORDER MATTERS! */ | 2190 | /* ORDER MATTERS! */ |
@@ -1980,6 +2253,74 @@ static const struct amdgpu_ip_block_version kaveri_ip_blocks[] = | |||
1980 | }, | 2253 | }, |
1981 | }; | 2254 | }; |
1982 | 2255 | ||
2256 | static const struct amdgpu_ip_block_version kaveri_ip_blocks_vd[] = | ||
2257 | { | ||
2258 | /* ORDER MATTERS! */ | ||
2259 | { | ||
2260 | .type = AMD_IP_BLOCK_TYPE_COMMON, | ||
2261 | .major = 1, | ||
2262 | .minor = 0, | ||
2263 | .rev = 0, | ||
2264 | .funcs = &cik_common_ip_funcs, | ||
2265 | }, | ||
2266 | { | ||
2267 | .type = AMD_IP_BLOCK_TYPE_GMC, | ||
2268 | .major = 7, | ||
2269 | .minor = 0, | ||
2270 | .rev = 0, | ||
2271 | .funcs = &gmc_v7_0_ip_funcs, | ||
2272 | }, | ||
2273 | { | ||
2274 | .type = AMD_IP_BLOCK_TYPE_IH, | ||
2275 | .major = 2, | ||
2276 | .minor = 0, | ||
2277 | .rev = 0, | ||
2278 | .funcs = &cik_ih_ip_funcs, | ||
2279 | }, | ||
2280 | { | ||
2281 | .type = AMD_IP_BLOCK_TYPE_SMC, | ||
2282 | .major = 7, | ||
2283 | .minor = 0, | ||
2284 | .rev = 0, | ||
2285 | .funcs = &amdgpu_pp_ip_funcs, | ||
2286 | }, | ||
2287 | { | ||
2288 | .type = AMD_IP_BLOCK_TYPE_DCE, | ||
2289 | .major = 8, | ||
2290 | .minor = 1, | ||
2291 | .rev = 0, | ||
2292 | .funcs = &dce_virtual_ip_funcs, | ||
2293 | }, | ||
2294 | { | ||
2295 | .type = AMD_IP_BLOCK_TYPE_GFX, | ||
2296 | .major = 7, | ||
2297 | .minor = 1, | ||
2298 | .rev = 0, | ||
2299 | .funcs = &gfx_v7_0_ip_funcs, | ||
2300 | }, | ||
2301 | { | ||
2302 | .type = AMD_IP_BLOCK_TYPE_SDMA, | ||
2303 | .major = 2, | ||
2304 | .minor = 0, | ||
2305 | .rev = 0, | ||
2306 | .funcs = &cik_sdma_ip_funcs, | ||
2307 | }, | ||
2308 | { | ||
2309 | .type = AMD_IP_BLOCK_TYPE_UVD, | ||
2310 | .major = 4, | ||
2311 | .minor = 2, | ||
2312 | .rev = 0, | ||
2313 | .funcs = &uvd_v4_2_ip_funcs, | ||
2314 | }, | ||
2315 | { | ||
2316 | .type = AMD_IP_BLOCK_TYPE_VCE, | ||
2317 | .major = 2, | ||
2318 | .minor = 0, | ||
2319 | .rev = 0, | ||
2320 | .funcs = &vce_v2_0_ip_funcs, | ||
2321 | }, | ||
2322 | }; | ||
2323 | |||
1983 | int cik_set_ip_blocks(struct amdgpu_device *adev) | 2324 | int cik_set_ip_blocks(struct amdgpu_device *adev) |
1984 | { | 2325 | { |
1985 | switch (adev->asic_type) { | 2326 | switch (adev->asic_type) { |
diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c index 8f37066adcee..ff78b5a36143 100644 --- a/drivers/gpu/drm/amd/amdgpu/vi.c +++ b/drivers/gpu/drm/amd/amdgpu/vi.c | |||
@@ -77,6 +77,7 @@ | |||
77 | #if defined(CONFIG_DRM_AMD_ACP) | 77 | #if defined(CONFIG_DRM_AMD_ACP) |
78 | #include "amdgpu_acp.h" | 78 | #include "amdgpu_acp.h" |
79 | #endif | 79 | #endif |
80 | #include "dce_virtual.h" | ||
80 | 81 | ||
81 | MODULE_FIRMWARE("amdgpu/polaris10_smc.bin"); | 82 | MODULE_FIRMWARE("amdgpu/polaris10_smc.bin"); |
82 | MODULE_FIRMWARE("amdgpu/polaris10_smc_sk.bin"); | 83 | MODULE_FIRMWARE("amdgpu/polaris10_smc_sk.bin"); |
@@ -890,6 +891,74 @@ static const struct amdgpu_ip_block_version tonga_ip_blocks[] = | |||
890 | }, | 891 | }, |
891 | }; | 892 | }; |
892 | 893 | ||
894 | static const struct amdgpu_ip_block_version tonga_ip_blocks_vd[] = | ||
895 | { | ||
896 | /* ORDER MATTERS! */ | ||
897 | { | ||
898 | .type = AMD_IP_BLOCK_TYPE_COMMON, | ||
899 | .major = 2, | ||
900 | .minor = 0, | ||
901 | .rev = 0, | ||
902 | .funcs = &vi_common_ip_funcs, | ||
903 | }, | ||
904 | { | ||
905 | .type = AMD_IP_BLOCK_TYPE_GMC, | ||
906 | .major = 8, | ||
907 | .minor = 0, | ||
908 | .rev = 0, | ||
909 | .funcs = &gmc_v8_0_ip_funcs, | ||
910 | }, | ||
911 | { | ||
912 | .type = AMD_IP_BLOCK_TYPE_IH, | ||
913 | .major = 3, | ||
914 | .minor = 0, | ||
915 | .rev = 0, | ||
916 | .funcs = &tonga_ih_ip_funcs, | ||
917 | }, | ||
918 | { | ||
919 | .type = AMD_IP_BLOCK_TYPE_SMC, | ||
920 | .major = 7, | ||
921 | .minor = 1, | ||
922 | .rev = 0, | ||
923 | .funcs = &amdgpu_pp_ip_funcs, | ||
924 | }, | ||
925 | { | ||
926 | .type = AMD_IP_BLOCK_TYPE_DCE, | ||
927 | .major = 10, | ||
928 | .minor = 0, | ||
929 | .rev = 0, | ||
930 | .funcs = &dce_virtual_ip_funcs, | ||
931 | }, | ||
932 | { | ||
933 | .type = AMD_IP_BLOCK_TYPE_GFX, | ||
934 | .major = 8, | ||
935 | .minor = 0, | ||
936 | .rev = 0, | ||
937 | .funcs = &gfx_v8_0_ip_funcs, | ||
938 | }, | ||
939 | { | ||
940 | .type = AMD_IP_BLOCK_TYPE_SDMA, | ||
941 | .major = 3, | ||
942 | .minor = 0, | ||
943 | .rev = 0, | ||
944 | .funcs = &sdma_v3_0_ip_funcs, | ||
945 | }, | ||
946 | { | ||
947 | .type = AMD_IP_BLOCK_TYPE_UVD, | ||
948 | .major = 5, | ||
949 | .minor = 0, | ||
950 | .rev = 0, | ||
951 | .funcs = &uvd_v5_0_ip_funcs, | ||
952 | }, | ||
953 | { | ||
954 | .type = AMD_IP_BLOCK_TYPE_VCE, | ||
955 | .major = 3, | ||
956 | .minor = 0, | ||
957 | .rev = 0, | ||
958 | .funcs = &vce_v3_0_ip_funcs, | ||
959 | }, | ||
960 | }; | ||
961 | |||
893 | static const struct amdgpu_ip_block_version fiji_ip_blocks[] = | 962 | static const struct amdgpu_ip_block_version fiji_ip_blocks[] = |
894 | { | 963 | { |
895 | /* ORDER MATTERS! */ | 964 | /* ORDER MATTERS! */ |
@@ -958,6 +1027,74 @@ static const struct amdgpu_ip_block_version fiji_ip_blocks[] = | |||
958 | }, | 1027 | }, |
959 | }; | 1028 | }; |
960 | 1029 | ||
1030 | static const struct amdgpu_ip_block_version fiji_ip_blocks_vd[] = | ||
1031 | { | ||
1032 | /* ORDER MATTERS! */ | ||
1033 | { | ||
1034 | .type = AMD_IP_BLOCK_TYPE_COMMON, | ||
1035 | .major = 2, | ||
1036 | .minor = 0, | ||
1037 | .rev = 0, | ||
1038 | .funcs = &vi_common_ip_funcs, | ||
1039 | }, | ||
1040 | { | ||
1041 | .type = AMD_IP_BLOCK_TYPE_GMC, | ||
1042 | .major = 8, | ||
1043 | .minor = 5, | ||
1044 | .rev = 0, | ||
1045 | .funcs = &gmc_v8_0_ip_funcs, | ||
1046 | }, | ||
1047 | { | ||
1048 | .type = AMD_IP_BLOCK_TYPE_IH, | ||
1049 | .major = 3, | ||
1050 | .minor = 0, | ||
1051 | .rev = 0, | ||
1052 | .funcs = &tonga_ih_ip_funcs, | ||
1053 | }, | ||
1054 | { | ||
1055 | .type = AMD_IP_BLOCK_TYPE_SMC, | ||
1056 | .major = 7, | ||
1057 | .minor = 1, | ||
1058 | .rev = 0, | ||
1059 | .funcs = &amdgpu_pp_ip_funcs, | ||
1060 | }, | ||
1061 | { | ||
1062 | .type = AMD_IP_BLOCK_TYPE_DCE, | ||
1063 | .major = 10, | ||
1064 | .minor = 1, | ||
1065 | .rev = 0, | ||
1066 | .funcs = &dce_virtual_ip_funcs, | ||
1067 | }, | ||
1068 | { | ||
1069 | .type = AMD_IP_BLOCK_TYPE_GFX, | ||
1070 | .major = 8, | ||
1071 | .minor = 0, | ||
1072 | .rev = 0, | ||
1073 | .funcs = &gfx_v8_0_ip_funcs, | ||
1074 | }, | ||
1075 | { | ||
1076 | .type = AMD_IP_BLOCK_TYPE_SDMA, | ||
1077 | .major = 3, | ||
1078 | .minor = 0, | ||
1079 | .rev = 0, | ||
1080 | .funcs = &sdma_v3_0_ip_funcs, | ||
1081 | }, | ||
1082 | { | ||
1083 | .type = AMD_IP_BLOCK_TYPE_UVD, | ||
1084 | .major = 6, | ||
1085 | .minor = 0, | ||
1086 | .rev = 0, | ||
1087 | .funcs = &uvd_v6_0_ip_funcs, | ||
1088 | }, | ||
1089 | { | ||
1090 | .type = AMD_IP_BLOCK_TYPE_VCE, | ||
1091 | .major = 3, | ||
1092 | .minor = 0, | ||
1093 | .rev = 0, | ||
1094 | .funcs = &vce_v3_0_ip_funcs, | ||
1095 | }, | ||
1096 | }; | ||
1097 | |||
961 | static const struct amdgpu_ip_block_version polaris11_ip_blocks[] = | 1098 | static const struct amdgpu_ip_block_version polaris11_ip_blocks[] = |
962 | { | 1099 | { |
963 | /* ORDER MATTERS! */ | 1100 | /* ORDER MATTERS! */ |
@@ -1026,6 +1163,74 @@ static const struct amdgpu_ip_block_version polaris11_ip_blocks[] = | |||
1026 | }, | 1163 | }, |
1027 | }; | 1164 | }; |
1028 | 1165 | ||
1166 | static const struct amdgpu_ip_block_version polaris11_ip_blocks_vd[] = | ||
1167 | { | ||
1168 | /* ORDER MATTERS! */ | ||
1169 | { | ||
1170 | .type = AMD_IP_BLOCK_TYPE_COMMON, | ||
1171 | .major = 2, | ||
1172 | .minor = 0, | ||
1173 | .rev = 0, | ||
1174 | .funcs = &vi_common_ip_funcs, | ||
1175 | }, | ||
1176 | { | ||
1177 | .type = AMD_IP_BLOCK_TYPE_GMC, | ||
1178 | .major = 8, | ||
1179 | .minor = 1, | ||
1180 | .rev = 0, | ||
1181 | .funcs = &gmc_v8_0_ip_funcs, | ||
1182 | }, | ||
1183 | { | ||
1184 | .type = AMD_IP_BLOCK_TYPE_IH, | ||
1185 | .major = 3, | ||
1186 | .minor = 1, | ||
1187 | .rev = 0, | ||
1188 | .funcs = &tonga_ih_ip_funcs, | ||
1189 | }, | ||
1190 | { | ||
1191 | .type = AMD_IP_BLOCK_TYPE_SMC, | ||
1192 | .major = 7, | ||
1193 | .minor = 2, | ||
1194 | .rev = 0, | ||
1195 | .funcs = &amdgpu_pp_ip_funcs, | ||
1196 | }, | ||
1197 | { | ||
1198 | .type = AMD_IP_BLOCK_TYPE_DCE, | ||
1199 | .major = 11, | ||
1200 | .minor = 2, | ||
1201 | .rev = 0, | ||
1202 | .funcs = &dce_virtual_ip_funcs, | ||
1203 | }, | ||
1204 | { | ||
1205 | .type = AMD_IP_BLOCK_TYPE_GFX, | ||
1206 | .major = 8, | ||
1207 | .minor = 0, | ||
1208 | .rev = 0, | ||
1209 | .funcs = &gfx_v8_0_ip_funcs, | ||
1210 | }, | ||
1211 | { | ||
1212 | .type = AMD_IP_BLOCK_TYPE_SDMA, | ||
1213 | .major = 3, | ||
1214 | .minor = 1, | ||
1215 | .rev = 0, | ||
1216 | .funcs = &sdma_v3_0_ip_funcs, | ||
1217 | }, | ||
1218 | { | ||
1219 | .type = AMD_IP_BLOCK_TYPE_UVD, | ||
1220 | .major = 6, | ||
1221 | .minor = 3, | ||
1222 | .rev = 0, | ||
1223 | .funcs = &uvd_v6_0_ip_funcs, | ||
1224 | }, | ||
1225 | { | ||
1226 | .type = AMD_IP_BLOCK_TYPE_VCE, | ||
1227 | .major = 3, | ||
1228 | .minor = 4, | ||
1229 | .rev = 0, | ||
1230 | .funcs = &vce_v3_0_ip_funcs, | ||
1231 | }, | ||
1232 | }; | ||
1233 | |||
1029 | static const struct amdgpu_ip_block_version cz_ip_blocks[] = | 1234 | static const struct amdgpu_ip_block_version cz_ip_blocks[] = |
1030 | { | 1235 | { |
1031 | /* ORDER MATTERS! */ | 1236 | /* ORDER MATTERS! */ |
@@ -1103,6 +1308,83 @@ static const struct amdgpu_ip_block_version cz_ip_blocks[] = | |||
1103 | #endif | 1308 | #endif |
1104 | }; | 1309 | }; |
1105 | 1310 | ||
1311 | static const struct amdgpu_ip_block_version cz_ip_blocks_vd[] = | ||
1312 | { | ||
1313 | /* ORDER MATTERS! */ | ||
1314 | { | ||
1315 | .type = AMD_IP_BLOCK_TYPE_COMMON, | ||
1316 | .major = 2, | ||
1317 | .minor = 0, | ||
1318 | .rev = 0, | ||
1319 | .funcs = &vi_common_ip_funcs, | ||
1320 | }, | ||
1321 | { | ||
1322 | .type = AMD_IP_BLOCK_TYPE_GMC, | ||
1323 | .major = 8, | ||
1324 | .minor = 0, | ||
1325 | .rev = 0, | ||
1326 | .funcs = &gmc_v8_0_ip_funcs, | ||
1327 | }, | ||
1328 | { | ||
1329 | .type = AMD_IP_BLOCK_TYPE_IH, | ||
1330 | .major = 3, | ||
1331 | .minor = 0, | ||
1332 | .rev = 0, | ||
1333 | .funcs = &cz_ih_ip_funcs, | ||
1334 | }, | ||
1335 | { | ||
1336 | .type = AMD_IP_BLOCK_TYPE_SMC, | ||
1337 | .major = 8, | ||
1338 | .minor = 0, | ||
1339 | .rev = 0, | ||
1340 | .funcs = &amdgpu_pp_ip_funcs | ||
1341 | }, | ||
1342 | { | ||
1343 | .type = AMD_IP_BLOCK_TYPE_DCE, | ||
1344 | .major = 11, | ||
1345 | .minor = 0, | ||
1346 | .rev = 0, | ||
1347 | .funcs = &dce_virtual_ip_funcs, | ||
1348 | }, | ||
1349 | { | ||
1350 | .type = AMD_IP_BLOCK_TYPE_GFX, | ||
1351 | .major = 8, | ||
1352 | .minor = 0, | ||
1353 | .rev = 0, | ||
1354 | .funcs = &gfx_v8_0_ip_funcs, | ||
1355 | }, | ||
1356 | { | ||
1357 | .type = AMD_IP_BLOCK_TYPE_SDMA, | ||
1358 | .major = 3, | ||
1359 | .minor = 0, | ||
1360 | .rev = 0, | ||
1361 | .funcs = &sdma_v3_0_ip_funcs, | ||
1362 | }, | ||
1363 | { | ||
1364 | .type = AMD_IP_BLOCK_TYPE_UVD, | ||
1365 | .major = 6, | ||
1366 | .minor = 0, | ||
1367 | .rev = 0, | ||
1368 | .funcs = &uvd_v6_0_ip_funcs, | ||
1369 | }, | ||
1370 | { | ||
1371 | .type = AMD_IP_BLOCK_TYPE_VCE, | ||
1372 | .major = 3, | ||
1373 | .minor = 0, | ||
1374 | .rev = 0, | ||
1375 | .funcs = &vce_v3_0_ip_funcs, | ||
1376 | }, | ||
1377 | #if defined(CONFIG_DRM_AMD_ACP) | ||
1378 | { | ||
1379 | .type = AMD_IP_BLOCK_TYPE_ACP, | ||
1380 | .major = 2, | ||
1381 | .minor = 2, | ||
1382 | .rev = 0, | ||
1383 | .funcs = &acp_ip_funcs, | ||
1384 | }, | ||
1385 | #endif | ||
1386 | }; | ||
1387 | |||
1106 | int vi_set_ip_blocks(struct amdgpu_device *adev) | 1388 | int vi_set_ip_blocks(struct amdgpu_device *adev) |
1107 | { | 1389 | { |
1108 | switch (adev->asic_type) { | 1390 | switch (adev->asic_type) { |