aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-05-13 20:54:32 -0400
committerBen Skeggs <bskeggs@redhat.com>2013-06-30 23:50:41 -0400
commiteb12f57be6f457d317562fda251214d1851134fc (patch)
tree8bccd95a97247832e7e0537bc3c7de55eb1d1054
parentdba50728fdf22d9c7e7d2cac7fc5d2e8715aadcd (diff)
drm/nvc8/gr: update initial register/context values
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c28
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc8
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h4
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc4
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h2
-rw-r--r--drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c38
6 files changed, 74 insertions, 10 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c
index 52712fbc856b..e0305bd8eedb 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc0.c
@@ -1329,6 +1329,7 @@ nvc0_grctx_generate_9097(struct nvc0_graph_priv *priv)
1329 case 0xc3: 1329 case 0xc3:
1330 case 0xc4: 1330 case 0xc4:
1331 case 0xc1: 1331 case 0xc1:
1332 case 0xc8:
1332 case 0xd9: 1333 case 0xd9:
1333 case 0xd7: 1334 case 0xd7:
1334 break; 1335 break;
@@ -1479,6 +1480,7 @@ nvc0_grctx_generate_dispatch(struct nvc0_graph_priv *priv)
1479 case 0xc3: 1480 case 0xc3:
1480 case 0xc4: 1481 case 0xc4:
1481 case 0xc1: 1482 case 0xc1:
1483 case 0xc8:
1482 default: 1484 default:
1483 break; 1485 break;
1484 } 1486 }
@@ -1502,6 +1504,7 @@ nvc0_grctx_generate_dispatch(struct nvc0_graph_priv *priv)
1502 case 0xc3: 1504 case 0xc3:
1503 case 0xc4: 1505 case 0xc4:
1504 case 0xc1: 1506 case 0xc1:
1507 case 0xc8:
1505 case 0xd9: 1508 case 0xd9:
1506 case 0xd7: 1509 case 0xd7:
1507 nv_wr32(priv, 0x4040d0, 0x00000000); 1510 nv_wr32(priv, 0x4040d0, 0x00000000);
@@ -1532,6 +1535,7 @@ nvc0_grctx_generate_dispatch(struct nvc0_graph_priv *priv)
1532 case 0xc3: 1535 case 0xc3:
1533 case 0xc4: 1536 case 0xc4:
1534 case 0xc1: 1537 case 0xc1:
1538 case 0xc8:
1535 default: 1539 default:
1536 nv_wr32(priv, 0x404174, 0x00000000); 1540 nv_wr32(priv, 0x404174, 0x00000000);
1537 break; 1541 break;
@@ -1676,6 +1680,7 @@ nvc0_grctx_generate_shaders(struct nvc0_graph_priv *priv)
1676 case 0xc0: 1680 case 0xc0:
1677 case 0xc3: 1681 case 0xc3:
1678 case 0xc4: 1682 case 0xc4:
1683 case 0xc8:
1679 default: 1684 default:
1680 nv_wr32(priv, 0x405800, 0x078000bf); 1685 nv_wr32(priv, 0x405800, 0x078000bf);
1681 nv_wr32(priv, 0x405830, 0x02180000); 1686 nv_wr32(priv, 0x405830, 0x02180000);
@@ -1720,6 +1725,7 @@ nvc0_grctx_generate_unk64xx(struct nvc0_graph_priv *priv)
1720 case 0xc3: 1725 case 0xc3:
1721 case 0xc4: 1726 case 0xc4:
1722 case 0xc1: 1727 case 0xc1:
1728 case 0xc8:
1723 default: 1729 default:
1724 break; 1730 break;
1725 } 1731 }
@@ -1733,6 +1739,7 @@ nvc0_grctx_generate_unk64xx(struct nvc0_graph_priv *priv)
1733 case 0xc0: 1739 case 0xc0:
1734 case 0xc3: 1740 case 0xc3:
1735 case 0xc4: 1741 case 0xc4:
1742 case 0xc8:
1736 default: 1743 default:
1737 break; 1744 break;
1738 } 1745 }
@@ -1774,6 +1781,7 @@ nvc0_grctx_generate_rop(struct nvc0_graph_priv *priv)
1774 case 0xc0: 1781 case 0xc0:
1775 case 0xc3: 1782 case 0xc3:
1776 case 0xc4: 1783 case 0xc4:
1784 case 0xc8:
1777 nv_wr32(priv, 0x408808, 0x0003e00d); 1785 nv_wr32(priv, 0x408808, 0x0003e00d);
1778 nv_wr32(priv, 0x408900, 0x3080b801); 1786 nv_wr32(priv, 0x408900, 0x3080b801);
1779 nv_wr32(priv, 0x408904, 0x02000001); 1787 nv_wr32(priv, 0x408904, 0x02000001);
@@ -1820,6 +1828,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv)
1820 case 0xc3: 1828 case 0xc3:
1821 case 0xc4: 1829 case 0xc4:
1822 case 0xc1: 1830 case 0xc1:
1831 case 0xc8:
1823 default: 1832 default:
1824 nv_wr32(priv, 0x418408, 0x00000000); 1833 nv_wr32(priv, 0x418408, 0x00000000);
1825 break; 1834 break;
@@ -1835,6 +1844,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv)
1835 case 0xc3: 1844 case 0xc3:
1836 case 0xc4: 1845 case 0xc4:
1837 case 0xc1: 1846 case 0xc1:
1847 case 0xc8:
1838 default: 1848 default:
1839 nv_wr32(priv, 0x418414, 0x00200fff); 1849 nv_wr32(priv, 0x418414, 0x00200fff);
1840 break; 1850 break;
@@ -1862,6 +1872,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv)
1862 case 0xc3: 1872 case 0xc3:
1863 case 0xc4: 1873 case 0xc4:
1864 case 0xc1: 1874 case 0xc1:
1875 case 0xc8:
1865 default: 1876 default:
1866 nv_wr32(priv, 0x41870c, 0x07c80000); 1877 nv_wr32(priv, 0x41870c, 0x07c80000);
1867 break; 1878 break;
@@ -1876,6 +1887,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv)
1876 case 0xc3: 1887 case 0xc3:
1877 case 0xc4: 1888 case 0xc4:
1878 case 0xc1: 1889 case 0xc1:
1890 case 0xc8:
1879 default: 1891 default:
1880 nv_wr32(priv, 0x418800, 0x0006860a); 1892 nv_wr32(priv, 0x418800, 0x0006860a);
1881 break; 1893 break;
@@ -1893,6 +1905,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv)
1893 case 0xc0: 1905 case 0xc0:
1894 case 0xc3: 1906 case 0xc3:
1895 case 0xc4: 1907 case 0xc4:
1908 case 0xc8:
1896 default: 1909 default:
1897 nv_wr32(priv, 0x418830, 0x00000001); 1910 nv_wr32(priv, 0x418830, 0x00000001);
1898 break; 1911 break;
@@ -1915,6 +1928,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv)
1915 case 0xc0: 1928 case 0xc0:
1916 case 0xc3: 1929 case 0xc3:
1917 case 0xc4: 1930 case 0xc4:
1931 case 0xc8:
1918 default: 1932 default:
1919 nv_wr32(priv, 0x4188fc, 0x00100000); 1933 nv_wr32(priv, 0x4188fc, 0x00100000);
1920 break; 1934 break;
@@ -1941,6 +1955,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv)
1941 case 0xc3: 1955 case 0xc3:
1942 case 0xc4: 1956 case 0xc4:
1943 case 0xc1: 1957 case 0xc1:
1958 case 0xc8:
1944 default: 1959 default:
1945 nv_wr32(priv, 0x418b00, 0x00000000); 1960 nv_wr32(priv, 0x418b00, 0x00000000);
1946 break; 1961 break;
@@ -1970,6 +1985,7 @@ nvc0_grctx_generate_gpc(struct nvc0_graph_priv *priv)
1970 case 0xc0: 1985 case 0xc0:
1971 case 0xc3: 1986 case 0xc3:
1972 case 0xc4: 1987 case 0xc4:
1988 case 0xc8:
1973 default: 1989 default:
1974 break; 1990 break;
1975 } 1991 }
@@ -1997,6 +2013,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv)
1997 case 0xc0: 2013 case 0xc0:
1998 case 0xc3: 2014 case 0xc3:
1999 case 0xc4: 2015 case 0xc4:
2016 case 0xc8:
2000 default: 2017 default:
2001 nv_wr32(priv, 0x419864, 0x0000012a); 2018 nv_wr32(priv, 0x419864, 0x0000012a);
2002 break; 2019 break;
@@ -2014,6 +2031,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv)
2014 case 0xc3: 2031 case 0xc3:
2015 case 0xc4: 2032 case 0xc4:
2016 case 0xc1: 2033 case 0xc1:
2034 case 0xc8:
2017 default: 2035 default:
2018 nv_wr32(priv, 0x419a1c, 0x00000000); 2036 nv_wr32(priv, 0x419a1c, 0x00000000);
2019 nv_wr32(priv, 0x419a20, 0x00000800); 2037 nv_wr32(priv, 0x419a20, 0x00000800);
@@ -2050,6 +2068,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv)
2050 case 0xc0: 2068 case 0xc0:
2051 case 0xc3: 2069 case 0xc3:
2052 case 0xc4: 2070 case 0xc4:
2071 case 0xc8:
2053 default: 2072 default:
2054 nv_wr32(priv, 0x419be0, 0x00000001); 2073 nv_wr32(priv, 0x419be0, 0x00000001);
2055 break; 2074 break;
@@ -2064,6 +2083,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv)
2064 case 0xc3: 2083 case 0xc3:
2065 case 0xc4: 2084 case 0xc4:
2066 case 0xc1: 2085 case 0xc1:
2086 case 0xc8:
2067 default: 2087 default:
2068 nv_wr32(priv, 0x419c00, 0x00000002); 2088 nv_wr32(priv, 0x419c00, 0x00000002);
2069 break; 2089 break;
@@ -2086,6 +2106,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv)
2086 nv_wr32(priv, 0x419cb0, 0x00020048); 2106 nv_wr32(priv, 0x419cb0, 0x00020048);
2087 break; 2107 break;
2088 case 0xc0: 2108 case 0xc0:
2109 case 0xc8:
2089 default: 2110 default:
2090 nv_wr32(priv, 0x419cb0, 0x00060048); 2111 nv_wr32(priv, 0x419cb0, 0x00060048);
2091 break; 2112 break;
@@ -2101,6 +2122,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv)
2101 case 0xc0: 2122 case 0xc0:
2102 case 0xc3: 2123 case 0xc3:
2103 case 0xc4: 2124 case 0xc4:
2125 case 0xc8:
2104 default: 2126 default:
2105 nv_wr32(priv, 0x419d20, 0x02180000); 2127 nv_wr32(priv, 0x419d20, 0x02180000);
2106 break; 2128 break;
@@ -2115,6 +2137,7 @@ nvc0_grctx_generate_tp(struct nvc0_graph_priv *priv)
2115 case 0xc0: 2137 case 0xc0:
2116 case 0xc3: 2138 case 0xc3:
2117 case 0xc4: 2139 case 0xc4:
2140 case 0xc8:
2118 default: 2141 default:
2119 break; 2142 break;
2120 } 2143 }
@@ -2506,6 +2529,7 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv)
2506 case 0xc3: 2529 case 0xc3:
2507 case 0xc4: 2530 case 0xc4:
2508 case 0xc1: 2531 case 0xc1:
2532 case 0xc8:
2509 default: 2533 default:
2510 break; 2534 break;
2511 } 2535 }
@@ -2527,6 +2551,7 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv)
2527 case 0xc3: 2551 case 0xc3:
2528 case 0xc4: 2552 case 0xc4:
2529 case 0xc1: 2553 case 0xc1:
2554 case 0xc8:
2530 break; 2555 break;
2531 default: 2556 default:
2532 break; 2557 break;
@@ -3095,6 +3120,7 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv)
3095 nv_icmd(priv, 0x00000576, 0x00000003); 3120 nv_icmd(priv, 0x00000576, 0x00000003);
3096 switch (nv_device(priv)->chipset) { 3121 switch (nv_device(priv)->chipset) {
3097 case 0xc1: 3122 case 0xc1:
3123 case 0xc8:
3098 case 0xd9: 3124 case 0xd9:
3099 case 0xd7: 3125 case 0xd7:
3100 nv_icmd(priv, 0x0000057b, 0x00000059); 3126 nv_icmd(priv, 0x0000057b, 0x00000059);
@@ -3208,6 +3234,7 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv)
3208 switch (nv_device(priv)->chipset) { 3234 switch (nv_device(priv)->chipset) {
3209 case 0xd9: 3235 case 0xd9:
3210 case 0xd7: 3236 case 0xd7:
3237 case 0xc8:
3211 nv_icmd(priv, 0x0000097d, 0x00000020); 3238 nv_icmd(priv, 0x0000097d, 0x00000020);
3212 break; 3239 break;
3213 case 0xc0: 3240 case 0xc0:
@@ -3364,6 +3391,7 @@ nvc0_grctx_generate(struct nvc0_graph_priv *priv)
3364 case 0xc3: 3391 case 0xc3:
3365 case 0xc4: 3392 case 0xc4:
3366 case 0xc1: 3393 case 0xc1:
3394 case 0xc8:
3367 nv_mthd(priv, 0x902d, 0x3410, 0x00000000); 3395 nv_mthd(priv, 0x902d, 0x3410, 0x00000000);
3368 break; 3396 break;
3369 case 0xd9: 3397 case 0xd9:
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc
index c5dd2f68d41c..4539e33174b7 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc
@@ -68,10 +68,10 @@ chipsets:
68.b16 #nnvc3_tpc_mmio_head 68.b16 #nnvc3_tpc_mmio_head
69.b16 #nnvc3_tpc_mmio_tail 69.b16 #nnvc3_tpc_mmio_tail
70.b8 0xc8 0 0 0 70.b8 0xc8 0 0 0
71.b16 #nvc0_gpc_mmio_head 71.b16 #nnvc0_gpc_mmio_head
72.b16 #nvc0_gpc_mmio_tail 72.b16 #nnvc0_gpc_mmio_tail
73.b16 #nvc0_tpc_mmio_head 73.b16 #nnvc0_tpc_mmio_head
74.b16 #nvc0_tpc_mmio_tail 74.b16 #nnvc0_tpc_mmio_tail
75.b8 0xce 0 0 0 75.b8 0xce 0 0 0
76.b16 #nvc0_gpc_mmio_head 76.b16 #nvc0_gpc_mmio_head
77.b16 #nvc0_gpc_mmio_tail 77.b16 #nvc0_gpc_mmio_tail
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h
index f3a560ce438e..bad9a16a9463 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/gpcnvc0.fuc.h
@@ -46,8 +46,8 @@ uint32_t nvc0_grgpc_data[] = {
46 0x01940134, 46 0x01940134,
47 0x030402ac, 47 0x030402ac,
48 0x000000c8, 48 0x000000c8,
49 0x013400d4, 49 0x01940134,
50 0x02500200, 50 0x02ac0260,
51 0x000000ce, 51 0x000000ce,
52 0x013400d4, 52 0x013400d4,
53 0x02600200, 53 0x02600200,
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc
index 92df038abc48..6eb5168a3811 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc
@@ -60,8 +60,8 @@ chipsets:
60.b16 #nnvc0_hub_mmio_head 60.b16 #nnvc0_hub_mmio_head
61.b16 #nnvc0_hub_mmio_tail 61.b16 #nnvc0_hub_mmio_tail
62.b8 0xc8 0 0 0 62.b8 0xc8 0 0 0
63.b16 #nvc0_hub_mmio_head 63.b16 #nnvc0_hub_mmio_head
64.b16 #nvc0_hub_mmio_tail 64.b16 #nnvc0_hub_mmio_tail
65.b8 0xce 0 0 0 65.b8 0xce 0 0 0
66.b16 #nvc0_hub_mmio_head 66.b16 #nvc0_hub_mmio_head
67.b16 #nvc0_hub_mmio_tail 67.b16 #nvc0_hub_mmio_tail
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h
index bf4f4b32e25b..9d5517407dfb 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/fuc/hubnvc0.fuc.h
@@ -211,7 +211,7 @@ uint32_t nvc0_grhub_data[] = {
211 0x000000c4, 211 0x000000c4,
212 0x048403e8, 212 0x048403e8,
213 0x000000c8, 213 0x000000c8,
214 0x03e8034c, 214 0x048403e8,
215 0x000000ce, 215 0x000000ce,
216 0x03e8034c, 216 0x03e8034c,
217 0x000000cf, 217 0x000000cf,
diff --git a/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c b/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c
index 664747d62906..f146ebc9c08d 100644
--- a/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c
+++ b/drivers/gpu/drm/nouveau/core/engine/graph/nvc0.c
@@ -756,6 +756,7 @@ nvc0_graph_init_unk64xx(struct nvc0_graph_priv *priv)
756 case 0xc3: 756 case 0xc3:
757 case 0xc4: 757 case 0xc4:
758 case 0xc1: 758 case 0xc1:
759 case 0xc8:
759 default: 760 default:
760 break; 761 break;
761 } 762 }
@@ -775,6 +776,7 @@ nvc0_graph_init_unk58xx(struct nvc0_graph_priv *priv)
775 nv_wr32(priv, 0x405900, 0x00002834); 776 nv_wr32(priv, 0x405900, 0x00002834);
776 break; 777 break;
777 case 0xc0: 778 case 0xc0:
779 case 0xc8:
778 default: 780 default:
779 break; 781 break;
780 } 782 }
@@ -789,6 +791,7 @@ nvc0_graph_init_unk58xx(struct nvc0_graph_priv *priv)
789 case 0xc3: 791 case 0xc3:
790 case 0xc4: 792 case 0xc4:
791 case 0xc1: 793 case 0xc1:
794 case 0xc8:
792 default: 795 default:
793 break; 796 break;
794 } 797 }
@@ -812,6 +815,7 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv)
812 case 0xc3: 815 case 0xc3:
813 case 0xc4: 816 case 0xc4:
814 case 0xc1: 817 case 0xc1:
818 case 0xc8:
815 default: 819 default:
816 break; 820 break;
817 } 821 }
@@ -826,6 +830,7 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv)
826 case 0xc3: 830 case 0xc3:
827 case 0xc4: 831 case 0xc4:
828 case 0xc1: 832 case 0xc1:
833 case 0xc8:
829 default: 834 default:
830 break; 835 break;
831 } 836 }
@@ -840,6 +845,7 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv)
840 case 0xc0: 845 case 0xc0:
841 case 0xc3: 846 case 0xc3:
842 case 0xc4: 847 case 0xc4:
848 case 0xc8:
843 default: 849 default:
844 nv_wr32(priv, 0x418714, 0x80000000); 850 nv_wr32(priv, 0x418714, 0x80000000);
845 break; 851 break;
@@ -853,6 +859,7 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv)
853 case 0xd9: 859 case 0xd9:
854 case 0xd7: 860 case 0xd7:
855 case 0xc1: 861 case 0xc1:
862 case 0xc8:
856 nv_wr32(priv, 0x4188c8, 0x00000000); 863 nv_wr32(priv, 0x4188c8, 0x00000000);
857 break; 864 break;
858 case 0xc0: 865 case 0xc0:
@@ -883,6 +890,7 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv)
883 case 0xc3: 890 case 0xc3:
884 case 0xc4: 891 case 0xc4:
885 case 0xc1: 892 case 0xc1:
893 case 0xc8:
886 default: 894 default:
887 break; 895 break;
888 } 896 }
@@ -897,6 +905,7 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv)
897 case 0xc3: 905 case 0xc3:
898 case 0xc4: 906 case 0xc4:
899 case 0xc1: 907 case 0xc1:
908 case 0xc8:
900 default: 909 default:
901 break; 910 break;
902 } 911 }
@@ -912,6 +921,7 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv)
912 case 0xc3: 921 case 0xc3:
913 case 0xc4: 922 case 0xc4:
914 case 0xc1: 923 case 0xc1:
924 case 0xc8:
915 default: 925 default:
916 break; 926 break;
917 } 927 }
@@ -928,6 +938,7 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv)
928 case 0xc0: 938 case 0xc0:
929 case 0xc3: 939 case 0xc3:
930 case 0xc4: 940 case 0xc4:
941 case 0xc8:
931 default: 942 default:
932 nv_wr32(priv, 0x418e00, 0x00000050); 943 nv_wr32(priv, 0x418e00, 0x00000050);
933 break; 944 break;
@@ -943,6 +954,7 @@ nvc0_graph_init_gpc(struct nvc0_graph_priv *priv)
943 case 0xc3: 954 case 0xc3:
944 case 0xc4: 955 case 0xc4:
945 case 0xc1: 956 case 0xc1:
957 case 0xc8:
946 default: 958 default:
947 break; 959 break;
948 } 960 }
@@ -966,6 +978,7 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv)
966 nv_wr32(priv, 0x419ac8, 0x00000000); 978 nv_wr32(priv, 0x419ac8, 0x00000000);
967 break; 979 break;
968 case 0xc0: 980 case 0xc0:
981 case 0xc8:
969 default: 982 default:
970 break; 983 break;
971 } 984 }
@@ -982,6 +995,7 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv)
982 case 0xc3: 995 case 0xc3:
983 case 0xc4: 996 case 0xc4:
984 case 0xc1: 997 case 0xc1:
998 case 0xc8:
985 default: 999 default:
986 nv_wr32(priv, 0x41980c, 0x00000000); 1000 nv_wr32(priv, 0x41980c, 0x00000000);
987 break; 1001 break;
@@ -996,6 +1010,7 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv)
996 case 0xc0: 1010 case 0xc0:
997 case 0xc3: 1011 case 0xc3:
998 case 0xc4: 1012 case 0xc4:
1013 case 0xc8:
999 default: 1014 default:
1000 nv_wr32(priv, 0x419814, 0x00000000); 1015 nv_wr32(priv, 0x419814, 0x00000000);
1001 break; 1016 break;
@@ -1010,6 +1025,7 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv)
1010 case 0xc3: 1025 case 0xc3:
1011 case 0xc4: 1026 case 0xc4:
1012 case 0xc1: 1027 case 0xc1:
1028 case 0xc8:
1013 default: 1029 default:
1014 nv_wr32(priv, 0x41984c, 0x00005bc5); 1030 nv_wr32(priv, 0x41984c, 0x00005bc5);
1015 break; 1031 break;
@@ -1027,6 +1043,7 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv)
1027 nv_wr32(priv, 0x419880, 0x00000002); 1043 nv_wr32(priv, 0x419880, 0x00000002);
1028 break; 1044 break;
1029 case 0xc0: 1045 case 0xc0:
1046 case 0xc8:
1030 default: 1047 default:
1031 break; 1048 break;
1032 } 1049 }
@@ -1049,6 +1066,7 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv)
1049 case 0xc3: 1066 case 0xc3:
1050 case 0xc4: 1067 case 0xc4:
1051 case 0xc1: 1068 case 0xc1:
1069 case 0xc8:
1052 default: 1070 default:
1053 break; 1071 break;
1054 } 1072 }
@@ -1063,6 +1081,7 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv)
1063 case 0xc3: 1081 case 0xc3:
1064 case 0xc4: 1082 case 0xc4:
1065 case 0xc1: 1083 case 0xc1:
1084 case 0xc8:
1066 default: 1085 default:
1067 break; 1086 break;
1068 } 1087 }
@@ -1079,11 +1098,26 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv)
1079 case 0xc3: 1098 case 0xc3:
1080 case 0xc4: 1099 case 0xc4:
1081 case 0xc1: 1100 case 0xc1:
1101 case 0xc8:
1082 default: 1102 default:
1083 nv_wr32(priv, 0x419ea8, 0x00001100); 1103 nv_wr32(priv, 0x419ea8, 0x00001100);
1084 break; 1104 break;
1085 } 1105 }
1086 nv_wr32(priv, 0x419eac, 0x11100702); 1106
1107 switch (nv_device(priv)->chipset) {
1108 case 0xc8:
1109 nv_wr32(priv, 0x419eac, 0x11100f02);
1110 break;
1111 case 0xc0:
1112 case 0xc3:
1113 case 0xc4:
1114 case 0xc1:
1115 case 0xd9:
1116 case 0xd7:
1117 default:
1118 nv_wr32(priv, 0x419eac, 0x11100702);
1119 break;
1120 }
1087 nv_wr32(priv, 0x419eb0, 0x00000003); 1121 nv_wr32(priv, 0x419eb0, 0x00000003);
1088 nv_wr32(priv, 0x419eb4, 0x00000000); 1122 nv_wr32(priv, 0x419eb4, 0x00000000);
1089 nv_wr32(priv, 0x419eb8, 0x00000000); 1123 nv_wr32(priv, 0x419eb8, 0x00000000);
@@ -1100,6 +1134,7 @@ nvc0_graph_init_tpc(struct nvc0_graph_priv *priv)
1100 nv_wr32(priv, 0x419ed0, 0x00003818); 1134 nv_wr32(priv, 0x419ed0, 0x00003818);
1101 break; 1135 break;
1102 case 0xc0: 1136 case 0xc0:
1137 case 0xc8:
1103 default: 1138 default:
1104 nv_wr32(priv, 0x419ec8, 0x06060618); 1139 nv_wr32(priv, 0x419ec8, 0x06060618);
1105 nv_wr32(priv, 0x419ed0, 0x0eff0e38); 1140 nv_wr32(priv, 0x419ed0, 0x0eff0e38);
@@ -1378,6 +1413,7 @@ nvc0_graph_init(struct nouveau_object *object)
1378 case 0xc3: 1413 case 0xc3:
1379 case 0xc4: 1414 case 0xc4:
1380 case 0xc1: 1415 case 0xc1:
1416 case 0xc8:
1381 case 0xd9: 1417 case 0xd9:
1382 case 0xd7: 1418 case 0xd7:
1383 nvc0_graph_init_unk40xx(priv); 1419 nvc0_graph_init_unk40xx(priv);