Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
[pandora-kernel.git] / drivers / gpu / drm / nouveau / nvc0_grctx.c
1 /*
2  * Copyright 2010 Red Hat Inc.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and associated documentation files (the "Software"),
6  * to deal in the Software without restriction, including without limitation
7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8  * and/or sell copies of the Software, and to permit persons to whom the
9  * Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20  * OTHER DEALINGS IN THE SOFTWARE.
21  *
22  * Authors: Ben Skeggs
23  */
24
25 #include "drmP.h"
26 #include "nouveau_drv.h"
27 #include "nouveau_mm.h"
28 #include "nvc0_graph.h"
29
30 static void
31 nv_icmd(struct drm_device *dev, u32 icmd, u32 data)
32 {
33         nv_wr32(dev, 0x400204, data);
34         nv_wr32(dev, 0x400200, icmd);
35         while (nv_rd32(dev, 0x400700) & 2) {}
36 }
37
38 static void
39 nv_mthd(struct drm_device *dev, u32 class, u32 mthd, u32 data)
40 {
41         nv_wr32(dev, 0x40448c, data);
42         nv_wr32(dev, 0x404488, 0x80000000 | (mthd << 14) | class);
43 }
44
45 static void
46 nvc0_grctx_generate_9097(struct drm_device *dev)
47 {
48         u32 fermi = nvc0_graph_class(dev);
49         u32 mthd;
50
51         nv_mthd(dev, 0x9097, 0x0800, 0x00000000);
52         nv_mthd(dev, 0x9097, 0x0840, 0x00000000);
53         nv_mthd(dev, 0x9097, 0x0880, 0x00000000);
54         nv_mthd(dev, 0x9097, 0x08c0, 0x00000000);
55         nv_mthd(dev, 0x9097, 0x0900, 0x00000000);
56         nv_mthd(dev, 0x9097, 0x0940, 0x00000000);
57         nv_mthd(dev, 0x9097, 0x0980, 0x00000000);
58         nv_mthd(dev, 0x9097, 0x09c0, 0x00000000);
59         nv_mthd(dev, 0x9097, 0x0804, 0x00000000);
60         nv_mthd(dev, 0x9097, 0x0844, 0x00000000);
61         nv_mthd(dev, 0x9097, 0x0884, 0x00000000);
62         nv_mthd(dev, 0x9097, 0x08c4, 0x00000000);
63         nv_mthd(dev, 0x9097, 0x0904, 0x00000000);
64         nv_mthd(dev, 0x9097, 0x0944, 0x00000000);
65         nv_mthd(dev, 0x9097, 0x0984, 0x00000000);
66         nv_mthd(dev, 0x9097, 0x09c4, 0x00000000);
67         nv_mthd(dev, 0x9097, 0x0808, 0x00000400);
68         nv_mthd(dev, 0x9097, 0x0848, 0x00000400);
69         nv_mthd(dev, 0x9097, 0x0888, 0x00000400);
70         nv_mthd(dev, 0x9097, 0x08c8, 0x00000400);
71         nv_mthd(dev, 0x9097, 0x0908, 0x00000400);
72         nv_mthd(dev, 0x9097, 0x0948, 0x00000400);
73         nv_mthd(dev, 0x9097, 0x0988, 0x00000400);
74         nv_mthd(dev, 0x9097, 0x09c8, 0x00000400);
75         nv_mthd(dev, 0x9097, 0x080c, 0x00000300);
76         nv_mthd(dev, 0x9097, 0x084c, 0x00000300);
77         nv_mthd(dev, 0x9097, 0x088c, 0x00000300);
78         nv_mthd(dev, 0x9097, 0x08cc, 0x00000300);
79         nv_mthd(dev, 0x9097, 0x090c, 0x00000300);
80         nv_mthd(dev, 0x9097, 0x094c, 0x00000300);
81         nv_mthd(dev, 0x9097, 0x098c, 0x00000300);
82         nv_mthd(dev, 0x9097, 0x09cc, 0x00000300);
83         nv_mthd(dev, 0x9097, 0x0810, 0x000000cf);
84         nv_mthd(dev, 0x9097, 0x0850, 0x00000000);
85         nv_mthd(dev, 0x9097, 0x0890, 0x00000000);
86         nv_mthd(dev, 0x9097, 0x08d0, 0x00000000);
87         nv_mthd(dev, 0x9097, 0x0910, 0x00000000);
88         nv_mthd(dev, 0x9097, 0x0950, 0x00000000);
89         nv_mthd(dev, 0x9097, 0x0990, 0x00000000);
90         nv_mthd(dev, 0x9097, 0x09d0, 0x00000000);
91         nv_mthd(dev, 0x9097, 0x0814, 0x00000040);
92         nv_mthd(dev, 0x9097, 0x0854, 0x00000040);
93         nv_mthd(dev, 0x9097, 0x0894, 0x00000040);
94         nv_mthd(dev, 0x9097, 0x08d4, 0x00000040);
95         nv_mthd(dev, 0x9097, 0x0914, 0x00000040);
96         nv_mthd(dev, 0x9097, 0x0954, 0x00000040);
97         nv_mthd(dev, 0x9097, 0x0994, 0x00000040);
98         nv_mthd(dev, 0x9097, 0x09d4, 0x00000040);
99         nv_mthd(dev, 0x9097, 0x0818, 0x00000001);
100         nv_mthd(dev, 0x9097, 0x0858, 0x00000001);
101         nv_mthd(dev, 0x9097, 0x0898, 0x00000001);
102         nv_mthd(dev, 0x9097, 0x08d8, 0x00000001);
103         nv_mthd(dev, 0x9097, 0x0918, 0x00000001);
104         nv_mthd(dev, 0x9097, 0x0958, 0x00000001);
105         nv_mthd(dev, 0x9097, 0x0998, 0x00000001);
106         nv_mthd(dev, 0x9097, 0x09d8, 0x00000001);
107         nv_mthd(dev, 0x9097, 0x081c, 0x00000000);
108         nv_mthd(dev, 0x9097, 0x085c, 0x00000000);
109         nv_mthd(dev, 0x9097, 0x089c, 0x00000000);
110         nv_mthd(dev, 0x9097, 0x08dc, 0x00000000);
111         nv_mthd(dev, 0x9097, 0x091c, 0x00000000);
112         nv_mthd(dev, 0x9097, 0x095c, 0x00000000);
113         nv_mthd(dev, 0x9097, 0x099c, 0x00000000);
114         nv_mthd(dev, 0x9097, 0x09dc, 0x00000000);
115         nv_mthd(dev, 0x9097, 0x0820, 0x00000000);
116         nv_mthd(dev, 0x9097, 0x0860, 0x00000000);
117         nv_mthd(dev, 0x9097, 0x08a0, 0x00000000);
118         nv_mthd(dev, 0x9097, 0x08e0, 0x00000000);
119         nv_mthd(dev, 0x9097, 0x0920, 0x00000000);
120         nv_mthd(dev, 0x9097, 0x0960, 0x00000000);
121         nv_mthd(dev, 0x9097, 0x09a0, 0x00000000);
122         nv_mthd(dev, 0x9097, 0x09e0, 0x00000000);
123         nv_mthd(dev, 0x9097, 0x2700, 0x00000000);
124         nv_mthd(dev, 0x9097, 0x2720, 0x00000000);
125         nv_mthd(dev, 0x9097, 0x2740, 0x00000000);
126         nv_mthd(dev, 0x9097, 0x2760, 0x00000000);
127         nv_mthd(dev, 0x9097, 0x2780, 0x00000000);
128         nv_mthd(dev, 0x9097, 0x27a0, 0x00000000);
129         nv_mthd(dev, 0x9097, 0x27c0, 0x00000000);
130         nv_mthd(dev, 0x9097, 0x27e0, 0x00000000);
131         nv_mthd(dev, 0x9097, 0x2704, 0x00000000);
132         nv_mthd(dev, 0x9097, 0x2724, 0x00000000);
133         nv_mthd(dev, 0x9097, 0x2744, 0x00000000);
134         nv_mthd(dev, 0x9097, 0x2764, 0x00000000);
135         nv_mthd(dev, 0x9097, 0x2784, 0x00000000);
136         nv_mthd(dev, 0x9097, 0x27a4, 0x00000000);
137         nv_mthd(dev, 0x9097, 0x27c4, 0x00000000);
138         nv_mthd(dev, 0x9097, 0x27e4, 0x00000000);
139         nv_mthd(dev, 0x9097, 0x2708, 0x00000000);
140         nv_mthd(dev, 0x9097, 0x2728, 0x00000000);
141         nv_mthd(dev, 0x9097, 0x2748, 0x00000000);
142         nv_mthd(dev, 0x9097, 0x2768, 0x00000000);
143         nv_mthd(dev, 0x9097, 0x2788, 0x00000000);
144         nv_mthd(dev, 0x9097, 0x27a8, 0x00000000);
145         nv_mthd(dev, 0x9097, 0x27c8, 0x00000000);
146         nv_mthd(dev, 0x9097, 0x27e8, 0x00000000);
147         nv_mthd(dev, 0x9097, 0x270c, 0x00000000);
148         nv_mthd(dev, 0x9097, 0x272c, 0x00000000);
149         nv_mthd(dev, 0x9097, 0x274c, 0x00000000);
150         nv_mthd(dev, 0x9097, 0x276c, 0x00000000);
151         nv_mthd(dev, 0x9097, 0x278c, 0x00000000);
152         nv_mthd(dev, 0x9097, 0x27ac, 0x00000000);
153         nv_mthd(dev, 0x9097, 0x27cc, 0x00000000);
154         nv_mthd(dev, 0x9097, 0x27ec, 0x00000000);
155         nv_mthd(dev, 0x9097, 0x2710, 0x00014000);
156         nv_mthd(dev, 0x9097, 0x2730, 0x00014000);
157         nv_mthd(dev, 0x9097, 0x2750, 0x00014000);
158         nv_mthd(dev, 0x9097, 0x2770, 0x00014000);
159         nv_mthd(dev, 0x9097, 0x2790, 0x00014000);
160         nv_mthd(dev, 0x9097, 0x27b0, 0x00014000);
161         nv_mthd(dev, 0x9097, 0x27d0, 0x00014000);
162         nv_mthd(dev, 0x9097, 0x27f0, 0x00014000);
163         nv_mthd(dev, 0x9097, 0x2714, 0x00000040);
164         nv_mthd(dev, 0x9097, 0x2734, 0x00000040);
165         nv_mthd(dev, 0x9097, 0x2754, 0x00000040);
166         nv_mthd(dev, 0x9097, 0x2774, 0x00000040);
167         nv_mthd(dev, 0x9097, 0x2794, 0x00000040);
168         nv_mthd(dev, 0x9097, 0x27b4, 0x00000040);
169         nv_mthd(dev, 0x9097, 0x27d4, 0x00000040);
170         nv_mthd(dev, 0x9097, 0x27f4, 0x00000040);
171         nv_mthd(dev, 0x9097, 0x1c00, 0x00000000);
172         nv_mthd(dev, 0x9097, 0x1c10, 0x00000000);
173         nv_mthd(dev, 0x9097, 0x1c20, 0x00000000);
174         nv_mthd(dev, 0x9097, 0x1c30, 0x00000000);
175         nv_mthd(dev, 0x9097, 0x1c40, 0x00000000);
176         nv_mthd(dev, 0x9097, 0x1c50, 0x00000000);
177         nv_mthd(dev, 0x9097, 0x1c60, 0x00000000);
178         nv_mthd(dev, 0x9097, 0x1c70, 0x00000000);
179         nv_mthd(dev, 0x9097, 0x1c80, 0x00000000);
180         nv_mthd(dev, 0x9097, 0x1c90, 0x00000000);
181         nv_mthd(dev, 0x9097, 0x1ca0, 0x00000000);
182         nv_mthd(dev, 0x9097, 0x1cb0, 0x00000000);
183         nv_mthd(dev, 0x9097, 0x1cc0, 0x00000000);
184         nv_mthd(dev, 0x9097, 0x1cd0, 0x00000000);
185         nv_mthd(dev, 0x9097, 0x1ce0, 0x00000000);
186         nv_mthd(dev, 0x9097, 0x1cf0, 0x00000000);
187         nv_mthd(dev, 0x9097, 0x1c04, 0x00000000);
188         nv_mthd(dev, 0x9097, 0x1c14, 0x00000000);
189         nv_mthd(dev, 0x9097, 0x1c24, 0x00000000);
190         nv_mthd(dev, 0x9097, 0x1c34, 0x00000000);
191         nv_mthd(dev, 0x9097, 0x1c44, 0x00000000);
192         nv_mthd(dev, 0x9097, 0x1c54, 0x00000000);
193         nv_mthd(dev, 0x9097, 0x1c64, 0x00000000);
194         nv_mthd(dev, 0x9097, 0x1c74, 0x00000000);
195         nv_mthd(dev, 0x9097, 0x1c84, 0x00000000);
196         nv_mthd(dev, 0x9097, 0x1c94, 0x00000000);
197         nv_mthd(dev, 0x9097, 0x1ca4, 0x00000000);
198         nv_mthd(dev, 0x9097, 0x1cb4, 0x00000000);
199         nv_mthd(dev, 0x9097, 0x1cc4, 0x00000000);
200         nv_mthd(dev, 0x9097, 0x1cd4, 0x00000000);
201         nv_mthd(dev, 0x9097, 0x1ce4, 0x00000000);
202         nv_mthd(dev, 0x9097, 0x1cf4, 0x00000000);
203         nv_mthd(dev, 0x9097, 0x1c08, 0x00000000);
204         nv_mthd(dev, 0x9097, 0x1c18, 0x00000000);
205         nv_mthd(dev, 0x9097, 0x1c28, 0x00000000);
206         nv_mthd(dev, 0x9097, 0x1c38, 0x00000000);
207         nv_mthd(dev, 0x9097, 0x1c48, 0x00000000);
208         nv_mthd(dev, 0x9097, 0x1c58, 0x00000000);
209         nv_mthd(dev, 0x9097, 0x1c68, 0x00000000);
210         nv_mthd(dev, 0x9097, 0x1c78, 0x00000000);
211         nv_mthd(dev, 0x9097, 0x1c88, 0x00000000);
212         nv_mthd(dev, 0x9097, 0x1c98, 0x00000000);
213         nv_mthd(dev, 0x9097, 0x1ca8, 0x00000000);
214         nv_mthd(dev, 0x9097, 0x1cb8, 0x00000000);
215         nv_mthd(dev, 0x9097, 0x1cc8, 0x00000000);
216         nv_mthd(dev, 0x9097, 0x1cd8, 0x00000000);
217         nv_mthd(dev, 0x9097, 0x1ce8, 0x00000000);
218         nv_mthd(dev, 0x9097, 0x1cf8, 0x00000000);
219         nv_mthd(dev, 0x9097, 0x1c0c, 0x00000000);
220         nv_mthd(dev, 0x9097, 0x1c1c, 0x00000000);
221         nv_mthd(dev, 0x9097, 0x1c2c, 0x00000000);
222         nv_mthd(dev, 0x9097, 0x1c3c, 0x00000000);
223         nv_mthd(dev, 0x9097, 0x1c4c, 0x00000000);
224         nv_mthd(dev, 0x9097, 0x1c5c, 0x00000000);
225         nv_mthd(dev, 0x9097, 0x1c6c, 0x00000000);
226         nv_mthd(dev, 0x9097, 0x1c7c, 0x00000000);
227         nv_mthd(dev, 0x9097, 0x1c8c, 0x00000000);
228         nv_mthd(dev, 0x9097, 0x1c9c, 0x00000000);
229         nv_mthd(dev, 0x9097, 0x1cac, 0x00000000);
230         nv_mthd(dev, 0x9097, 0x1cbc, 0x00000000);
231         nv_mthd(dev, 0x9097, 0x1ccc, 0x00000000);
232         nv_mthd(dev, 0x9097, 0x1cdc, 0x00000000);
233         nv_mthd(dev, 0x9097, 0x1cec, 0x00000000);
234         nv_mthd(dev, 0x9097, 0x1cfc, 0x00000000);
235         nv_mthd(dev, 0x9097, 0x1d00, 0x00000000);
236         nv_mthd(dev, 0x9097, 0x1d10, 0x00000000);
237         nv_mthd(dev, 0x9097, 0x1d20, 0x00000000);
238         nv_mthd(dev, 0x9097, 0x1d30, 0x00000000);
239         nv_mthd(dev, 0x9097, 0x1d40, 0x00000000);
240         nv_mthd(dev, 0x9097, 0x1d50, 0x00000000);
241         nv_mthd(dev, 0x9097, 0x1d60, 0x00000000);
242         nv_mthd(dev, 0x9097, 0x1d70, 0x00000000);
243         nv_mthd(dev, 0x9097, 0x1d80, 0x00000000);
244         nv_mthd(dev, 0x9097, 0x1d90, 0x00000000);
245         nv_mthd(dev, 0x9097, 0x1da0, 0x00000000);
246         nv_mthd(dev, 0x9097, 0x1db0, 0x00000000);
247         nv_mthd(dev, 0x9097, 0x1dc0, 0x00000000);
248         nv_mthd(dev, 0x9097, 0x1dd0, 0x00000000);
249         nv_mthd(dev, 0x9097, 0x1de0, 0x00000000);
250         nv_mthd(dev, 0x9097, 0x1df0, 0x00000000);
251         nv_mthd(dev, 0x9097, 0x1d04, 0x00000000);
252         nv_mthd(dev, 0x9097, 0x1d14, 0x00000000);
253         nv_mthd(dev, 0x9097, 0x1d24, 0x00000000);
254         nv_mthd(dev, 0x9097, 0x1d34, 0x00000000);
255         nv_mthd(dev, 0x9097, 0x1d44, 0x00000000);
256         nv_mthd(dev, 0x9097, 0x1d54, 0x00000000);
257         nv_mthd(dev, 0x9097, 0x1d64, 0x00000000);
258         nv_mthd(dev, 0x9097, 0x1d74, 0x00000000);
259         nv_mthd(dev, 0x9097, 0x1d84, 0x00000000);
260         nv_mthd(dev, 0x9097, 0x1d94, 0x00000000);
261         nv_mthd(dev, 0x9097, 0x1da4, 0x00000000);
262         nv_mthd(dev, 0x9097, 0x1db4, 0x00000000);
263         nv_mthd(dev, 0x9097, 0x1dc4, 0x00000000);
264         nv_mthd(dev, 0x9097, 0x1dd4, 0x00000000);
265         nv_mthd(dev, 0x9097, 0x1de4, 0x00000000);
266         nv_mthd(dev, 0x9097, 0x1df4, 0x00000000);
267         nv_mthd(dev, 0x9097, 0x1d08, 0x00000000);
268         nv_mthd(dev, 0x9097, 0x1d18, 0x00000000);
269         nv_mthd(dev, 0x9097, 0x1d28, 0x00000000);
270         nv_mthd(dev, 0x9097, 0x1d38, 0x00000000);
271         nv_mthd(dev, 0x9097, 0x1d48, 0x00000000);
272         nv_mthd(dev, 0x9097, 0x1d58, 0x00000000);
273         nv_mthd(dev, 0x9097, 0x1d68, 0x00000000);
274         nv_mthd(dev, 0x9097, 0x1d78, 0x00000000);
275         nv_mthd(dev, 0x9097, 0x1d88, 0x00000000);
276         nv_mthd(dev, 0x9097, 0x1d98, 0x00000000);
277         nv_mthd(dev, 0x9097, 0x1da8, 0x00000000);
278         nv_mthd(dev, 0x9097, 0x1db8, 0x00000000);
279         nv_mthd(dev, 0x9097, 0x1dc8, 0x00000000);
280         nv_mthd(dev, 0x9097, 0x1dd8, 0x00000000);
281         nv_mthd(dev, 0x9097, 0x1de8, 0x00000000);
282         nv_mthd(dev, 0x9097, 0x1df8, 0x00000000);
283         nv_mthd(dev, 0x9097, 0x1d0c, 0x00000000);
284         nv_mthd(dev, 0x9097, 0x1d1c, 0x00000000);
285         nv_mthd(dev, 0x9097, 0x1d2c, 0x00000000);
286         nv_mthd(dev, 0x9097, 0x1d3c, 0x00000000);
287         nv_mthd(dev, 0x9097, 0x1d4c, 0x00000000);
288         nv_mthd(dev, 0x9097, 0x1d5c, 0x00000000);
289         nv_mthd(dev, 0x9097, 0x1d6c, 0x00000000);
290         nv_mthd(dev, 0x9097, 0x1d7c, 0x00000000);
291         nv_mthd(dev, 0x9097, 0x1d8c, 0x00000000);
292         nv_mthd(dev, 0x9097, 0x1d9c, 0x00000000);
293         nv_mthd(dev, 0x9097, 0x1dac, 0x00000000);
294         nv_mthd(dev, 0x9097, 0x1dbc, 0x00000000);
295         nv_mthd(dev, 0x9097, 0x1dcc, 0x00000000);
296         nv_mthd(dev, 0x9097, 0x1ddc, 0x00000000);
297         nv_mthd(dev, 0x9097, 0x1dec, 0x00000000);
298         nv_mthd(dev, 0x9097, 0x1dfc, 0x00000000);
299         nv_mthd(dev, 0x9097, 0x1f00, 0x00000000);
300         nv_mthd(dev, 0x9097, 0x1f08, 0x00000000);
301         nv_mthd(dev, 0x9097, 0x1f10, 0x00000000);
302         nv_mthd(dev, 0x9097, 0x1f18, 0x00000000);
303         nv_mthd(dev, 0x9097, 0x1f20, 0x00000000);
304         nv_mthd(dev, 0x9097, 0x1f28, 0x00000000);
305         nv_mthd(dev, 0x9097, 0x1f30, 0x00000000);
306         nv_mthd(dev, 0x9097, 0x1f38, 0x00000000);
307         nv_mthd(dev, 0x9097, 0x1f40, 0x00000000);
308         nv_mthd(dev, 0x9097, 0x1f48, 0x00000000);
309         nv_mthd(dev, 0x9097, 0x1f50, 0x00000000);
310         nv_mthd(dev, 0x9097, 0x1f58, 0x00000000);
311         nv_mthd(dev, 0x9097, 0x1f60, 0x00000000);
312         nv_mthd(dev, 0x9097, 0x1f68, 0x00000000);
313         nv_mthd(dev, 0x9097, 0x1f70, 0x00000000);
314         nv_mthd(dev, 0x9097, 0x1f78, 0x00000000);
315         nv_mthd(dev, 0x9097, 0x1f04, 0x00000000);
316         nv_mthd(dev, 0x9097, 0x1f0c, 0x00000000);
317         nv_mthd(dev, 0x9097, 0x1f14, 0x00000000);
318         nv_mthd(dev, 0x9097, 0x1f1c, 0x00000000);
319         nv_mthd(dev, 0x9097, 0x1f24, 0x00000000);
320         nv_mthd(dev, 0x9097, 0x1f2c, 0x00000000);
321         nv_mthd(dev, 0x9097, 0x1f34, 0x00000000);
322         nv_mthd(dev, 0x9097, 0x1f3c, 0x00000000);
323         nv_mthd(dev, 0x9097, 0x1f44, 0x00000000);
324         nv_mthd(dev, 0x9097, 0x1f4c, 0x00000000);
325         nv_mthd(dev, 0x9097, 0x1f54, 0x00000000);
326         nv_mthd(dev, 0x9097, 0x1f5c, 0x00000000);
327         nv_mthd(dev, 0x9097, 0x1f64, 0x00000000);
328         nv_mthd(dev, 0x9097, 0x1f6c, 0x00000000);
329         nv_mthd(dev, 0x9097, 0x1f74, 0x00000000);
330         nv_mthd(dev, 0x9097, 0x1f7c, 0x00000000);
331         nv_mthd(dev, 0x9097, 0x1f80, 0x00000000);
332         nv_mthd(dev, 0x9097, 0x1f88, 0x00000000);
333         nv_mthd(dev, 0x9097, 0x1f90, 0x00000000);
334         nv_mthd(dev, 0x9097, 0x1f98, 0x00000000);
335         nv_mthd(dev, 0x9097, 0x1fa0, 0x00000000);
336         nv_mthd(dev, 0x9097, 0x1fa8, 0x00000000);
337         nv_mthd(dev, 0x9097, 0x1fb0, 0x00000000);
338         nv_mthd(dev, 0x9097, 0x1fb8, 0x00000000);
339         nv_mthd(dev, 0x9097, 0x1fc0, 0x00000000);
340         nv_mthd(dev, 0x9097, 0x1fc8, 0x00000000);
341         nv_mthd(dev, 0x9097, 0x1fd0, 0x00000000);
342         nv_mthd(dev, 0x9097, 0x1fd8, 0x00000000);
343         nv_mthd(dev, 0x9097, 0x1fe0, 0x00000000);
344         nv_mthd(dev, 0x9097, 0x1fe8, 0x00000000);
345         nv_mthd(dev, 0x9097, 0x1ff0, 0x00000000);
346         nv_mthd(dev, 0x9097, 0x1ff8, 0x00000000);
347         nv_mthd(dev, 0x9097, 0x1f84, 0x00000000);
348         nv_mthd(dev, 0x9097, 0x1f8c, 0x00000000);
349         nv_mthd(dev, 0x9097, 0x1f94, 0x00000000);
350         nv_mthd(dev, 0x9097, 0x1f9c, 0x00000000);
351         nv_mthd(dev, 0x9097, 0x1fa4, 0x00000000);
352         nv_mthd(dev, 0x9097, 0x1fac, 0x00000000);
353         nv_mthd(dev, 0x9097, 0x1fb4, 0x00000000);
354         nv_mthd(dev, 0x9097, 0x1fbc, 0x00000000);
355         nv_mthd(dev, 0x9097, 0x1fc4, 0x00000000);
356         nv_mthd(dev, 0x9097, 0x1fcc, 0x00000000);
357         nv_mthd(dev, 0x9097, 0x1fd4, 0x00000000);
358         nv_mthd(dev, 0x9097, 0x1fdc, 0x00000000);
359         nv_mthd(dev, 0x9097, 0x1fe4, 0x00000000);
360         nv_mthd(dev, 0x9097, 0x1fec, 0x00000000);
361         nv_mthd(dev, 0x9097, 0x1ff4, 0x00000000);
362         nv_mthd(dev, 0x9097, 0x1ffc, 0x00000000);
363         nv_mthd(dev, 0x9097, 0x2200, 0x00000022);
364         nv_mthd(dev, 0x9097, 0x2210, 0x00000022);
365         nv_mthd(dev, 0x9097, 0x2220, 0x00000022);
366         nv_mthd(dev, 0x9097, 0x2230, 0x00000022);
367         nv_mthd(dev, 0x9097, 0x2240, 0x00000022);
368         nv_mthd(dev, 0x9097, 0x2000, 0x00000000);
369         nv_mthd(dev, 0x9097, 0x2040, 0x00000011);
370         nv_mthd(dev, 0x9097, 0x2080, 0x00000020);
371         nv_mthd(dev, 0x9097, 0x20c0, 0x00000030);
372         nv_mthd(dev, 0x9097, 0x2100, 0x00000040);
373         nv_mthd(dev, 0x9097, 0x2140, 0x00000051);
374         nv_mthd(dev, 0x9097, 0x200c, 0x00000001);
375         nv_mthd(dev, 0x9097, 0x204c, 0x00000001);
376         nv_mthd(dev, 0x9097, 0x208c, 0x00000001);
377         nv_mthd(dev, 0x9097, 0x20cc, 0x00000001);
378         nv_mthd(dev, 0x9097, 0x210c, 0x00000001);
379         nv_mthd(dev, 0x9097, 0x214c, 0x00000001);
380         nv_mthd(dev, 0x9097, 0x2010, 0x00000000);
381         nv_mthd(dev, 0x9097, 0x2050, 0x00000000);
382         nv_mthd(dev, 0x9097, 0x2090, 0x00000001);
383         nv_mthd(dev, 0x9097, 0x20d0, 0x00000002);
384         nv_mthd(dev, 0x9097, 0x2110, 0x00000003);
385         nv_mthd(dev, 0x9097, 0x2150, 0x00000004);
386         nv_mthd(dev, 0x9097, 0x0380, 0x00000000);
387         nv_mthd(dev, 0x9097, 0x03a0, 0x00000000);
388         nv_mthd(dev, 0x9097, 0x03c0, 0x00000000);
389         nv_mthd(dev, 0x9097, 0x03e0, 0x00000000);
390         nv_mthd(dev, 0x9097, 0x0384, 0x00000000);
391         nv_mthd(dev, 0x9097, 0x03a4, 0x00000000);
392         nv_mthd(dev, 0x9097, 0x03c4, 0x00000000);
393         nv_mthd(dev, 0x9097, 0x03e4, 0x00000000);
394         nv_mthd(dev, 0x9097, 0x0388, 0x00000000);
395         nv_mthd(dev, 0x9097, 0x03a8, 0x00000000);
396         nv_mthd(dev, 0x9097, 0x03c8, 0x00000000);
397         nv_mthd(dev, 0x9097, 0x03e8, 0x00000000);
398         nv_mthd(dev, 0x9097, 0x038c, 0x00000000);
399         nv_mthd(dev, 0x9097, 0x03ac, 0x00000000);
400         nv_mthd(dev, 0x9097, 0x03cc, 0x00000000);
401         nv_mthd(dev, 0x9097, 0x03ec, 0x00000000);
402         nv_mthd(dev, 0x9097, 0x0700, 0x00000000);
403         nv_mthd(dev, 0x9097, 0x0710, 0x00000000);
404         nv_mthd(dev, 0x9097, 0x0720, 0x00000000);
405         nv_mthd(dev, 0x9097, 0x0730, 0x00000000);
406         nv_mthd(dev, 0x9097, 0x0704, 0x00000000);
407         nv_mthd(dev, 0x9097, 0x0714, 0x00000000);
408         nv_mthd(dev, 0x9097, 0x0724, 0x00000000);
409         nv_mthd(dev, 0x9097, 0x0734, 0x00000000);
410         nv_mthd(dev, 0x9097, 0x0708, 0x00000000);
411         nv_mthd(dev, 0x9097, 0x0718, 0x00000000);
412         nv_mthd(dev, 0x9097, 0x0728, 0x00000000);
413         nv_mthd(dev, 0x9097, 0x0738, 0x00000000);
414         nv_mthd(dev, 0x9097, 0x2800, 0x00000000);
415         nv_mthd(dev, 0x9097, 0x2804, 0x00000000);
416         nv_mthd(dev, 0x9097, 0x2808, 0x00000000);
417         nv_mthd(dev, 0x9097, 0x280c, 0x00000000);
418         nv_mthd(dev, 0x9097, 0x2810, 0x00000000);
419         nv_mthd(dev, 0x9097, 0x2814, 0x00000000);
420         nv_mthd(dev, 0x9097, 0x2818, 0x00000000);
421         nv_mthd(dev, 0x9097, 0x281c, 0x00000000);
422         nv_mthd(dev, 0x9097, 0x2820, 0x00000000);
423         nv_mthd(dev, 0x9097, 0x2824, 0x00000000);
424         nv_mthd(dev, 0x9097, 0x2828, 0x00000000);
425         nv_mthd(dev, 0x9097, 0x282c, 0x00000000);
426         nv_mthd(dev, 0x9097, 0x2830, 0x00000000);
427         nv_mthd(dev, 0x9097, 0x2834, 0x00000000);
428         nv_mthd(dev, 0x9097, 0x2838, 0x00000000);
429         nv_mthd(dev, 0x9097, 0x283c, 0x00000000);
430         nv_mthd(dev, 0x9097, 0x2840, 0x00000000);
431         nv_mthd(dev, 0x9097, 0x2844, 0x00000000);
432         nv_mthd(dev, 0x9097, 0x2848, 0x00000000);
433         nv_mthd(dev, 0x9097, 0x284c, 0x00000000);
434         nv_mthd(dev, 0x9097, 0x2850, 0x00000000);
435         nv_mthd(dev, 0x9097, 0x2854, 0x00000000);
436         nv_mthd(dev, 0x9097, 0x2858, 0x00000000);
437         nv_mthd(dev, 0x9097, 0x285c, 0x00000000);
438         nv_mthd(dev, 0x9097, 0x2860, 0x00000000);
439         nv_mthd(dev, 0x9097, 0x2864, 0x00000000);
440         nv_mthd(dev, 0x9097, 0x2868, 0x00000000);
441         nv_mthd(dev, 0x9097, 0x286c, 0x00000000);
442         nv_mthd(dev, 0x9097, 0x2870, 0x00000000);
443         nv_mthd(dev, 0x9097, 0x2874, 0x00000000);
444         nv_mthd(dev, 0x9097, 0x2878, 0x00000000);
445         nv_mthd(dev, 0x9097, 0x287c, 0x00000000);
446         nv_mthd(dev, 0x9097, 0x2880, 0x00000000);
447         nv_mthd(dev, 0x9097, 0x2884, 0x00000000);
448         nv_mthd(dev, 0x9097, 0x2888, 0x00000000);
449         nv_mthd(dev, 0x9097, 0x288c, 0x00000000);
450         nv_mthd(dev, 0x9097, 0x2890, 0x00000000);
451         nv_mthd(dev, 0x9097, 0x2894, 0x00000000);
452         nv_mthd(dev, 0x9097, 0x2898, 0x00000000);
453         nv_mthd(dev, 0x9097, 0x289c, 0x00000000);
454         nv_mthd(dev, 0x9097, 0x28a0, 0x00000000);
455         nv_mthd(dev, 0x9097, 0x28a4, 0x00000000);
456         nv_mthd(dev, 0x9097, 0x28a8, 0x00000000);
457         nv_mthd(dev, 0x9097, 0x28ac, 0x00000000);
458         nv_mthd(dev, 0x9097, 0x28b0, 0x00000000);
459         nv_mthd(dev, 0x9097, 0x28b4, 0x00000000);
460         nv_mthd(dev, 0x9097, 0x28b8, 0x00000000);
461         nv_mthd(dev, 0x9097, 0x28bc, 0x00000000);
462         nv_mthd(dev, 0x9097, 0x28c0, 0x00000000);
463         nv_mthd(dev, 0x9097, 0x28c4, 0x00000000);
464         nv_mthd(dev, 0x9097, 0x28c8, 0x00000000);
465         nv_mthd(dev, 0x9097, 0x28cc, 0x00000000);
466         nv_mthd(dev, 0x9097, 0x28d0, 0x00000000);
467         nv_mthd(dev, 0x9097, 0x28d4, 0x00000000);
468         nv_mthd(dev, 0x9097, 0x28d8, 0x00000000);
469         nv_mthd(dev, 0x9097, 0x28dc, 0x00000000);
470         nv_mthd(dev, 0x9097, 0x28e0, 0x00000000);
471         nv_mthd(dev, 0x9097, 0x28e4, 0x00000000);
472         nv_mthd(dev, 0x9097, 0x28e8, 0x00000000);
473         nv_mthd(dev, 0x9097, 0x28ec, 0x00000000);
474         nv_mthd(dev, 0x9097, 0x28f0, 0x00000000);
475         nv_mthd(dev, 0x9097, 0x28f4, 0x00000000);
476         nv_mthd(dev, 0x9097, 0x28f8, 0x00000000);
477         nv_mthd(dev, 0x9097, 0x28fc, 0x00000000);
478         nv_mthd(dev, 0x9097, 0x2900, 0x00000000);
479         nv_mthd(dev, 0x9097, 0x2904, 0x00000000);
480         nv_mthd(dev, 0x9097, 0x2908, 0x00000000);
481         nv_mthd(dev, 0x9097, 0x290c, 0x00000000);
482         nv_mthd(dev, 0x9097, 0x2910, 0x00000000);
483         nv_mthd(dev, 0x9097, 0x2914, 0x00000000);
484         nv_mthd(dev, 0x9097, 0x2918, 0x00000000);
485         nv_mthd(dev, 0x9097, 0x291c, 0x00000000);
486         nv_mthd(dev, 0x9097, 0x2920, 0x00000000);
487         nv_mthd(dev, 0x9097, 0x2924, 0x00000000);
488         nv_mthd(dev, 0x9097, 0x2928, 0x00000000);
489         nv_mthd(dev, 0x9097, 0x292c, 0x00000000);
490         nv_mthd(dev, 0x9097, 0x2930, 0x00000000);
491         nv_mthd(dev, 0x9097, 0x2934, 0x00000000);
492         nv_mthd(dev, 0x9097, 0x2938, 0x00000000);
493         nv_mthd(dev, 0x9097, 0x293c, 0x00000000);
494         nv_mthd(dev, 0x9097, 0x2940, 0x00000000);
495         nv_mthd(dev, 0x9097, 0x2944, 0x00000000);
496         nv_mthd(dev, 0x9097, 0x2948, 0x00000000);
497         nv_mthd(dev, 0x9097, 0x294c, 0x00000000);
498         nv_mthd(dev, 0x9097, 0x2950, 0x00000000);
499         nv_mthd(dev, 0x9097, 0x2954, 0x00000000);
500         nv_mthd(dev, 0x9097, 0x2958, 0x00000000);
501         nv_mthd(dev, 0x9097, 0x295c, 0x00000000);
502         nv_mthd(dev, 0x9097, 0x2960, 0x00000000);
503         nv_mthd(dev, 0x9097, 0x2964, 0x00000000);
504         nv_mthd(dev, 0x9097, 0x2968, 0x00000000);
505         nv_mthd(dev, 0x9097, 0x296c, 0x00000000);
506         nv_mthd(dev, 0x9097, 0x2970, 0x00000000);
507         nv_mthd(dev, 0x9097, 0x2974, 0x00000000);
508         nv_mthd(dev, 0x9097, 0x2978, 0x00000000);
509         nv_mthd(dev, 0x9097, 0x297c, 0x00000000);
510         nv_mthd(dev, 0x9097, 0x2980, 0x00000000);
511         nv_mthd(dev, 0x9097, 0x2984, 0x00000000);
512         nv_mthd(dev, 0x9097, 0x2988, 0x00000000);
513         nv_mthd(dev, 0x9097, 0x298c, 0x00000000);
514         nv_mthd(dev, 0x9097, 0x2990, 0x00000000);
515         nv_mthd(dev, 0x9097, 0x2994, 0x00000000);
516         nv_mthd(dev, 0x9097, 0x2998, 0x00000000);
517         nv_mthd(dev, 0x9097, 0x299c, 0x00000000);
518         nv_mthd(dev, 0x9097, 0x29a0, 0x00000000);
519         nv_mthd(dev, 0x9097, 0x29a4, 0x00000000);
520         nv_mthd(dev, 0x9097, 0x29a8, 0x00000000);
521         nv_mthd(dev, 0x9097, 0x29ac, 0x00000000);
522         nv_mthd(dev, 0x9097, 0x29b0, 0x00000000);
523         nv_mthd(dev, 0x9097, 0x29b4, 0x00000000);
524         nv_mthd(dev, 0x9097, 0x29b8, 0x00000000);
525         nv_mthd(dev, 0x9097, 0x29bc, 0x00000000);
526         nv_mthd(dev, 0x9097, 0x29c0, 0x00000000);
527         nv_mthd(dev, 0x9097, 0x29c4, 0x00000000);
528         nv_mthd(dev, 0x9097, 0x29c8, 0x00000000);
529         nv_mthd(dev, 0x9097, 0x29cc, 0x00000000);
530         nv_mthd(dev, 0x9097, 0x29d0, 0x00000000);
531         nv_mthd(dev, 0x9097, 0x29d4, 0x00000000);
532         nv_mthd(dev, 0x9097, 0x29d8, 0x00000000);
533         nv_mthd(dev, 0x9097, 0x29dc, 0x00000000);
534         nv_mthd(dev, 0x9097, 0x29e0, 0x00000000);
535         nv_mthd(dev, 0x9097, 0x29e4, 0x00000000);
536         nv_mthd(dev, 0x9097, 0x29e8, 0x00000000);
537         nv_mthd(dev, 0x9097, 0x29ec, 0x00000000);
538         nv_mthd(dev, 0x9097, 0x29f0, 0x00000000);
539         nv_mthd(dev, 0x9097, 0x29f4, 0x00000000);
540         nv_mthd(dev, 0x9097, 0x29f8, 0x00000000);
541         nv_mthd(dev, 0x9097, 0x29fc, 0x00000000);
542         nv_mthd(dev, 0x9097, 0x0a00, 0x00000000);
543         nv_mthd(dev, 0x9097, 0x0a20, 0x00000000);
544         nv_mthd(dev, 0x9097, 0x0a40, 0x00000000);
545         nv_mthd(dev, 0x9097, 0x0a60, 0x00000000);
546         nv_mthd(dev, 0x9097, 0x0a80, 0x00000000);
547         nv_mthd(dev, 0x9097, 0x0aa0, 0x00000000);
548         nv_mthd(dev, 0x9097, 0x0ac0, 0x00000000);
549         nv_mthd(dev, 0x9097, 0x0ae0, 0x00000000);
550         nv_mthd(dev, 0x9097, 0x0b00, 0x00000000);
551         nv_mthd(dev, 0x9097, 0x0b20, 0x00000000);
552         nv_mthd(dev, 0x9097, 0x0b40, 0x00000000);
553         nv_mthd(dev, 0x9097, 0x0b60, 0x00000000);
554         nv_mthd(dev, 0x9097, 0x0b80, 0x00000000);
555         nv_mthd(dev, 0x9097, 0x0ba0, 0x00000000);
556         nv_mthd(dev, 0x9097, 0x0bc0, 0x00000000);
557         nv_mthd(dev, 0x9097, 0x0be0, 0x00000000);
558         nv_mthd(dev, 0x9097, 0x0a04, 0x00000000);
559         nv_mthd(dev, 0x9097, 0x0a24, 0x00000000);
560         nv_mthd(dev, 0x9097, 0x0a44, 0x00000000);
561         nv_mthd(dev, 0x9097, 0x0a64, 0x00000000);
562         nv_mthd(dev, 0x9097, 0x0a84, 0x00000000);
563         nv_mthd(dev, 0x9097, 0x0aa4, 0x00000000);
564         nv_mthd(dev, 0x9097, 0x0ac4, 0x00000000);
565         nv_mthd(dev, 0x9097, 0x0ae4, 0x00000000);
566         nv_mthd(dev, 0x9097, 0x0b04, 0x00000000);
567         nv_mthd(dev, 0x9097, 0x0b24, 0x00000000);
568         nv_mthd(dev, 0x9097, 0x0b44, 0x00000000);
569         nv_mthd(dev, 0x9097, 0x0b64, 0x00000000);
570         nv_mthd(dev, 0x9097, 0x0b84, 0x00000000);
571         nv_mthd(dev, 0x9097, 0x0ba4, 0x00000000);
572         nv_mthd(dev, 0x9097, 0x0bc4, 0x00000000);
573         nv_mthd(dev, 0x9097, 0x0be4, 0x00000000);
574         nv_mthd(dev, 0x9097, 0x0a08, 0x00000000);
575         nv_mthd(dev, 0x9097, 0x0a28, 0x00000000);
576         nv_mthd(dev, 0x9097, 0x0a48, 0x00000000);
577         nv_mthd(dev, 0x9097, 0x0a68, 0x00000000);
578         nv_mthd(dev, 0x9097, 0x0a88, 0x00000000);
579         nv_mthd(dev, 0x9097, 0x0aa8, 0x00000000);
580         nv_mthd(dev, 0x9097, 0x0ac8, 0x00000000);
581         nv_mthd(dev, 0x9097, 0x0ae8, 0x00000000);
582         nv_mthd(dev, 0x9097, 0x0b08, 0x00000000);
583         nv_mthd(dev, 0x9097, 0x0b28, 0x00000000);
584         nv_mthd(dev, 0x9097, 0x0b48, 0x00000000);
585         nv_mthd(dev, 0x9097, 0x0b68, 0x00000000);
586         nv_mthd(dev, 0x9097, 0x0b88, 0x00000000);
587         nv_mthd(dev, 0x9097, 0x0ba8, 0x00000000);
588         nv_mthd(dev, 0x9097, 0x0bc8, 0x00000000);
589         nv_mthd(dev, 0x9097, 0x0be8, 0x00000000);
590         nv_mthd(dev, 0x9097, 0x0a0c, 0x00000000);
591         nv_mthd(dev, 0x9097, 0x0a2c, 0x00000000);
592         nv_mthd(dev, 0x9097, 0x0a4c, 0x00000000);
593         nv_mthd(dev, 0x9097, 0x0a6c, 0x00000000);
594         nv_mthd(dev, 0x9097, 0x0a8c, 0x00000000);
595         nv_mthd(dev, 0x9097, 0x0aac, 0x00000000);
596         nv_mthd(dev, 0x9097, 0x0acc, 0x00000000);
597         nv_mthd(dev, 0x9097, 0x0aec, 0x00000000);
598         nv_mthd(dev, 0x9097, 0x0b0c, 0x00000000);
599         nv_mthd(dev, 0x9097, 0x0b2c, 0x00000000);
600         nv_mthd(dev, 0x9097, 0x0b4c, 0x00000000);
601         nv_mthd(dev, 0x9097, 0x0b6c, 0x00000000);
602         nv_mthd(dev, 0x9097, 0x0b8c, 0x00000000);
603         nv_mthd(dev, 0x9097, 0x0bac, 0x00000000);
604         nv_mthd(dev, 0x9097, 0x0bcc, 0x00000000);
605         nv_mthd(dev, 0x9097, 0x0bec, 0x00000000);
606         nv_mthd(dev, 0x9097, 0x0a10, 0x00000000);
607         nv_mthd(dev, 0x9097, 0x0a30, 0x00000000);
608         nv_mthd(dev, 0x9097, 0x0a50, 0x00000000);
609         nv_mthd(dev, 0x9097, 0x0a70, 0x00000000);
610         nv_mthd(dev, 0x9097, 0x0a90, 0x00000000);
611         nv_mthd(dev, 0x9097, 0x0ab0, 0x00000000);
612         nv_mthd(dev, 0x9097, 0x0ad0, 0x00000000);
613         nv_mthd(dev, 0x9097, 0x0af0, 0x00000000);
614         nv_mthd(dev, 0x9097, 0x0b10, 0x00000000);
615         nv_mthd(dev, 0x9097, 0x0b30, 0x00000000);
616         nv_mthd(dev, 0x9097, 0x0b50, 0x00000000);
617         nv_mthd(dev, 0x9097, 0x0b70, 0x00000000);
618         nv_mthd(dev, 0x9097, 0x0b90, 0x00000000);
619         nv_mthd(dev, 0x9097, 0x0bb0, 0x00000000);
620         nv_mthd(dev, 0x9097, 0x0bd0, 0x00000000);
621         nv_mthd(dev, 0x9097, 0x0bf0, 0x00000000);
622         nv_mthd(dev, 0x9097, 0x0a14, 0x00000000);
623         nv_mthd(dev, 0x9097, 0x0a34, 0x00000000);
624         nv_mthd(dev, 0x9097, 0x0a54, 0x00000000);
625         nv_mthd(dev, 0x9097, 0x0a74, 0x00000000);
626         nv_mthd(dev, 0x9097, 0x0a94, 0x00000000);
627         nv_mthd(dev, 0x9097, 0x0ab4, 0x00000000);
628         nv_mthd(dev, 0x9097, 0x0ad4, 0x00000000);
629         nv_mthd(dev, 0x9097, 0x0af4, 0x00000000);
630         nv_mthd(dev, 0x9097, 0x0b14, 0x00000000);
631         nv_mthd(dev, 0x9097, 0x0b34, 0x00000000);
632         nv_mthd(dev, 0x9097, 0x0b54, 0x00000000);
633         nv_mthd(dev, 0x9097, 0x0b74, 0x00000000);
634         nv_mthd(dev, 0x9097, 0x0b94, 0x00000000);
635         nv_mthd(dev, 0x9097, 0x0bb4, 0x00000000);
636         nv_mthd(dev, 0x9097, 0x0bd4, 0x00000000);
637         nv_mthd(dev, 0x9097, 0x0bf4, 0x00000000);
638         nv_mthd(dev, 0x9097, 0x0c00, 0x00000000);
639         nv_mthd(dev, 0x9097, 0x0c10, 0x00000000);
640         nv_mthd(dev, 0x9097, 0x0c20, 0x00000000);
641         nv_mthd(dev, 0x9097, 0x0c30, 0x00000000);
642         nv_mthd(dev, 0x9097, 0x0c40, 0x00000000);
643         nv_mthd(dev, 0x9097, 0x0c50, 0x00000000);
644         nv_mthd(dev, 0x9097, 0x0c60, 0x00000000);
645         nv_mthd(dev, 0x9097, 0x0c70, 0x00000000);
646         nv_mthd(dev, 0x9097, 0x0c80, 0x00000000);
647         nv_mthd(dev, 0x9097, 0x0c90, 0x00000000);
648         nv_mthd(dev, 0x9097, 0x0ca0, 0x00000000);
649         nv_mthd(dev, 0x9097, 0x0cb0, 0x00000000);
650         nv_mthd(dev, 0x9097, 0x0cc0, 0x00000000);
651         nv_mthd(dev, 0x9097, 0x0cd0, 0x00000000);
652         nv_mthd(dev, 0x9097, 0x0ce0, 0x00000000);
653         nv_mthd(dev, 0x9097, 0x0cf0, 0x00000000);
654         nv_mthd(dev, 0x9097, 0x0c04, 0x00000000);
655         nv_mthd(dev, 0x9097, 0x0c14, 0x00000000);
656         nv_mthd(dev, 0x9097, 0x0c24, 0x00000000);
657         nv_mthd(dev, 0x9097, 0x0c34, 0x00000000);
658         nv_mthd(dev, 0x9097, 0x0c44, 0x00000000);
659         nv_mthd(dev, 0x9097, 0x0c54, 0x00000000);
660         nv_mthd(dev, 0x9097, 0x0c64, 0x00000000);
661         nv_mthd(dev, 0x9097, 0x0c74, 0x00000000);
662         nv_mthd(dev, 0x9097, 0x0c84, 0x00000000);
663         nv_mthd(dev, 0x9097, 0x0c94, 0x00000000);
664         nv_mthd(dev, 0x9097, 0x0ca4, 0x00000000);
665         nv_mthd(dev, 0x9097, 0x0cb4, 0x00000000);
666         nv_mthd(dev, 0x9097, 0x0cc4, 0x00000000);
667         nv_mthd(dev, 0x9097, 0x0cd4, 0x00000000);
668         nv_mthd(dev, 0x9097, 0x0ce4, 0x00000000);
669         nv_mthd(dev, 0x9097, 0x0cf4, 0x00000000);
670         nv_mthd(dev, 0x9097, 0x0c08, 0x00000000);
671         nv_mthd(dev, 0x9097, 0x0c18, 0x00000000);
672         nv_mthd(dev, 0x9097, 0x0c28, 0x00000000);
673         nv_mthd(dev, 0x9097, 0x0c38, 0x00000000);
674         nv_mthd(dev, 0x9097, 0x0c48, 0x00000000);
675         nv_mthd(dev, 0x9097, 0x0c58, 0x00000000);
676         nv_mthd(dev, 0x9097, 0x0c68, 0x00000000);
677         nv_mthd(dev, 0x9097, 0x0c78, 0x00000000);
678         nv_mthd(dev, 0x9097, 0x0c88, 0x00000000);
679         nv_mthd(dev, 0x9097, 0x0c98, 0x00000000);
680         nv_mthd(dev, 0x9097, 0x0ca8, 0x00000000);
681         nv_mthd(dev, 0x9097, 0x0cb8, 0x00000000);
682         nv_mthd(dev, 0x9097, 0x0cc8, 0x00000000);
683         nv_mthd(dev, 0x9097, 0x0cd8, 0x00000000);
684         nv_mthd(dev, 0x9097, 0x0ce8, 0x00000000);
685         nv_mthd(dev, 0x9097, 0x0cf8, 0x00000000);
686         nv_mthd(dev, 0x9097, 0x0c0c, 0x3f800000);
687         nv_mthd(dev, 0x9097, 0x0c1c, 0x3f800000);
688         nv_mthd(dev, 0x9097, 0x0c2c, 0x3f800000);
689         nv_mthd(dev, 0x9097, 0x0c3c, 0x3f800000);
690         nv_mthd(dev, 0x9097, 0x0c4c, 0x3f800000);
691         nv_mthd(dev, 0x9097, 0x0c5c, 0x3f800000);
692         nv_mthd(dev, 0x9097, 0x0c6c, 0x3f800000);
693         nv_mthd(dev, 0x9097, 0x0c7c, 0x3f800000);
694         nv_mthd(dev, 0x9097, 0x0c8c, 0x3f800000);
695         nv_mthd(dev, 0x9097, 0x0c9c, 0x3f800000);
696         nv_mthd(dev, 0x9097, 0x0cac, 0x3f800000);
697         nv_mthd(dev, 0x9097, 0x0cbc, 0x3f800000);
698         nv_mthd(dev, 0x9097, 0x0ccc, 0x3f800000);
699         nv_mthd(dev, 0x9097, 0x0cdc, 0x3f800000);
700         nv_mthd(dev, 0x9097, 0x0cec, 0x3f800000);
701         nv_mthd(dev, 0x9097, 0x0cfc, 0x3f800000);
702         nv_mthd(dev, 0x9097, 0x0d00, 0xffff0000);
703         nv_mthd(dev, 0x9097, 0x0d08, 0xffff0000);
704         nv_mthd(dev, 0x9097, 0x0d10, 0xffff0000);
705         nv_mthd(dev, 0x9097, 0x0d18, 0xffff0000);
706         nv_mthd(dev, 0x9097, 0x0d20, 0xffff0000);
707         nv_mthd(dev, 0x9097, 0x0d28, 0xffff0000);
708         nv_mthd(dev, 0x9097, 0x0d30, 0xffff0000);
709         nv_mthd(dev, 0x9097, 0x0d38, 0xffff0000);
710         nv_mthd(dev, 0x9097, 0x0d04, 0xffff0000);
711         nv_mthd(dev, 0x9097, 0x0d0c, 0xffff0000);
712         nv_mthd(dev, 0x9097, 0x0d14, 0xffff0000);
713         nv_mthd(dev, 0x9097, 0x0d1c, 0xffff0000);
714         nv_mthd(dev, 0x9097, 0x0d24, 0xffff0000);
715         nv_mthd(dev, 0x9097, 0x0d2c, 0xffff0000);
716         nv_mthd(dev, 0x9097, 0x0d34, 0xffff0000);
717         nv_mthd(dev, 0x9097, 0x0d3c, 0xffff0000);
718         nv_mthd(dev, 0x9097, 0x0e00, 0x00000000);
719         nv_mthd(dev, 0x9097, 0x0e10, 0x00000000);
720         nv_mthd(dev, 0x9097, 0x0e20, 0x00000000);
721         nv_mthd(dev, 0x9097, 0x0e30, 0x00000000);
722         nv_mthd(dev, 0x9097, 0x0e40, 0x00000000);
723         nv_mthd(dev, 0x9097, 0x0e50, 0x00000000);
724         nv_mthd(dev, 0x9097, 0x0e60, 0x00000000);
725         nv_mthd(dev, 0x9097, 0x0e70, 0x00000000);
726         nv_mthd(dev, 0x9097, 0x0e80, 0x00000000);
727         nv_mthd(dev, 0x9097, 0x0e90, 0x00000000);
728         nv_mthd(dev, 0x9097, 0x0ea0, 0x00000000);
729         nv_mthd(dev, 0x9097, 0x0eb0, 0x00000000);
730         nv_mthd(dev, 0x9097, 0x0ec0, 0x00000000);
731         nv_mthd(dev, 0x9097, 0x0ed0, 0x00000000);
732         nv_mthd(dev, 0x9097, 0x0ee0, 0x00000000);
733         nv_mthd(dev, 0x9097, 0x0ef0, 0x00000000);
734         nv_mthd(dev, 0x9097, 0x0e04, 0xffff0000);
735         nv_mthd(dev, 0x9097, 0x0e14, 0xffff0000);
736         nv_mthd(dev, 0x9097, 0x0e24, 0xffff0000);
737         nv_mthd(dev, 0x9097, 0x0e34, 0xffff0000);
738         nv_mthd(dev, 0x9097, 0x0e44, 0xffff0000);
739         nv_mthd(dev, 0x9097, 0x0e54, 0xffff0000);
740         nv_mthd(dev, 0x9097, 0x0e64, 0xffff0000);
741         nv_mthd(dev, 0x9097, 0x0e74, 0xffff0000);
742         nv_mthd(dev, 0x9097, 0x0e84, 0xffff0000);
743         nv_mthd(dev, 0x9097, 0x0e94, 0xffff0000);
744         nv_mthd(dev, 0x9097, 0x0ea4, 0xffff0000);
745         nv_mthd(dev, 0x9097, 0x0eb4, 0xffff0000);
746         nv_mthd(dev, 0x9097, 0x0ec4, 0xffff0000);
747         nv_mthd(dev, 0x9097, 0x0ed4, 0xffff0000);
748         nv_mthd(dev, 0x9097, 0x0ee4, 0xffff0000);
749         nv_mthd(dev, 0x9097, 0x0ef4, 0xffff0000);
750         nv_mthd(dev, 0x9097, 0x0e08, 0xffff0000);
751         nv_mthd(dev, 0x9097, 0x0e18, 0xffff0000);
752         nv_mthd(dev, 0x9097, 0x0e28, 0xffff0000);
753         nv_mthd(dev, 0x9097, 0x0e38, 0xffff0000);
754         nv_mthd(dev, 0x9097, 0x0e48, 0xffff0000);
755         nv_mthd(dev, 0x9097, 0x0e58, 0xffff0000);
756         nv_mthd(dev, 0x9097, 0x0e68, 0xffff0000);
757         nv_mthd(dev, 0x9097, 0x0e78, 0xffff0000);
758         nv_mthd(dev, 0x9097, 0x0e88, 0xffff0000);
759         nv_mthd(dev, 0x9097, 0x0e98, 0xffff0000);
760         nv_mthd(dev, 0x9097, 0x0ea8, 0xffff0000);
761         nv_mthd(dev, 0x9097, 0x0eb8, 0xffff0000);
762         nv_mthd(dev, 0x9097, 0x0ec8, 0xffff0000);
763         nv_mthd(dev, 0x9097, 0x0ed8, 0xffff0000);
764         nv_mthd(dev, 0x9097, 0x0ee8, 0xffff0000);
765         nv_mthd(dev, 0x9097, 0x0ef8, 0xffff0000);
766         nv_mthd(dev, 0x9097, 0x0d40, 0x00000000);
767         nv_mthd(dev, 0x9097, 0x0d48, 0x00000000);
768         nv_mthd(dev, 0x9097, 0x0d50, 0x00000000);
769         nv_mthd(dev, 0x9097, 0x0d58, 0x00000000);
770         nv_mthd(dev, 0x9097, 0x0d44, 0x00000000);
771         nv_mthd(dev, 0x9097, 0x0d4c, 0x00000000);
772         nv_mthd(dev, 0x9097, 0x0d54, 0x00000000);
773         nv_mthd(dev, 0x9097, 0x0d5c, 0x00000000);
774         nv_mthd(dev, 0x9097, 0x1e00, 0x00000001);
775         nv_mthd(dev, 0x9097, 0x1e20, 0x00000001);
776         nv_mthd(dev, 0x9097, 0x1e40, 0x00000001);
777         nv_mthd(dev, 0x9097, 0x1e60, 0x00000001);
778         nv_mthd(dev, 0x9097, 0x1e80, 0x00000001);
779         nv_mthd(dev, 0x9097, 0x1ea0, 0x00000001);
780         nv_mthd(dev, 0x9097, 0x1ec0, 0x00000001);
781         nv_mthd(dev, 0x9097, 0x1ee0, 0x00000001);
782         nv_mthd(dev, 0x9097, 0x1e04, 0x00000001);
783         nv_mthd(dev, 0x9097, 0x1e24, 0x00000001);
784         nv_mthd(dev, 0x9097, 0x1e44, 0x00000001);
785         nv_mthd(dev, 0x9097, 0x1e64, 0x00000001);
786         nv_mthd(dev, 0x9097, 0x1e84, 0x00000001);
787         nv_mthd(dev, 0x9097, 0x1ea4, 0x00000001);
788         nv_mthd(dev, 0x9097, 0x1ec4, 0x00000001);
789         nv_mthd(dev, 0x9097, 0x1ee4, 0x00000001);
790         nv_mthd(dev, 0x9097, 0x1e08, 0x00000002);
791         nv_mthd(dev, 0x9097, 0x1e28, 0x00000002);
792         nv_mthd(dev, 0x9097, 0x1e48, 0x00000002);
793         nv_mthd(dev, 0x9097, 0x1e68, 0x00000002);
794         nv_mthd(dev, 0x9097, 0x1e88, 0x00000002);
795         nv_mthd(dev, 0x9097, 0x1ea8, 0x00000002);
796         nv_mthd(dev, 0x9097, 0x1ec8, 0x00000002);
797         nv_mthd(dev, 0x9097, 0x1ee8, 0x00000002);
798         nv_mthd(dev, 0x9097, 0x1e0c, 0x00000001);
799         nv_mthd(dev, 0x9097, 0x1e2c, 0x00000001);
800         nv_mthd(dev, 0x9097, 0x1e4c, 0x00000001);
801         nv_mthd(dev, 0x9097, 0x1e6c, 0x00000001);
802         nv_mthd(dev, 0x9097, 0x1e8c, 0x00000001);
803         nv_mthd(dev, 0x9097, 0x1eac, 0x00000001);
804         nv_mthd(dev, 0x9097, 0x1ecc, 0x00000001);
805         nv_mthd(dev, 0x9097, 0x1eec, 0x00000001);
806         nv_mthd(dev, 0x9097, 0x1e10, 0x00000001);
807         nv_mthd(dev, 0x9097, 0x1e30, 0x00000001);
808         nv_mthd(dev, 0x9097, 0x1e50, 0x00000001);
809         nv_mthd(dev, 0x9097, 0x1e70, 0x00000001);
810         nv_mthd(dev, 0x9097, 0x1e90, 0x00000001);
811         nv_mthd(dev, 0x9097, 0x1eb0, 0x00000001);
812         nv_mthd(dev, 0x9097, 0x1ed0, 0x00000001);
813         nv_mthd(dev, 0x9097, 0x1ef0, 0x00000001);
814         nv_mthd(dev, 0x9097, 0x1e14, 0x00000002);
815         nv_mthd(dev, 0x9097, 0x1e34, 0x00000002);
816         nv_mthd(dev, 0x9097, 0x1e54, 0x00000002);
817         nv_mthd(dev, 0x9097, 0x1e74, 0x00000002);
818         nv_mthd(dev, 0x9097, 0x1e94, 0x00000002);
819         nv_mthd(dev, 0x9097, 0x1eb4, 0x00000002);
820         nv_mthd(dev, 0x9097, 0x1ed4, 0x00000002);
821         nv_mthd(dev, 0x9097, 0x1ef4, 0x00000002);
822         nv_mthd(dev, 0x9097, 0x1e18, 0x00000001);
823         nv_mthd(dev, 0x9097, 0x1e38, 0x00000001);
824         nv_mthd(dev, 0x9097, 0x1e58, 0x00000001);
825         nv_mthd(dev, 0x9097, 0x1e78, 0x00000001);
826         nv_mthd(dev, 0x9097, 0x1e98, 0x00000001);
827         nv_mthd(dev, 0x9097, 0x1eb8, 0x00000001);
828         nv_mthd(dev, 0x9097, 0x1ed8, 0x00000001);
829         nv_mthd(dev, 0x9097, 0x1ef8, 0x00000001);
830         if (fermi == 0x9097) {
831                 for (mthd = 0x3400; mthd <= 0x35fc; mthd += 4)
832                         nv_mthd(dev, 0x9097, mthd, 0x00000000);
833         }
834         nv_mthd(dev, 0x9097, 0x030c, 0x00000001);
835         nv_mthd(dev, 0x9097, 0x1944, 0x00000000);
836         nv_mthd(dev, 0x9097, 0x1514, 0x00000000);
837         nv_mthd(dev, 0x9097, 0x0d68, 0x0000ffff);
838         nv_mthd(dev, 0x9097, 0x121c, 0x0fac6881);
839         nv_mthd(dev, 0x9097, 0x0fac, 0x00000001);
840         nv_mthd(dev, 0x9097, 0x1538, 0x00000001);
841         nv_mthd(dev, 0x9097, 0x0fe0, 0x00000000);
842         nv_mthd(dev, 0x9097, 0x0fe4, 0x00000000);
843         nv_mthd(dev, 0x9097, 0x0fe8, 0x00000014);
844         nv_mthd(dev, 0x9097, 0x0fec, 0x00000040);
845         nv_mthd(dev, 0x9097, 0x0ff0, 0x00000000);
846         nv_mthd(dev, 0x9097, 0x179c, 0x00000000);
847         nv_mthd(dev, 0x9097, 0x1228, 0x00000400);
848         nv_mthd(dev, 0x9097, 0x122c, 0x00000300);
849         nv_mthd(dev, 0x9097, 0x1230, 0x00010001);
850         nv_mthd(dev, 0x9097, 0x07f8, 0x00000000);
851         nv_mthd(dev, 0x9097, 0x15b4, 0x00000001);
852         nv_mthd(dev, 0x9097, 0x15cc, 0x00000000);
853         nv_mthd(dev, 0x9097, 0x1534, 0x00000000);
854         nv_mthd(dev, 0x9097, 0x0fb0, 0x00000000);
855         nv_mthd(dev, 0x9097, 0x15d0, 0x00000000);
856         nv_mthd(dev, 0x9097, 0x153c, 0x00000000);
857         nv_mthd(dev, 0x9097, 0x16b4, 0x00000003);
858         nv_mthd(dev, 0x9097, 0x0fbc, 0x0000ffff);
859         nv_mthd(dev, 0x9097, 0x0fc0, 0x0000ffff);
860         nv_mthd(dev, 0x9097, 0x0fc4, 0x0000ffff);
861         nv_mthd(dev, 0x9097, 0x0fc8, 0x0000ffff);
862         nv_mthd(dev, 0x9097, 0x0df8, 0x00000000);
863         nv_mthd(dev, 0x9097, 0x0dfc, 0x00000000);
864         nv_mthd(dev, 0x9097, 0x1948, 0x00000000);
865         nv_mthd(dev, 0x9097, 0x1970, 0x00000001);
866         nv_mthd(dev, 0x9097, 0x161c, 0x000009f0);
867         nv_mthd(dev, 0x9097, 0x0dcc, 0x00000010);
868         nv_mthd(dev, 0x9097, 0x163c, 0x00000000);
869         nv_mthd(dev, 0x9097, 0x15e4, 0x00000000);
870         nv_mthd(dev, 0x9097, 0x1160, 0x25e00040);
871         nv_mthd(dev, 0x9097, 0x1164, 0x25e00040);
872         nv_mthd(dev, 0x9097, 0x1168, 0x25e00040);
873         nv_mthd(dev, 0x9097, 0x116c, 0x25e00040);
874         nv_mthd(dev, 0x9097, 0x1170, 0x25e00040);
875         nv_mthd(dev, 0x9097, 0x1174, 0x25e00040);
876         nv_mthd(dev, 0x9097, 0x1178, 0x25e00040);
877         nv_mthd(dev, 0x9097, 0x117c, 0x25e00040);
878         nv_mthd(dev, 0x9097, 0x1180, 0x25e00040);
879         nv_mthd(dev, 0x9097, 0x1184, 0x25e00040);
880         nv_mthd(dev, 0x9097, 0x1188, 0x25e00040);
881         nv_mthd(dev, 0x9097, 0x118c, 0x25e00040);
882         nv_mthd(dev, 0x9097, 0x1190, 0x25e00040);
883         nv_mthd(dev, 0x9097, 0x1194, 0x25e00040);
884         nv_mthd(dev, 0x9097, 0x1198, 0x25e00040);
885         nv_mthd(dev, 0x9097, 0x119c, 0x25e00040);
886         nv_mthd(dev, 0x9097, 0x11a0, 0x25e00040);
887         nv_mthd(dev, 0x9097, 0x11a4, 0x25e00040);
888         nv_mthd(dev, 0x9097, 0x11a8, 0x25e00040);
889         nv_mthd(dev, 0x9097, 0x11ac, 0x25e00040);
890         nv_mthd(dev, 0x9097, 0x11b0, 0x25e00040);
891         nv_mthd(dev, 0x9097, 0x11b4, 0x25e00040);
892         nv_mthd(dev, 0x9097, 0x11b8, 0x25e00040);
893         nv_mthd(dev, 0x9097, 0x11bc, 0x25e00040);
894         nv_mthd(dev, 0x9097, 0x11c0, 0x25e00040);
895         nv_mthd(dev, 0x9097, 0x11c4, 0x25e00040);
896         nv_mthd(dev, 0x9097, 0x11c8, 0x25e00040);
897         nv_mthd(dev, 0x9097, 0x11cc, 0x25e00040);
898         nv_mthd(dev, 0x9097, 0x11d0, 0x25e00040);
899         nv_mthd(dev, 0x9097, 0x11d4, 0x25e00040);
900         nv_mthd(dev, 0x9097, 0x11d8, 0x25e00040);
901         nv_mthd(dev, 0x9097, 0x11dc, 0x25e00040);
902         nv_mthd(dev, 0x9097, 0x1880, 0x00000000);
903         nv_mthd(dev, 0x9097, 0x1884, 0x00000000);
904         nv_mthd(dev, 0x9097, 0x1888, 0x00000000);
905         nv_mthd(dev, 0x9097, 0x188c, 0x00000000);
906         nv_mthd(dev, 0x9097, 0x1890, 0x00000000);
907         nv_mthd(dev, 0x9097, 0x1894, 0x00000000);
908         nv_mthd(dev, 0x9097, 0x1898, 0x00000000);
909         nv_mthd(dev, 0x9097, 0x189c, 0x00000000);
910         nv_mthd(dev, 0x9097, 0x18a0, 0x00000000);
911         nv_mthd(dev, 0x9097, 0x18a4, 0x00000000);
912         nv_mthd(dev, 0x9097, 0x18a8, 0x00000000);
913         nv_mthd(dev, 0x9097, 0x18ac, 0x00000000);
914         nv_mthd(dev, 0x9097, 0x18b0, 0x00000000);
915         nv_mthd(dev, 0x9097, 0x18b4, 0x00000000);
916         nv_mthd(dev, 0x9097, 0x18b8, 0x00000000);
917         nv_mthd(dev, 0x9097, 0x18bc, 0x00000000);
918         nv_mthd(dev, 0x9097, 0x18c0, 0x00000000);
919         nv_mthd(dev, 0x9097, 0x18c4, 0x00000000);
920         nv_mthd(dev, 0x9097, 0x18c8, 0x00000000);
921         nv_mthd(dev, 0x9097, 0x18cc, 0x00000000);
922         nv_mthd(dev, 0x9097, 0x18d0, 0x00000000);
923         nv_mthd(dev, 0x9097, 0x18d4, 0x00000000);
924         nv_mthd(dev, 0x9097, 0x18d8, 0x00000000);
925         nv_mthd(dev, 0x9097, 0x18dc, 0x00000000);
926         nv_mthd(dev, 0x9097, 0x18e0, 0x00000000);
927         nv_mthd(dev, 0x9097, 0x18e4, 0x00000000);
928         nv_mthd(dev, 0x9097, 0x18e8, 0x00000000);
929         nv_mthd(dev, 0x9097, 0x18ec, 0x00000000);
930         nv_mthd(dev, 0x9097, 0x18f0, 0x00000000);
931         nv_mthd(dev, 0x9097, 0x18f4, 0x00000000);
932         nv_mthd(dev, 0x9097, 0x18f8, 0x00000000);
933         nv_mthd(dev, 0x9097, 0x18fc, 0x00000000);
934         nv_mthd(dev, 0x9097, 0x0f84, 0x00000000);
935         nv_mthd(dev, 0x9097, 0x0f88, 0x00000000);
936         nv_mthd(dev, 0x9097, 0x17c8, 0x00000000);
937         nv_mthd(dev, 0x9097, 0x17cc, 0x00000000);
938         nv_mthd(dev, 0x9097, 0x17d0, 0x000000ff);
939         nv_mthd(dev, 0x9097, 0x17d4, 0xffffffff);
940         nv_mthd(dev, 0x9097, 0x17d8, 0x00000002);
941         nv_mthd(dev, 0x9097, 0x17dc, 0x00000000);
942         nv_mthd(dev, 0x9097, 0x15f4, 0x00000000);
943         nv_mthd(dev, 0x9097, 0x15f8, 0x00000000);
944         nv_mthd(dev, 0x9097, 0x1434, 0x00000000);
945         nv_mthd(dev, 0x9097, 0x1438, 0x00000000);
946         nv_mthd(dev, 0x9097, 0x0d74, 0x00000000);
947         nv_mthd(dev, 0x9097, 0x0dec, 0x00000001);
948         nv_mthd(dev, 0x9097, 0x13a4, 0x00000000);
949         nv_mthd(dev, 0x9097, 0x1318, 0x00000001);
950         nv_mthd(dev, 0x9097, 0x1644, 0x00000000);
951         nv_mthd(dev, 0x9097, 0x0748, 0x00000000);
952         nv_mthd(dev, 0x9097, 0x0de8, 0x00000000);
953         nv_mthd(dev, 0x9097, 0x1648, 0x00000000);
954         nv_mthd(dev, 0x9097, 0x12a4, 0x00000000);
955         nv_mthd(dev, 0x9097, 0x1120, 0x00000000);
956         nv_mthd(dev, 0x9097, 0x1124, 0x00000000);
957         nv_mthd(dev, 0x9097, 0x1128, 0x00000000);
958         nv_mthd(dev, 0x9097, 0x112c, 0x00000000);
959         nv_mthd(dev, 0x9097, 0x1118, 0x00000000);
960         nv_mthd(dev, 0x9097, 0x164c, 0x00000000);
961         nv_mthd(dev, 0x9097, 0x1658, 0x00000000);
962         nv_mthd(dev, 0x9097, 0x1910, 0x00000290);
963         nv_mthd(dev, 0x9097, 0x1518, 0x00000000);
964         nv_mthd(dev, 0x9097, 0x165c, 0x00000001);
965         nv_mthd(dev, 0x9097, 0x1520, 0x00000000);
966         nv_mthd(dev, 0x9097, 0x1604, 0x00000000);
967         nv_mthd(dev, 0x9097, 0x1570, 0x00000000);
968         nv_mthd(dev, 0x9097, 0x13b0, 0x3f800000);
969         nv_mthd(dev, 0x9097, 0x13b4, 0x3f800000);
970         nv_mthd(dev, 0x9097, 0x020c, 0x00000000);
971         nv_mthd(dev, 0x9097, 0x1670, 0x30201000);
972         nv_mthd(dev, 0x9097, 0x1674, 0x70605040);
973         nv_mthd(dev, 0x9097, 0x1678, 0xb8a89888);
974         nv_mthd(dev, 0x9097, 0x167c, 0xf8e8d8c8);
975         nv_mthd(dev, 0x9097, 0x166c, 0x00000000);
976         nv_mthd(dev, 0x9097, 0x1680, 0x00ffff00);
977         nv_mthd(dev, 0x9097, 0x12d0, 0x00000003);
978         nv_mthd(dev, 0x9097, 0x12d4, 0x00000002);
979         nv_mthd(dev, 0x9097, 0x1684, 0x00000000);
980         nv_mthd(dev, 0x9097, 0x1688, 0x00000000);
981         nv_mthd(dev, 0x9097, 0x0dac, 0x00001b02);
982         nv_mthd(dev, 0x9097, 0x0db0, 0x00001b02);
983         nv_mthd(dev, 0x9097, 0x0db4, 0x00000000);
984         nv_mthd(dev, 0x9097, 0x168c, 0x00000000);
985         nv_mthd(dev, 0x9097, 0x15bc, 0x00000000);
986         nv_mthd(dev, 0x9097, 0x156c, 0x00000000);
987         nv_mthd(dev, 0x9097, 0x187c, 0x00000000);
988         nv_mthd(dev, 0x9097, 0x1110, 0x00000001);
989         nv_mthd(dev, 0x9097, 0x0dc0, 0x00000000);
990         nv_mthd(dev, 0x9097, 0x0dc4, 0x00000000);
991         nv_mthd(dev, 0x9097, 0x0dc8, 0x00000000);
992         nv_mthd(dev, 0x9097, 0x1234, 0x00000000);
993         nv_mthd(dev, 0x9097, 0x1690, 0x00000000);
994         nv_mthd(dev, 0x9097, 0x12ac, 0x00000001);
995         nv_mthd(dev, 0x9097, 0x02c4, 0x00000000);
996         nv_mthd(dev, 0x9097, 0x0790, 0x00000000);
997         nv_mthd(dev, 0x9097, 0x0794, 0x00000000);
998         nv_mthd(dev, 0x9097, 0x0798, 0x00000000);
999         nv_mthd(dev, 0x9097, 0x079c, 0x00000000);
1000         nv_mthd(dev, 0x9097, 0x07a0, 0x00000000);
1001         nv_mthd(dev, 0x9097, 0x077c, 0x00000000);
1002         nv_mthd(dev, 0x9097, 0x1000, 0x00000010);
1003         nv_mthd(dev, 0x9097, 0x10fc, 0x00000000);
1004         nv_mthd(dev, 0x9097, 0x1290, 0x00000000);
1005         nv_mthd(dev, 0x9097, 0x0218, 0x00000010);
1006         nv_mthd(dev, 0x9097, 0x12d8, 0x00000000);
1007         nv_mthd(dev, 0x9097, 0x12dc, 0x00000010);
1008         nv_mthd(dev, 0x9097, 0x0d94, 0x00000001);
1009         nv_mthd(dev, 0x9097, 0x155c, 0x00000000);
1010         nv_mthd(dev, 0x9097, 0x1560, 0x00000000);
1011         nv_mthd(dev, 0x9097, 0x1564, 0x00001fff);
1012         nv_mthd(dev, 0x9097, 0x1574, 0x00000000);
1013         nv_mthd(dev, 0x9097, 0x1578, 0x00000000);
1014         nv_mthd(dev, 0x9097, 0x157c, 0x003fffff);
1015         nv_mthd(dev, 0x9097, 0x1354, 0x00000000);
1016         nv_mthd(dev, 0x9097, 0x1664, 0x00000000);
1017         nv_mthd(dev, 0x9097, 0x1610, 0x00000012);
1018         nv_mthd(dev, 0x9097, 0x1608, 0x00000000);
1019         nv_mthd(dev, 0x9097, 0x160c, 0x00000000);
1020         nv_mthd(dev, 0x9097, 0x162c, 0x00000003);
1021         nv_mthd(dev, 0x9097, 0x0210, 0x00000000);
1022         nv_mthd(dev, 0x9097, 0x0320, 0x00000000);
1023         nv_mthd(dev, 0x9097, 0x0324, 0x3f800000);
1024         nv_mthd(dev, 0x9097, 0x0328, 0x3f800000);
1025         nv_mthd(dev, 0x9097, 0x032c, 0x3f800000);
1026         nv_mthd(dev, 0x9097, 0x0330, 0x3f800000);
1027         nv_mthd(dev, 0x9097, 0x0334, 0x3f800000);
1028         nv_mthd(dev, 0x9097, 0x0338, 0x3f800000);
1029         nv_mthd(dev, 0x9097, 0x0750, 0x00000000);
1030         nv_mthd(dev, 0x9097, 0x0760, 0x39291909);
1031         nv_mthd(dev, 0x9097, 0x0764, 0x79695949);
1032         nv_mthd(dev, 0x9097, 0x0768, 0xb9a99989);
1033         nv_mthd(dev, 0x9097, 0x076c, 0xf9e9d9c9);
1034         nv_mthd(dev, 0x9097, 0x0770, 0x30201000);
1035         nv_mthd(dev, 0x9097, 0x0774, 0x70605040);
1036         nv_mthd(dev, 0x9097, 0x0778, 0x00009080);
1037         nv_mthd(dev, 0x9097, 0x0780, 0x39291909);
1038         nv_mthd(dev, 0x9097, 0x0784, 0x79695949);
1039         nv_mthd(dev, 0x9097, 0x0788, 0xb9a99989);
1040         nv_mthd(dev, 0x9097, 0x078c, 0xf9e9d9c9);
1041         nv_mthd(dev, 0x9097, 0x07d0, 0x30201000);
1042         nv_mthd(dev, 0x9097, 0x07d4, 0x70605040);
1043         nv_mthd(dev, 0x9097, 0x07d8, 0x00009080);
1044         nv_mthd(dev, 0x9097, 0x037c, 0x00000001);
1045         nv_mthd(dev, 0x9097, 0x0740, 0x00000000);
1046         nv_mthd(dev, 0x9097, 0x0744, 0x00000000);
1047         nv_mthd(dev, 0x9097, 0x2600, 0x00000000);
1048         nv_mthd(dev, 0x9097, 0x1918, 0x00000000);
1049         nv_mthd(dev, 0x9097, 0x191c, 0x00000900);
1050         nv_mthd(dev, 0x9097, 0x1920, 0x00000405);
1051         nv_mthd(dev, 0x9097, 0x1308, 0x00000001);
1052         nv_mthd(dev, 0x9097, 0x1924, 0x00000000);
1053         nv_mthd(dev, 0x9097, 0x13ac, 0x00000000);
1054         nv_mthd(dev, 0x9097, 0x192c, 0x00000001);
1055         nv_mthd(dev, 0x9097, 0x193c, 0x00002c1c);
1056         nv_mthd(dev, 0x9097, 0x0d7c, 0x00000000);
1057         nv_mthd(dev, 0x9097, 0x0f8c, 0x00000000);
1058         nv_mthd(dev, 0x9097, 0x02c0, 0x00000001);
1059         nv_mthd(dev, 0x9097, 0x1510, 0x00000000);
1060         nv_mthd(dev, 0x9097, 0x1940, 0x00000000);
1061         nv_mthd(dev, 0x9097, 0x0ff4, 0x00000000);
1062         nv_mthd(dev, 0x9097, 0x0ff8, 0x00000000);
1063         nv_mthd(dev, 0x9097, 0x194c, 0x00000000);
1064         nv_mthd(dev, 0x9097, 0x1950, 0x00000000);
1065         nv_mthd(dev, 0x9097, 0x1968, 0x00000000);
1066         nv_mthd(dev, 0x9097, 0x1590, 0x0000003f);
1067         nv_mthd(dev, 0x9097, 0x07e8, 0x00000000);
1068         nv_mthd(dev, 0x9097, 0x07ec, 0x00000000);
1069         nv_mthd(dev, 0x9097, 0x07f0, 0x00000000);
1070         nv_mthd(dev, 0x9097, 0x07f4, 0x00000000);
1071         nv_mthd(dev, 0x9097, 0x196c, 0x00000011);
1072         nv_mthd(dev, 0x9097, 0x197c, 0x00000000);
1073         nv_mthd(dev, 0x9097, 0x0fcc, 0x00000000);
1074         nv_mthd(dev, 0x9097, 0x0fd0, 0x00000000);
1075         nv_mthd(dev, 0x9097, 0x02d8, 0x00000040);
1076         nv_mthd(dev, 0x9097, 0x1980, 0x00000080);
1077         nv_mthd(dev, 0x9097, 0x1504, 0x00000080);
1078         nv_mthd(dev, 0x9097, 0x1984, 0x00000000);
1079         nv_mthd(dev, 0x9097, 0x0300, 0x00000001);
1080         nv_mthd(dev, 0x9097, 0x13a8, 0x00000000);
1081         nv_mthd(dev, 0x9097, 0x12ec, 0x00000000);
1082         nv_mthd(dev, 0x9097, 0x1310, 0x00000000);
1083         nv_mthd(dev, 0x9097, 0x1314, 0x00000001);
1084         nv_mthd(dev, 0x9097, 0x1380, 0x00000000);
1085         nv_mthd(dev, 0x9097, 0x1384, 0x00000001);
1086         nv_mthd(dev, 0x9097, 0x1388, 0x00000001);
1087         nv_mthd(dev, 0x9097, 0x138c, 0x00000001);
1088         nv_mthd(dev, 0x9097, 0x1390, 0x00000001);
1089         nv_mthd(dev, 0x9097, 0x1394, 0x00000000);
1090         nv_mthd(dev, 0x9097, 0x139c, 0x00000000);
1091         nv_mthd(dev, 0x9097, 0x1398, 0x00000000);
1092         nv_mthd(dev, 0x9097, 0x1594, 0x00000000);
1093         nv_mthd(dev, 0x9097, 0x1598, 0x00000001);
1094         nv_mthd(dev, 0x9097, 0x159c, 0x00000001);
1095         nv_mthd(dev, 0x9097, 0x15a0, 0x00000001);
1096         nv_mthd(dev, 0x9097, 0x15a4, 0x00000001);
1097         nv_mthd(dev, 0x9097, 0x0f54, 0x00000000);
1098         nv_mthd(dev, 0x9097, 0x0f58, 0x00000000);
1099         nv_mthd(dev, 0x9097, 0x0f5c, 0x00000000);
1100         nv_mthd(dev, 0x9097, 0x19bc, 0x00000000);
1101         nv_mthd(dev, 0x9097, 0x0f9c, 0x00000000);
1102         nv_mthd(dev, 0x9097, 0x0fa0, 0x00000000);
1103         nv_mthd(dev, 0x9097, 0x12cc, 0x00000000);
1104         nv_mthd(dev, 0x9097, 0x12e8, 0x00000000);
1105         nv_mthd(dev, 0x9097, 0x130c, 0x00000001);
1106         nv_mthd(dev, 0x9097, 0x1360, 0x00000000);
1107         nv_mthd(dev, 0x9097, 0x1364, 0x00000000);
1108         nv_mthd(dev, 0x9097, 0x1368, 0x00000000);
1109         nv_mthd(dev, 0x9097, 0x136c, 0x00000000);
1110         nv_mthd(dev, 0x9097, 0x1370, 0x00000000);
1111         nv_mthd(dev, 0x9097, 0x1374, 0x00000000);
1112         nv_mthd(dev, 0x9097, 0x1378, 0x00000000);
1113         nv_mthd(dev, 0x9097, 0x137c, 0x00000000);
1114         nv_mthd(dev, 0x9097, 0x133c, 0x00000001);
1115         nv_mthd(dev, 0x9097, 0x1340, 0x00000001);
1116         nv_mthd(dev, 0x9097, 0x1344, 0x00000002);
1117         nv_mthd(dev, 0x9097, 0x1348, 0x00000001);
1118         nv_mthd(dev, 0x9097, 0x134c, 0x00000001);
1119         nv_mthd(dev, 0x9097, 0x1350, 0x00000002);
1120         nv_mthd(dev, 0x9097, 0x1358, 0x00000001);
1121         nv_mthd(dev, 0x9097, 0x12e4, 0x00000000);
1122         nv_mthd(dev, 0x9097, 0x131c, 0x00000000);
1123         nv_mthd(dev, 0x9097, 0x1320, 0x00000000);
1124         nv_mthd(dev, 0x9097, 0x1324, 0x00000000);
1125         nv_mthd(dev, 0x9097, 0x1328, 0x00000000);
1126         nv_mthd(dev, 0x9097, 0x19c0, 0x00000000);
1127         nv_mthd(dev, 0x9097, 0x1140, 0x00000000);
1128         nv_mthd(dev, 0x9097, 0x19c4, 0x00000000);
1129         nv_mthd(dev, 0x9097, 0x19c8, 0x00001500);
1130         nv_mthd(dev, 0x9097, 0x135c, 0x00000000);
1131         nv_mthd(dev, 0x9097, 0x0f90, 0x00000000);
1132         nv_mthd(dev, 0x9097, 0x19e0, 0x00000001);
1133         nv_mthd(dev, 0x9097, 0x19e4, 0x00000001);
1134         nv_mthd(dev, 0x9097, 0x19e8, 0x00000001);
1135         nv_mthd(dev, 0x9097, 0x19ec, 0x00000001);
1136         nv_mthd(dev, 0x9097, 0x19f0, 0x00000001);
1137         nv_mthd(dev, 0x9097, 0x19f4, 0x00000001);
1138         nv_mthd(dev, 0x9097, 0x19f8, 0x00000001);
1139         nv_mthd(dev, 0x9097, 0x19fc, 0x00000001);
1140         nv_mthd(dev, 0x9097, 0x19cc, 0x00000001);
1141         nv_mthd(dev, 0x9097, 0x15b8, 0x00000000);
1142         nv_mthd(dev, 0x9097, 0x1a00, 0x00001111);
1143         nv_mthd(dev, 0x9097, 0x1a04, 0x00000000);
1144         nv_mthd(dev, 0x9097, 0x1a08, 0x00000000);
1145         nv_mthd(dev, 0x9097, 0x1a0c, 0x00000000);
1146         nv_mthd(dev, 0x9097, 0x1a10, 0x00000000);
1147         nv_mthd(dev, 0x9097, 0x1a14, 0x00000000);
1148         nv_mthd(dev, 0x9097, 0x1a18, 0x00000000);
1149         nv_mthd(dev, 0x9097, 0x1a1c, 0x00000000);
1150         nv_mthd(dev, 0x9097, 0x0d6c, 0xffff0000);
1151         nv_mthd(dev, 0x9097, 0x0d70, 0xffff0000);
1152         nv_mthd(dev, 0x9097, 0x10f8, 0x00001010);
1153         nv_mthd(dev, 0x9097, 0x0d80, 0x00000000);
1154         nv_mthd(dev, 0x9097, 0x0d84, 0x00000000);
1155         nv_mthd(dev, 0x9097, 0x0d88, 0x00000000);
1156         nv_mthd(dev, 0x9097, 0x0d8c, 0x00000000);
1157         nv_mthd(dev, 0x9097, 0x0d90, 0x00000000);
1158         nv_mthd(dev, 0x9097, 0x0da0, 0x00000000);
1159         nv_mthd(dev, 0x9097, 0x1508, 0x80000000);
1160         nv_mthd(dev, 0x9097, 0x150c, 0x40000000);
1161         nv_mthd(dev, 0x9097, 0x1668, 0x00000000);
1162         nv_mthd(dev, 0x9097, 0x0318, 0x00000008);
1163         nv_mthd(dev, 0x9097, 0x031c, 0x00000008);
1164         nv_mthd(dev, 0x9097, 0x0d9c, 0x00000001);
1165         nv_mthd(dev, 0x9097, 0x07dc, 0x00000000);
1166         nv_mthd(dev, 0x9097, 0x074c, 0x00000055);
1167         nv_mthd(dev, 0x9097, 0x1420, 0x00000003);
1168         nv_mthd(dev, 0x9097, 0x17bc, 0x00000000);
1169         nv_mthd(dev, 0x9097, 0x17c0, 0x00000000);
1170         nv_mthd(dev, 0x9097, 0x17c4, 0x00000001);
1171         nv_mthd(dev, 0x9097, 0x1008, 0x00000008);
1172         nv_mthd(dev, 0x9097, 0x100c, 0x00000040);
1173         nv_mthd(dev, 0x9097, 0x1010, 0x0000012c);
1174         nv_mthd(dev, 0x9097, 0x0d60, 0x00000040);
1175         nv_mthd(dev, 0x9097, 0x075c, 0x00000003);
1176         nv_mthd(dev, 0x9097, 0x1018, 0x00000020);
1177         nv_mthd(dev, 0x9097, 0x101c, 0x00000001);
1178         nv_mthd(dev, 0x9097, 0x1020, 0x00000020);
1179         nv_mthd(dev, 0x9097, 0x1024, 0x00000001);
1180         nv_mthd(dev, 0x9097, 0x1444, 0x00000000);
1181         nv_mthd(dev, 0x9097, 0x1448, 0x00000000);
1182         nv_mthd(dev, 0x9097, 0x144c, 0x00000000);
1183         nv_mthd(dev, 0x9097, 0x0360, 0x20164010);
1184         nv_mthd(dev, 0x9097, 0x0364, 0x00000020);
1185         nv_mthd(dev, 0x9097, 0x0368, 0x00000000);
1186         nv_mthd(dev, 0x9097, 0x0de4, 0x00000000);
1187         nv_mthd(dev, 0x9097, 0x0204, 0x00000006);
1188         nv_mthd(dev, 0x9097, 0x0208, 0x00000000);
1189         nv_mthd(dev, 0x9097, 0x02cc, 0x003fffff);
1190         nv_mthd(dev, 0x9097, 0x02d0, 0x00000c48);
1191         nv_mthd(dev, 0x9097, 0x1220, 0x00000005);
1192         nv_mthd(dev, 0x9097, 0x0fdc, 0x00000000);
1193         nv_mthd(dev, 0x9097, 0x0f98, 0x00300008);
1194         nv_mthd(dev, 0x9097, 0x1284, 0x04000080);
1195         nv_mthd(dev, 0x9097, 0x1450, 0x00300008);
1196         nv_mthd(dev, 0x9097, 0x1454, 0x04000080);
1197         nv_mthd(dev, 0x9097, 0x0214, 0x00000000);
1198         /* in trace, right after 0x90c0, not here */
1199         nv_mthd(dev, 0x9097, 0x3410, 0x80002006);
1200 }
1201
1202 static void
1203 nvc0_grctx_generate_9197(struct drm_device *dev)
1204 {
1205         u32 fermi = nvc0_graph_class(dev);
1206         u32 mthd;
1207
1208         if (fermi == 0x9197) {
1209                 for (mthd = 0x3400; mthd <= 0x35fc; mthd += 4)
1210                         nv_mthd(dev, 0x9197, mthd, 0x00000000);
1211         }
1212         nv_mthd(dev, 0x9197, 0x02e4, 0x0000b001);
1213 }
1214
1215 static void
1216 nvc0_grctx_generate_9297(struct drm_device *dev)
1217 {
1218         u32 fermi = nvc0_graph_class(dev);
1219         u32 mthd;
1220
1221         if (fermi == 0x9297) {
1222                 for (mthd = 0x3400; mthd <= 0x35fc; mthd += 4)
1223                         nv_mthd(dev, 0x9297, mthd, 0x00000000);
1224         }
1225         nv_mthd(dev, 0x9297, 0x036c, 0x00000000);
1226         nv_mthd(dev, 0x9297, 0x0370, 0x00000000);
1227         nv_mthd(dev, 0x9297, 0x07a4, 0x00000000);
1228         nv_mthd(dev, 0x9297, 0x07a8, 0x00000000);
1229         nv_mthd(dev, 0x9297, 0x0374, 0x00000000);
1230         nv_mthd(dev, 0x9297, 0x0378, 0x00000020);
1231 }
1232
1233 static void
1234 nvc0_grctx_generate_902d(struct drm_device *dev)
1235 {
1236         nv_mthd(dev, 0x902d, 0x0200, 0x000000cf);
1237         nv_mthd(dev, 0x902d, 0x0204, 0x00000001);
1238         nv_mthd(dev, 0x902d, 0x0208, 0x00000020);
1239         nv_mthd(dev, 0x902d, 0x020c, 0x00000001);
1240         nv_mthd(dev, 0x902d, 0x0210, 0x00000000);
1241         nv_mthd(dev, 0x902d, 0x0214, 0x00000080);
1242         nv_mthd(dev, 0x902d, 0x0218, 0x00000100);
1243         nv_mthd(dev, 0x902d, 0x021c, 0x00000100);
1244         nv_mthd(dev, 0x902d, 0x0220, 0x00000000);
1245         nv_mthd(dev, 0x902d, 0x0224, 0x00000000);
1246         nv_mthd(dev, 0x902d, 0x0230, 0x000000cf);
1247         nv_mthd(dev, 0x902d, 0x0234, 0x00000001);
1248         nv_mthd(dev, 0x902d, 0x0238, 0x00000020);
1249         nv_mthd(dev, 0x902d, 0x023c, 0x00000001);
1250         nv_mthd(dev, 0x902d, 0x0244, 0x00000080);
1251         nv_mthd(dev, 0x902d, 0x0248, 0x00000100);
1252         nv_mthd(dev, 0x902d, 0x024c, 0x00000100);
1253 }
1254
1255 static void
1256 nvc0_grctx_generate_9039(struct drm_device *dev)
1257 {
1258         nv_mthd(dev, 0x9039, 0x030c, 0x00000000);
1259         nv_mthd(dev, 0x9039, 0x0310, 0x00000000);
1260         nv_mthd(dev, 0x9039, 0x0314, 0x00000000);
1261         nv_mthd(dev, 0x9039, 0x0320, 0x00000000);
1262         nv_mthd(dev, 0x9039, 0x0238, 0x00000000);
1263         nv_mthd(dev, 0x9039, 0x023c, 0x00000000);
1264         nv_mthd(dev, 0x9039, 0x0318, 0x00000000);
1265         nv_mthd(dev, 0x9039, 0x031c, 0x00000000);
1266 }
1267
1268 static void
1269 nvc0_grctx_generate_90c0(struct drm_device *dev)
1270 {
1271         nv_mthd(dev, 0x90c0, 0x270c, 0x00000000);
1272         nv_mthd(dev, 0x90c0, 0x272c, 0x00000000);
1273         nv_mthd(dev, 0x90c0, 0x274c, 0x00000000);
1274         nv_mthd(dev, 0x90c0, 0x276c, 0x00000000);
1275         nv_mthd(dev, 0x90c0, 0x278c, 0x00000000);
1276         nv_mthd(dev, 0x90c0, 0x27ac, 0x00000000);
1277         nv_mthd(dev, 0x90c0, 0x27cc, 0x00000000);
1278         nv_mthd(dev, 0x90c0, 0x27ec, 0x00000000);
1279         nv_mthd(dev, 0x90c0, 0x030c, 0x00000001);
1280         nv_mthd(dev, 0x90c0, 0x1944, 0x00000000);
1281         nv_mthd(dev, 0x90c0, 0x0758, 0x00000100);
1282         nv_mthd(dev, 0x90c0, 0x02c4, 0x00000000);
1283         nv_mthd(dev, 0x90c0, 0x0790, 0x00000000);
1284         nv_mthd(dev, 0x90c0, 0x0794, 0x00000000);
1285         nv_mthd(dev, 0x90c0, 0x0798, 0x00000000);
1286         nv_mthd(dev, 0x90c0, 0x079c, 0x00000000);
1287         nv_mthd(dev, 0x90c0, 0x07a0, 0x00000000);
1288         nv_mthd(dev, 0x90c0, 0x077c, 0x00000000);
1289         nv_mthd(dev, 0x90c0, 0x0204, 0x00000000);
1290         nv_mthd(dev, 0x90c0, 0x0208, 0x00000000);
1291         nv_mthd(dev, 0x90c0, 0x020c, 0x00000000);
1292         nv_mthd(dev, 0x90c0, 0x0214, 0x00000000);
1293         nv_mthd(dev, 0x90c0, 0x024c, 0x00000000);
1294         nv_mthd(dev, 0x90c0, 0x0d94, 0x00000001);
1295         nv_mthd(dev, 0x90c0, 0x1608, 0x00000000);
1296         nv_mthd(dev, 0x90c0, 0x160c, 0x00000000);
1297         nv_mthd(dev, 0x90c0, 0x1664, 0x00000000);
1298 }
1299
1300 static void
1301 nvc0_grctx_generate_dispatch(struct drm_device *dev)
1302 {
1303         int i;
1304
1305         nv_wr32(dev, 0x404004, 0x00000000);
1306         nv_wr32(dev, 0x404008, 0x00000000);
1307         nv_wr32(dev, 0x40400c, 0x00000000);
1308         nv_wr32(dev, 0x404010, 0x00000000);
1309         nv_wr32(dev, 0x404014, 0x00000000);
1310         nv_wr32(dev, 0x404018, 0x00000000);
1311         nv_wr32(dev, 0x40401c, 0x00000000);
1312         nv_wr32(dev, 0x404020, 0x00000000);
1313         nv_wr32(dev, 0x404024, 0x00000000);
1314         nv_wr32(dev, 0x404028, 0x00000000);
1315         nv_wr32(dev, 0x40402c, 0x00000000);
1316         nv_wr32(dev, 0x404044, 0x00000000);
1317         nv_wr32(dev, 0x404094, 0x00000000);
1318         nv_wr32(dev, 0x404098, 0x00000000);
1319         nv_wr32(dev, 0x40409c, 0x00000000);
1320         nv_wr32(dev, 0x4040a0, 0x00000000);
1321         nv_wr32(dev, 0x4040a4, 0x00000000);
1322         nv_wr32(dev, 0x4040a8, 0x00000000);
1323         nv_wr32(dev, 0x4040ac, 0x00000000);
1324         nv_wr32(dev, 0x4040b0, 0x00000000);
1325         nv_wr32(dev, 0x4040b4, 0x00000000);
1326         nv_wr32(dev, 0x4040b8, 0x00000000);
1327         nv_wr32(dev, 0x4040bc, 0x00000000);
1328         nv_wr32(dev, 0x4040c0, 0x00000000);
1329         nv_wr32(dev, 0x4040c4, 0x00000000);
1330         nv_wr32(dev, 0x4040c8, 0xf0000087);
1331         nv_wr32(dev, 0x4040d4, 0x00000000);
1332         nv_wr32(dev, 0x4040d8, 0x00000000);
1333         nv_wr32(dev, 0x4040dc, 0x00000000);
1334         nv_wr32(dev, 0x4040e0, 0x00000000);
1335         nv_wr32(dev, 0x4040e4, 0x00000000);
1336         nv_wr32(dev, 0x4040e8, 0x00001000);
1337         nv_wr32(dev, 0x4040f8, 0x00000000);
1338         nv_wr32(dev, 0x404130, 0x00000000);
1339         nv_wr32(dev, 0x404134, 0x00000000);
1340         nv_wr32(dev, 0x404138, 0x20000040);
1341         nv_wr32(dev, 0x404150, 0x0000002e);
1342         nv_wr32(dev, 0x404154, 0x00000400);
1343         nv_wr32(dev, 0x404158, 0x00000200);
1344         nv_wr32(dev, 0x404164, 0x00000055);
1345         nv_wr32(dev, 0x404168, 0x00000000);
1346         nv_wr32(dev, 0x404174, 0x00000000);
1347         nv_wr32(dev, 0x404178, 0x00000000);
1348         nv_wr32(dev, 0x40417c, 0x00000000);
1349         for (i = 0; i < 8; i++)
1350                 nv_wr32(dev, 0x404200 + (i * 4), 0x00000000); /* subc */
1351 }
1352
1353 static void
1354 nvc0_grctx_generate_macro(struct drm_device *dev)
1355 {
1356         nv_wr32(dev, 0x404404, 0x00000000);
1357         nv_wr32(dev, 0x404408, 0x00000000);
1358         nv_wr32(dev, 0x40440c, 0x00000000);
1359         nv_wr32(dev, 0x404410, 0x00000000);
1360         nv_wr32(dev, 0x404414, 0x00000000);
1361         nv_wr32(dev, 0x404418, 0x00000000);
1362         nv_wr32(dev, 0x40441c, 0x00000000);
1363         nv_wr32(dev, 0x404420, 0x00000000);
1364         nv_wr32(dev, 0x404424, 0x00000000);
1365         nv_wr32(dev, 0x404428, 0x00000000);
1366         nv_wr32(dev, 0x40442c, 0x00000000);
1367         nv_wr32(dev, 0x404430, 0x00000000);
1368         nv_wr32(dev, 0x404434, 0x00000000);
1369         nv_wr32(dev, 0x404438, 0x00000000);
1370         nv_wr32(dev, 0x404460, 0x00000000);
1371         nv_wr32(dev, 0x404464, 0x00000000);
1372         nv_wr32(dev, 0x404468, 0x00ffffff);
1373         nv_wr32(dev, 0x40446c, 0x00000000);
1374         nv_wr32(dev, 0x404480, 0x00000001);
1375         nv_wr32(dev, 0x404498, 0x00000001);
1376 }
1377
1378 static void
1379 nvc0_grctx_generate_m2mf(struct drm_device *dev)
1380 {
1381         nv_wr32(dev, 0x404604, 0x00000015);
1382         nv_wr32(dev, 0x404608, 0x00000000);
1383         nv_wr32(dev, 0x40460c, 0x00002e00);
1384         nv_wr32(dev, 0x404610, 0x00000100);
1385         nv_wr32(dev, 0x404618, 0x00000000);
1386         nv_wr32(dev, 0x40461c, 0x00000000);
1387         nv_wr32(dev, 0x404620, 0x00000000);
1388         nv_wr32(dev, 0x404624, 0x00000000);
1389         nv_wr32(dev, 0x404628, 0x00000000);
1390         nv_wr32(dev, 0x40462c, 0x00000000);
1391         nv_wr32(dev, 0x404630, 0x00000000);
1392         nv_wr32(dev, 0x404634, 0x00000000);
1393         nv_wr32(dev, 0x404638, 0x00000004);
1394         nv_wr32(dev, 0x40463c, 0x00000000);
1395         nv_wr32(dev, 0x404640, 0x00000000);
1396         nv_wr32(dev, 0x404644, 0x00000000);
1397         nv_wr32(dev, 0x404648, 0x00000000);
1398         nv_wr32(dev, 0x40464c, 0x00000000);
1399         nv_wr32(dev, 0x404650, 0x00000000);
1400         nv_wr32(dev, 0x404654, 0x00000000);
1401         nv_wr32(dev, 0x404658, 0x00000000);
1402         nv_wr32(dev, 0x40465c, 0x007f0100);
1403         nv_wr32(dev, 0x404660, 0x00000000);
1404         nv_wr32(dev, 0x404664, 0x00000000);
1405         nv_wr32(dev, 0x404668, 0x00000000);
1406         nv_wr32(dev, 0x40466c, 0x00000000);
1407         nv_wr32(dev, 0x404670, 0x00000000);
1408         nv_wr32(dev, 0x404674, 0x00000000);
1409         nv_wr32(dev, 0x404678, 0x00000000);
1410         nv_wr32(dev, 0x40467c, 0x00000002);
1411         nv_wr32(dev, 0x404680, 0x00000000);
1412         nv_wr32(dev, 0x404684, 0x00000000);
1413         nv_wr32(dev, 0x404688, 0x00000000);
1414         nv_wr32(dev, 0x40468c, 0x00000000);
1415         nv_wr32(dev, 0x404690, 0x00000000);
1416         nv_wr32(dev, 0x404694, 0x00000000);
1417         nv_wr32(dev, 0x404698, 0x00000000);
1418         nv_wr32(dev, 0x40469c, 0x00000000);
1419         nv_wr32(dev, 0x4046a0, 0x007f0080);
1420         nv_wr32(dev, 0x4046a4, 0x00000000);
1421         nv_wr32(dev, 0x4046a8, 0x00000000);
1422         nv_wr32(dev, 0x4046ac, 0x00000000);
1423         nv_wr32(dev, 0x4046b0, 0x00000000);
1424         nv_wr32(dev, 0x4046b4, 0x00000000);
1425         nv_wr32(dev, 0x4046b8, 0x00000000);
1426         nv_wr32(dev, 0x4046bc, 0x00000000);
1427         nv_wr32(dev, 0x4046c0, 0x00000000);
1428         nv_wr32(dev, 0x4046c4, 0x00000000);
1429         nv_wr32(dev, 0x4046c8, 0x00000000);
1430         nv_wr32(dev, 0x4046cc, 0x00000000);
1431         nv_wr32(dev, 0x4046d0, 0x00000000);
1432         nv_wr32(dev, 0x4046d4, 0x00000000);
1433         nv_wr32(dev, 0x4046d8, 0x00000000);
1434         nv_wr32(dev, 0x4046dc, 0x00000000);
1435         nv_wr32(dev, 0x4046e0, 0x00000000);
1436         nv_wr32(dev, 0x4046e4, 0x00000000);
1437         nv_wr32(dev, 0x4046e8, 0x00000000);
1438         nv_wr32(dev, 0x4046f0, 0x00000000);
1439         nv_wr32(dev, 0x4046f4, 0x00000000);
1440 }
1441
1442 static void
1443 nvc0_grctx_generate_unk47xx(struct drm_device *dev)
1444 {
1445         nv_wr32(dev, 0x404700, 0x00000000);
1446         nv_wr32(dev, 0x404704, 0x00000000);
1447         nv_wr32(dev, 0x404708, 0x00000000);
1448         nv_wr32(dev, 0x40470c, 0x00000000);
1449         nv_wr32(dev, 0x404710, 0x00000000);
1450         nv_wr32(dev, 0x404714, 0x00000000);
1451         nv_wr32(dev, 0x404718, 0x00000000);
1452         nv_wr32(dev, 0x40471c, 0x00000000);
1453         nv_wr32(dev, 0x404720, 0x00000000);
1454         nv_wr32(dev, 0x404724, 0x00000000);
1455         nv_wr32(dev, 0x404728, 0x00000000);
1456         nv_wr32(dev, 0x40472c, 0x00000000);
1457         nv_wr32(dev, 0x404730, 0x00000000);
1458         nv_wr32(dev, 0x404734, 0x00000100);
1459         nv_wr32(dev, 0x404738, 0x00000000);
1460         nv_wr32(dev, 0x40473c, 0x00000000);
1461         nv_wr32(dev, 0x404740, 0x00000000);
1462         nv_wr32(dev, 0x404744, 0x00000000);
1463         nv_wr32(dev, 0x404748, 0x00000000);
1464         nv_wr32(dev, 0x40474c, 0x00000000);
1465         nv_wr32(dev, 0x404750, 0x00000000);
1466         nv_wr32(dev, 0x404754, 0x00000000);
1467 }
1468
1469 static void
1470 nvc0_grctx_generate_shaders(struct drm_device *dev)
1471 {
1472         struct drm_nouveau_private *dev_priv = dev->dev_private;
1473
1474         if (dev_priv->chipset != 0xc1) {
1475                 nv_wr32(dev, 0x405800, 0x078000bf);
1476                 nv_wr32(dev, 0x405830, 0x02180000);
1477         } else {
1478                 nv_wr32(dev, 0x405800, 0x0f8000bf);
1479                 nv_wr32(dev, 0x405830, 0x02180218);
1480         }
1481         nv_wr32(dev, 0x405834, 0x00000000);
1482         nv_wr32(dev, 0x405838, 0x00000000);
1483         nv_wr32(dev, 0x405854, 0x00000000);
1484         nv_wr32(dev, 0x405870, 0x00000001);
1485         nv_wr32(dev, 0x405874, 0x00000001);
1486         nv_wr32(dev, 0x405878, 0x00000001);
1487         nv_wr32(dev, 0x40587c, 0x00000001);
1488         nv_wr32(dev, 0x405a00, 0x00000000);
1489         nv_wr32(dev, 0x405a04, 0x00000000);
1490         nv_wr32(dev, 0x405a18, 0x00000000);
1491 }
1492
1493 static void
1494 nvc0_grctx_generate_unk60xx(struct drm_device *dev)
1495 {
1496         nv_wr32(dev, 0x406020, 0x000103c1);
1497         nv_wr32(dev, 0x406028, 0x00000001);
1498         nv_wr32(dev, 0x40602c, 0x00000001);
1499         nv_wr32(dev, 0x406030, 0x00000001);
1500         nv_wr32(dev, 0x406034, 0x00000001);
1501 }
1502
1503 static void
1504 nvc0_grctx_generate_unk64xx(struct drm_device *dev)
1505 {
1506         struct drm_nouveau_private *dev_priv = dev->dev_private;
1507
1508         nv_wr32(dev, 0x4064a8, 0x00000000);
1509         nv_wr32(dev, 0x4064ac, 0x00003fff);
1510         nv_wr32(dev, 0x4064b4, 0x00000000);
1511         nv_wr32(dev, 0x4064b8, 0x00000000);
1512         if (dev_priv->chipset == 0xc1) {
1513                 nv_wr32(dev, 0x4064c0, 0x80140078);
1514                 nv_wr32(dev, 0x4064c4, 0x0086ffff);
1515         }
1516 }
1517
1518 static void
1519 nvc0_grctx_generate_tpbus(struct drm_device *dev)
1520 {
1521         nv_wr32(dev, 0x407804, 0x00000023);
1522         nv_wr32(dev, 0x40780c, 0x0a418820);
1523         nv_wr32(dev, 0x407810, 0x062080e6);
1524         nv_wr32(dev, 0x407814, 0x020398a4);
1525         nv_wr32(dev, 0x407818, 0x0e629062);
1526         nv_wr32(dev, 0x40781c, 0x0a418820);
1527         nv_wr32(dev, 0x407820, 0x000000e6);
1528         nv_wr32(dev, 0x4078bc, 0x00000103);
1529 }
1530
1531 static void
1532 nvc0_grctx_generate_ccache(struct drm_device *dev)
1533 {
1534         nv_wr32(dev, 0x408000, 0x00000000);
1535         nv_wr32(dev, 0x408004, 0x00000000);
1536         nv_wr32(dev, 0x408008, 0x00000018);
1537         nv_wr32(dev, 0x40800c, 0x00000000);
1538         nv_wr32(dev, 0x408010, 0x00000000);
1539         nv_wr32(dev, 0x408014, 0x00000069);
1540         nv_wr32(dev, 0x408018, 0xe100e100);
1541         nv_wr32(dev, 0x408064, 0x00000000);
1542 }
1543
1544 static void
1545 nvc0_grctx_generate_rop(struct drm_device *dev)
1546 {
1547         struct drm_nouveau_private *dev_priv = dev->dev_private;
1548         int chipset = dev_priv->chipset;
1549
1550         /* ROPC_BROADCAST */
1551         nv_wr32(dev, 0x408800, 0x02802a3c);
1552         nv_wr32(dev, 0x408804, 0x00000040);
1553         nv_wr32(dev, 0x408808, chipset != 0xc1 ? 0x0003e00d : 0x1003e005);
1554         nv_wr32(dev, 0x408900, 0x3080b801);
1555         nv_wr32(dev, 0x408904, chipset != 0xc1 ? 0x02000001 : 0x62000001);
1556         nv_wr32(dev, 0x408908, 0x00c80929);
1557         nv_wr32(dev, 0x40890c, 0x00000000);
1558         nv_wr32(dev, 0x408980, 0x0000011d);
1559 }
1560
1561 static void
1562 nvc0_grctx_generate_gpc(struct drm_device *dev)
1563 {
1564         struct drm_nouveau_private *dev_priv = dev->dev_private;
1565         int chipset = dev_priv->chipset;
1566         int i;
1567
1568         /* GPC_BROADCAST */
1569         nv_wr32(dev, 0x418380, 0x00000016);
1570         nv_wr32(dev, 0x418400, 0x38004e00);
1571         nv_wr32(dev, 0x418404, 0x71e0ffff);
1572         nv_wr32(dev, 0x418408, 0x00000000);
1573         nv_wr32(dev, 0x41840c, 0x00001008);
1574         nv_wr32(dev, 0x418410, 0x0fff0fff);
1575         nv_wr32(dev, 0x418414, 0x00200fff);
1576         nv_wr32(dev, 0x418450, 0x00000000);
1577         nv_wr32(dev, 0x418454, 0x00000000);
1578         nv_wr32(dev, 0x418458, 0x00000000);
1579         nv_wr32(dev, 0x41845c, 0x00000000);
1580         nv_wr32(dev, 0x418460, 0x00000000);
1581         nv_wr32(dev, 0x418464, 0x00000000);
1582         nv_wr32(dev, 0x418468, 0x00000001);
1583         nv_wr32(dev, 0x41846c, 0x00000000);
1584         nv_wr32(dev, 0x418470, 0x00000000);
1585         nv_wr32(dev, 0x418600, 0x0000001f);
1586         nv_wr32(dev, 0x418684, 0x0000000f);
1587         nv_wr32(dev, 0x418700, 0x00000002);
1588         nv_wr32(dev, 0x418704, 0x00000080);
1589         nv_wr32(dev, 0x418708, 0x00000000);
1590         nv_wr32(dev, 0x41870c, 0x07c80000);
1591         nv_wr32(dev, 0x418710, 0x00000000);
1592         nv_wr32(dev, 0x418800, 0x0006860a);
1593         nv_wr32(dev, 0x418808, 0x00000000);
1594         nv_wr32(dev, 0x41880c, 0x00000000);
1595         nv_wr32(dev, 0x418810, 0x00000000);
1596         nv_wr32(dev, 0x418828, 0x00008442);
1597         nv_wr32(dev, 0x418830, chipset != 0xc1 ? 0x00000001 : 0x10000001);
1598         nv_wr32(dev, 0x4188d8, 0x00000008);
1599         nv_wr32(dev, 0x4188e0, 0x01000000);
1600         nv_wr32(dev, 0x4188e8, 0x00000000);
1601         nv_wr32(dev, 0x4188ec, 0x00000000);
1602         nv_wr32(dev, 0x4188f0, 0x00000000);
1603         nv_wr32(dev, 0x4188f4, 0x00000000);
1604         nv_wr32(dev, 0x4188f8, 0x00000000);
1605         nv_wr32(dev, 0x4188fc, chipset != 0xc1 ? 0x00100000 : 0x00100018);
1606         nv_wr32(dev, 0x41891c, 0x00ff00ff);
1607         nv_wr32(dev, 0x418924, 0x00000000);
1608         nv_wr32(dev, 0x418928, 0x00ffff00);
1609         nv_wr32(dev, 0x41892c, 0x0000ff00);
1610         for (i = 0; i < 8; i++) {
1611                 nv_wr32(dev, 0x418a00 + (i * 0x20), 0x00000000);
1612                 nv_wr32(dev, 0x418a04 + (i * 0x20), 0x00000000);
1613                 nv_wr32(dev, 0x418a08 + (i * 0x20), 0x00000000);
1614                 nv_wr32(dev, 0x418a0c + (i * 0x20), 0x00010000);
1615                 nv_wr32(dev, 0x418a10 + (i * 0x20), 0x00000000);
1616                 nv_wr32(dev, 0x418a14 + (i * 0x20), 0x00000000);
1617                 nv_wr32(dev, 0x418a18 + (i * 0x20), 0x00000000);
1618         }
1619         nv_wr32(dev, 0x418b00, 0x00000000);
1620         nv_wr32(dev, 0x418b08, 0x0a418820);
1621         nv_wr32(dev, 0x418b0c, 0x062080e6);
1622         nv_wr32(dev, 0x418b10, 0x020398a4);
1623         nv_wr32(dev, 0x418b14, 0x0e629062);
1624         nv_wr32(dev, 0x418b18, 0x0a418820);
1625         nv_wr32(dev, 0x418b1c, 0x000000e6);
1626         nv_wr32(dev, 0x418bb8, 0x00000103);
1627         nv_wr32(dev, 0x418c08, 0x00000001);
1628         nv_wr32(dev, 0x418c10, 0x00000000);
1629         nv_wr32(dev, 0x418c14, 0x00000000);
1630         nv_wr32(dev, 0x418c18, 0x00000000);
1631         nv_wr32(dev, 0x418c1c, 0x00000000);
1632         nv_wr32(dev, 0x418c20, 0x00000000);
1633         nv_wr32(dev, 0x418c24, 0x00000000);
1634         nv_wr32(dev, 0x418c28, 0x00000000);
1635         nv_wr32(dev, 0x418c2c, 0x00000000);
1636         if (chipset == 0xc1)
1637                 nv_wr32(dev, 0x418c6c, 0x00000001);
1638         nv_wr32(dev, 0x418c80, 0x20200004);
1639         nv_wr32(dev, 0x418c8c, 0x00000001);
1640         nv_wr32(dev, 0x419000, 0x00000780);
1641         nv_wr32(dev, 0x419004, 0x00000000);
1642         nv_wr32(dev, 0x419008, 0x00000000);
1643         nv_wr32(dev, 0x419014, 0x00000004);
1644 }
1645
1646 static void
1647 nvc0_grctx_generate_tp(struct drm_device *dev)
1648 {
1649         struct drm_nouveau_private *dev_priv = dev->dev_private;
1650         int chipset = dev_priv->chipset;
1651
1652         /* GPC_BROADCAST.TP_BROADCAST */
1653         nv_wr32(dev, 0x419818, 0x00000000);
1654         nv_wr32(dev, 0x41983c, 0x00038bc7);
1655         nv_wr32(dev, 0x419848, 0x00000000);
1656         nv_wr32(dev, 0x419864, chipset != 0xc1 ? 0x0000012a : 0x00000129);
1657         nv_wr32(dev, 0x419888, 0x00000000);
1658         nv_wr32(dev, 0x419a00, 0x000001f0);
1659         nv_wr32(dev, 0x419a04, 0x00000001);
1660         nv_wr32(dev, 0x419a08, 0x00000023);
1661         nv_wr32(dev, 0x419a0c, 0x00020000);
1662         nv_wr32(dev, 0x419a10, 0x00000000);
1663         nv_wr32(dev, 0x419a14, 0x00000200);
1664         nv_wr32(dev, 0x419a1c, 0x00000000);
1665         nv_wr32(dev, 0x419a20, 0x00000800);
1666         if (chipset != 0xc0 && chipset != 0xc8)
1667                 nv_wr32(dev, 0x00419ac4, 0x0007f440);
1668         nv_wr32(dev, 0x419b00, 0x0a418820);
1669         nv_wr32(dev, 0x419b04, 0x062080e6);
1670         nv_wr32(dev, 0x419b08, 0x020398a4);
1671         nv_wr32(dev, 0x419b0c, 0x0e629062);
1672         nv_wr32(dev, 0x419b10, 0x0a418820);
1673         nv_wr32(dev, 0x419b14, 0x000000e6);
1674         nv_wr32(dev, 0x419bd0, 0x00900103);
1675         nv_wr32(dev, 0x419be0, chipset != 0xc1 ? 0x00000001 : 0x00400001);
1676         nv_wr32(dev, 0x419be4, 0x00000000);
1677         nv_wr32(dev, 0x419c00, 0x00000002);
1678         nv_wr32(dev, 0x419c04, 0x00000006);
1679         nv_wr32(dev, 0x419c08, 0x00000002);
1680         nv_wr32(dev, 0x419c20, 0x00000000);
1681         if (chipset == 0xce || chipset == 0xcf)
1682                 nv_wr32(dev, 0x419cb0, 0x00020048);
1683         else
1684                 nv_wr32(dev, 0x419cb0, 0x00060048);
1685         nv_wr32(dev, 0x419ce8, 0x00000000);
1686         nv_wr32(dev, 0x419cf4, 0x00000183);
1687         nv_wr32(dev, 0x419d20, chipset != 0xc1 ? 0x02180000 : 0x12180000);
1688         nv_wr32(dev, 0x419d24, 0x00001fff);
1689         if (chipset == 0xc1)
1690                 nv_wr32(dev, 0x419d44, 0x02180218);
1691         nv_wr32(dev, 0x419e04, 0x00000000);
1692         nv_wr32(dev, 0x419e08, 0x00000000);
1693         nv_wr32(dev, 0x419e0c, 0x00000000);
1694         nv_wr32(dev, 0x419e10, 0x00000002);
1695         nv_wr32(dev, 0x419e44, 0x001beff2);
1696         nv_wr32(dev, 0x419e48, 0x00000000);
1697         nv_wr32(dev, 0x419e4c, 0x0000000f);
1698         nv_wr32(dev, 0x419e50, 0x00000000);
1699         nv_wr32(dev, 0x419e54, 0x00000000);
1700         nv_wr32(dev, 0x419e58, 0x00000000);
1701         nv_wr32(dev, 0x419e5c, 0x00000000);
1702         nv_wr32(dev, 0x419e60, 0x00000000);
1703         nv_wr32(dev, 0x419e64, 0x00000000);
1704         nv_wr32(dev, 0x419e68, 0x00000000);
1705         nv_wr32(dev, 0x419e6c, 0x00000000);
1706         nv_wr32(dev, 0x419e70, 0x00000000);
1707         nv_wr32(dev, 0x419e74, 0x00000000);
1708         nv_wr32(dev, 0x419e78, 0x00000000);
1709         nv_wr32(dev, 0x419e7c, 0x00000000);
1710         nv_wr32(dev, 0x419e80, 0x00000000);
1711         nv_wr32(dev, 0x419e84, 0x00000000);
1712         nv_wr32(dev, 0x419e88, 0x00000000);
1713         nv_wr32(dev, 0x419e8c, 0x00000000);
1714         nv_wr32(dev, 0x419e90, 0x00000000);
1715         nv_wr32(dev, 0x419e98, 0x00000000);
1716         if (chipset != 0xc0 && chipset != 0xc8)
1717                 nv_wr32(dev, 0x419ee0, 0x00011110);
1718         nv_wr32(dev, 0x419f50, 0x00000000);
1719         nv_wr32(dev, 0x419f54, 0x00000000);
1720         if (chipset != 0xc0 && chipset != 0xc8)
1721                 nv_wr32(dev, 0x419f58, 0x00000000);
1722 }
1723
1724 int
1725 nvc0_grctx_generate(struct nouveau_channel *chan)
1726 {
1727         struct drm_nouveau_private *dev_priv = chan->dev->dev_private;
1728         struct nvc0_graph_priv *priv = nv_engine(chan->dev, NVOBJ_ENGINE_GR);
1729         struct nvc0_graph_chan *grch = chan->engctx[NVOBJ_ENGINE_GR];
1730         struct drm_device *dev = chan->dev;
1731         int i, gpc, tp, id;
1732         u32 fermi = nvc0_graph_class(dev);
1733         u32 r000260, tmp;
1734
1735         r000260 = nv_rd32(dev, 0x000260);
1736         nv_wr32(dev, 0x000260, r000260 & ~1);
1737         nv_wr32(dev, 0x400208, 0x00000000);
1738
1739         nvc0_grctx_generate_dispatch(dev);
1740         nvc0_grctx_generate_macro(dev);
1741         nvc0_grctx_generate_m2mf(dev);
1742         nvc0_grctx_generate_unk47xx(dev);
1743         nvc0_grctx_generate_shaders(dev);
1744         nvc0_grctx_generate_unk60xx(dev);
1745         nvc0_grctx_generate_unk64xx(dev);
1746         nvc0_grctx_generate_tpbus(dev);
1747         nvc0_grctx_generate_ccache(dev);
1748         nvc0_grctx_generate_rop(dev);
1749         nvc0_grctx_generate_gpc(dev);
1750         nvc0_grctx_generate_tp(dev);
1751
1752         nv_wr32(dev, 0x404154, 0x00000000);
1753
1754         /* fuc "mmio list" writes */
1755         for (i = 0; i < grch->mmio_nr * 8; i += 8) {
1756                 u32 reg = nv_ro32(grch->mmio, i + 0);
1757                 nv_wr32(dev, reg, nv_ro32(grch->mmio, i + 4));
1758         }
1759
1760         for (tp = 0, id = 0; tp < 4; tp++) {
1761                 for (gpc = 0; gpc < priv->gpc_nr; gpc++) {
1762                         if (tp < priv->tp_nr[gpc]) {
1763                                 nv_wr32(dev, TP_UNIT(gpc, tp, 0x698), id);
1764                                 nv_wr32(dev, TP_UNIT(gpc, tp, 0x4e8), id);
1765                                 nv_wr32(dev, GPC_UNIT(gpc, 0x0c10 + tp * 4), id);
1766                                 nv_wr32(dev, TP_UNIT(gpc, tp, 0x088), id);
1767                                 id++;
1768                         }
1769
1770                         nv_wr32(dev, GPC_UNIT(gpc, 0x0c08), priv->tp_nr[gpc]);
1771                         nv_wr32(dev, GPC_UNIT(gpc, 0x0c8c), priv->tp_nr[gpc]);
1772                 }
1773         }
1774
1775         tmp = 0;
1776         for (i = 0; i < priv->gpc_nr; i++)
1777                 tmp |= priv->tp_nr[i] << (i * 4);
1778         nv_wr32(dev, 0x406028, tmp);
1779         nv_wr32(dev, 0x405870, tmp);
1780
1781         nv_wr32(dev, 0x40602c, 0x00000000);
1782         nv_wr32(dev, 0x405874, 0x00000000);
1783         nv_wr32(dev, 0x406030, 0x00000000);
1784         nv_wr32(dev, 0x405878, 0x00000000);
1785         nv_wr32(dev, 0x406034, 0x00000000);
1786         nv_wr32(dev, 0x40587c, 0x00000000);
1787
1788         if (1) {
1789                 u8 tpnr[GPC_MAX], data[TP_MAX];
1790
1791                 memcpy(tpnr, priv->tp_nr, sizeof(priv->tp_nr));
1792                 memset(data, 0x1f, sizeof(data));
1793
1794                 gpc = -1;
1795                 for (tp = 0; tp < priv->tp_total; tp++) {
1796                         do {
1797                                 gpc = (gpc + 1) % priv->gpc_nr;
1798                         } while (!tpnr[gpc]);
1799                         tpnr[gpc]--;
1800                         data[tp] = gpc;
1801                 }
1802
1803                 for (i = 0; i < 4; i++)
1804                         nv_wr32(dev, 0x4060a8 + (i * 4), ((u32 *)data)[i]);
1805         }
1806
1807         if (1) {
1808                 u32 data[6] = {}, data2[2] = {};
1809                 u8 tpnr[GPC_MAX];
1810                 u8 shift, ntpcv;
1811
1812                 /* calculate first set of magics */
1813                 memcpy(tpnr, priv->tp_nr, sizeof(priv->tp_nr));
1814
1815                 gpc = -1;
1816                 for (tp = 0; tp < priv->tp_total; tp++) {
1817                         do {
1818                                 gpc = (gpc + 1) % priv->gpc_nr;
1819                         } while (!tpnr[gpc]);
1820                         tpnr[gpc]--;
1821
1822                         data[tp / 6] |= gpc << ((tp % 6) * 5);
1823                 }
1824
1825                 for (; tp < 32; tp++)
1826                         data[tp / 6] |= 7 << ((tp % 6) * 5);
1827
1828                 /* and the second... */
1829                 shift = 0;
1830                 ntpcv = priv->tp_total;
1831                 while (!(ntpcv & (1 << 4))) {
1832                         ntpcv <<= 1;
1833                         shift++;
1834                 }
1835
1836                 data2[0]  = (ntpcv << 16);
1837                 data2[0] |= (shift << 21);
1838                 data2[0] |= (((1 << (0 + 5)) % ntpcv) << 24);
1839                 for (i = 1; i < 7; i++)
1840                         data2[1] |= ((1 << (i + 5)) % ntpcv) << ((i - 1) * 5);
1841
1842                 /* GPC_BROADCAST */
1843                 nv_wr32(dev, 0x418bb8, (priv->tp_total << 8) |
1844                                         priv->magic_not_rop_nr);
1845                 for (i = 0; i < 6; i++)
1846                         nv_wr32(dev, 0x418b08 + (i * 4), data[i]);
1847
1848                 /* GPC_BROADCAST.TP_BROADCAST */
1849                 nv_wr32(dev, 0x419bd0, (priv->tp_total << 8) |
1850                                        priv->magic_not_rop_nr |
1851                                        data2[0]);
1852                 nv_wr32(dev, 0x419be4, data2[1]);
1853                 for (i = 0; i < 6; i++)
1854                         nv_wr32(dev, 0x419b00 + (i * 4), data[i]);
1855
1856                 /* UNK78xx */
1857                 nv_wr32(dev, 0x4078bc, (priv->tp_total << 8) |
1858                                         priv->magic_not_rop_nr);
1859                 for (i = 0; i < 6; i++)
1860                         nv_wr32(dev, 0x40780c + (i * 4), data[i]);
1861         }
1862
1863         if (1) {
1864                 u32 tp_mask = 0, tp_set = 0;
1865                 u8  tpnr[GPC_MAX], a, b;
1866
1867                 memcpy(tpnr, priv->tp_nr, sizeof(priv->tp_nr));
1868                 for (gpc = 0; gpc < priv->gpc_nr; gpc++)
1869                         tp_mask |= ((1 << priv->tp_nr[gpc]) - 1) << (gpc * 8);
1870
1871                 for (i = 0, gpc = -1, b = -1; i < 32; i++) {
1872                         a = (i * (priv->tp_total - 1)) / 32;
1873                         if (a != b) {
1874                                 b = a;
1875                                 do {
1876                                         gpc = (gpc + 1) % priv->gpc_nr;
1877                                 } while (!tpnr[gpc]);
1878                                 tp = priv->tp_nr[gpc] - tpnr[gpc]--;
1879
1880                                 tp_set |= 1 << ((gpc * 8) + tp);
1881                         }
1882
1883                         nv_wr32(dev, 0x406800 + (i * 0x20), tp_set);
1884                         nv_wr32(dev, 0x406c00 + (i * 0x20), tp_set ^ tp_mask);
1885                 }
1886         }
1887
1888         nv_wr32(dev, 0x400208, 0x80000000);
1889
1890         nv_icmd(dev, 0x00001000, 0x00000004);
1891         nv_icmd(dev, 0x000000a9, 0x0000ffff);
1892         nv_icmd(dev, 0x00000038, 0x0fac6881);
1893         nv_icmd(dev, 0x0000003d, 0x00000001);
1894         nv_icmd(dev, 0x000000e8, 0x00000400);
1895         nv_icmd(dev, 0x000000e9, 0x00000400);
1896         nv_icmd(dev, 0x000000ea, 0x00000400);
1897         nv_icmd(dev, 0x000000eb, 0x00000400);
1898         nv_icmd(dev, 0x000000ec, 0x00000400);
1899         nv_icmd(dev, 0x000000ed, 0x00000400);
1900         nv_icmd(dev, 0x000000ee, 0x00000400);
1901         nv_icmd(dev, 0x000000ef, 0x00000400);
1902         nv_icmd(dev, 0x00000078, 0x00000300);
1903         nv_icmd(dev, 0x00000079, 0x00000300);
1904         nv_icmd(dev, 0x0000007a, 0x00000300);
1905         nv_icmd(dev, 0x0000007b, 0x00000300);
1906         nv_icmd(dev, 0x0000007c, 0x00000300);
1907         nv_icmd(dev, 0x0000007d, 0x00000300);
1908         nv_icmd(dev, 0x0000007e, 0x00000300);
1909         nv_icmd(dev, 0x0000007f, 0x00000300);
1910         nv_icmd(dev, 0x00000050, 0x00000011);
1911         nv_icmd(dev, 0x00000058, 0x00000008);
1912         nv_icmd(dev, 0x00000059, 0x00000008);
1913         nv_icmd(dev, 0x0000005a, 0x00000008);
1914         nv_icmd(dev, 0x0000005b, 0x00000008);
1915         nv_icmd(dev, 0x0000005c, 0x00000008);
1916         nv_icmd(dev, 0x0000005d, 0x00000008);
1917         nv_icmd(dev, 0x0000005e, 0x00000008);
1918         nv_icmd(dev, 0x0000005f, 0x00000008);
1919         nv_icmd(dev, 0x00000208, 0x00000001);
1920         nv_icmd(dev, 0x00000209, 0x00000001);
1921         nv_icmd(dev, 0x0000020a, 0x00000001);
1922         nv_icmd(dev, 0x0000020b, 0x00000001);
1923         nv_icmd(dev, 0x0000020c, 0x00000001);
1924         nv_icmd(dev, 0x0000020d, 0x00000001);
1925         nv_icmd(dev, 0x0000020e, 0x00000001);
1926         nv_icmd(dev, 0x0000020f, 0x00000001);
1927         nv_icmd(dev, 0x00000081, 0x00000001);
1928         nv_icmd(dev, 0x00000085, 0x00000004);
1929         nv_icmd(dev, 0x00000088, 0x00000400);
1930         nv_icmd(dev, 0x00000090, 0x00000300);
1931         nv_icmd(dev, 0x00000098, 0x00001001);
1932         nv_icmd(dev, 0x000000e3, 0x00000001);
1933         nv_icmd(dev, 0x000000da, 0x00000001);
1934         nv_icmd(dev, 0x000000f8, 0x00000003);
1935         nv_icmd(dev, 0x000000fa, 0x00000001);
1936         nv_icmd(dev, 0x0000009f, 0x0000ffff);
1937         nv_icmd(dev, 0x000000a0, 0x0000ffff);
1938         nv_icmd(dev, 0x000000a1, 0x0000ffff);
1939         nv_icmd(dev, 0x000000a2, 0x0000ffff);
1940         nv_icmd(dev, 0x000000b1, 0x00000001);
1941         nv_icmd(dev, 0x000000b2, 0x00000000);
1942         nv_icmd(dev, 0x000000b3, 0x00000000);
1943         nv_icmd(dev, 0x000000b4, 0x00000000);
1944         nv_icmd(dev, 0x000000b5, 0x00000000);
1945         nv_icmd(dev, 0x000000b6, 0x00000000);
1946         nv_icmd(dev, 0x000000b7, 0x00000000);
1947         nv_icmd(dev, 0x000000b8, 0x00000000);
1948         nv_icmd(dev, 0x000000b9, 0x00000000);
1949         nv_icmd(dev, 0x000000ba, 0x00000000);
1950         nv_icmd(dev, 0x000000bb, 0x00000000);
1951         nv_icmd(dev, 0x000000bc, 0x00000000);
1952         nv_icmd(dev, 0x000000bd, 0x00000000);
1953         nv_icmd(dev, 0x000000be, 0x00000000);
1954         nv_icmd(dev, 0x000000bf, 0x00000000);
1955         nv_icmd(dev, 0x000000c0, 0x00000000);
1956         nv_icmd(dev, 0x000000c1, 0x00000000);
1957         nv_icmd(dev, 0x000000c2, 0x00000000);
1958         nv_icmd(dev, 0x000000c3, 0x00000000);
1959         nv_icmd(dev, 0x000000c4, 0x00000000);
1960         nv_icmd(dev, 0x000000c5, 0x00000000);
1961         nv_icmd(dev, 0x000000c6, 0x00000000);
1962         nv_icmd(dev, 0x000000c7, 0x00000000);
1963         nv_icmd(dev, 0x000000c8, 0x00000000);
1964         nv_icmd(dev, 0x000000c9, 0x00000000);
1965         nv_icmd(dev, 0x000000ca, 0x00000000);
1966         nv_icmd(dev, 0x000000cb, 0x00000000);
1967         nv_icmd(dev, 0x000000cc, 0x00000000);
1968         nv_icmd(dev, 0x000000cd, 0x00000000);
1969         nv_icmd(dev, 0x000000ce, 0x00000000);
1970         nv_icmd(dev, 0x000000cf, 0x00000000);
1971         nv_icmd(dev, 0x000000d0, 0x00000000);
1972         nv_icmd(dev, 0x000000d1, 0x00000000);
1973         nv_icmd(dev, 0x000000d2, 0x00000000);
1974         nv_icmd(dev, 0x000000d3, 0x00000000);
1975         nv_icmd(dev, 0x000000d4, 0x00000000);
1976         nv_icmd(dev, 0x000000d5, 0x00000000);
1977         nv_icmd(dev, 0x000000d6, 0x00000000);
1978         nv_icmd(dev, 0x000000d7, 0x00000000);
1979         nv_icmd(dev, 0x000000d8, 0x00000000);
1980         nv_icmd(dev, 0x000000d9, 0x00000000);
1981         nv_icmd(dev, 0x00000210, 0x00000040);
1982         nv_icmd(dev, 0x00000211, 0x00000040);
1983         nv_icmd(dev, 0x00000212, 0x00000040);
1984         nv_icmd(dev, 0x00000213, 0x00000040);
1985         nv_icmd(dev, 0x00000214, 0x00000040);
1986         nv_icmd(dev, 0x00000215, 0x00000040);
1987         nv_icmd(dev, 0x00000216, 0x00000040);
1988         nv_icmd(dev, 0x00000217, 0x00000040);
1989         nv_icmd(dev, 0x00000218, 0x0000c080);
1990         nv_icmd(dev, 0x00000219, 0x0000c080);
1991         nv_icmd(dev, 0x0000021a, 0x0000c080);
1992         nv_icmd(dev, 0x0000021b, 0x0000c080);
1993         nv_icmd(dev, 0x0000021c, 0x0000c080);
1994         nv_icmd(dev, 0x0000021d, 0x0000c080);
1995         nv_icmd(dev, 0x0000021e, 0x0000c080);
1996         nv_icmd(dev, 0x0000021f, 0x0000c080);
1997         nv_icmd(dev, 0x000000ad, 0x0000013e);
1998         nv_icmd(dev, 0x000000e1, 0x00000010);
1999         nv_icmd(dev, 0x00000290, 0x00000000);
2000         nv_icmd(dev, 0x00000291, 0x00000000);
2001         nv_icmd(dev, 0x00000292, 0x00000000);
2002         nv_icmd(dev, 0x00000293, 0x00000000);
2003         nv_icmd(dev, 0x00000294, 0x00000000);
2004         nv_icmd(dev, 0x00000295, 0x00000000);
2005         nv_icmd(dev, 0x00000296, 0x00000000);
2006         nv_icmd(dev, 0x00000297, 0x00000000);
2007         nv_icmd(dev, 0x00000298, 0x00000000);
2008         nv_icmd(dev, 0x00000299, 0x00000000);
2009         nv_icmd(dev, 0x0000029a, 0x00000000);
2010         nv_icmd(dev, 0x0000029b, 0x00000000);
2011         nv_icmd(dev, 0x0000029c, 0x00000000);
2012         nv_icmd(dev, 0x0000029d, 0x00000000);
2013         nv_icmd(dev, 0x0000029e, 0x00000000);
2014         nv_icmd(dev, 0x0000029f, 0x00000000);
2015         nv_icmd(dev, 0x000003b0, 0x00000000);
2016         nv_icmd(dev, 0x000003b1, 0x00000000);
2017         nv_icmd(dev, 0x000003b2, 0x00000000);
2018         nv_icmd(dev, 0x000003b3, 0x00000000);
2019         nv_icmd(dev, 0x000003b4, 0x00000000);
2020         nv_icmd(dev, 0x000003b5, 0x00000000);
2021         nv_icmd(dev, 0x000003b6, 0x00000000);
2022         nv_icmd(dev, 0x000003b7, 0x00000000);
2023         nv_icmd(dev, 0x000003b8, 0x00000000);
2024         nv_icmd(dev, 0x000003b9, 0x00000000);
2025         nv_icmd(dev, 0x000003ba, 0x00000000);
2026         nv_icmd(dev, 0x000003bb, 0x00000000);
2027         nv_icmd(dev, 0x000003bc, 0x00000000);
2028         nv_icmd(dev, 0x000003bd, 0x00000000);
2029         nv_icmd(dev, 0x000003be, 0x00000000);
2030         nv_icmd(dev, 0x000003bf, 0x00000000);
2031         nv_icmd(dev, 0x000002a0, 0x00000000);
2032         nv_icmd(dev, 0x000002a1, 0x00000000);
2033         nv_icmd(dev, 0x000002a2, 0x00000000);
2034         nv_icmd(dev, 0x000002a3, 0x00000000);
2035         nv_icmd(dev, 0x000002a4, 0x00000000);
2036         nv_icmd(dev, 0x000002a5, 0x00000000);
2037         nv_icmd(dev, 0x000002a6, 0x00000000);
2038         nv_icmd(dev, 0x000002a7, 0x00000000);
2039         nv_icmd(dev, 0x000002a8, 0x00000000);
2040         nv_icmd(dev, 0x000002a9, 0x00000000);
2041         nv_icmd(dev, 0x000002aa, 0x00000000);
2042         nv_icmd(dev, 0x000002ab, 0x00000000);
2043         nv_icmd(dev, 0x000002ac, 0x00000000);
2044         nv_icmd(dev, 0x000002ad, 0x00000000);
2045         nv_icmd(dev, 0x000002ae, 0x00000000);
2046         nv_icmd(dev, 0x000002af, 0x00000000);
2047         nv_icmd(dev, 0x00000420, 0x00000000);
2048         nv_icmd(dev, 0x00000421, 0x00000000);
2049         nv_icmd(dev, 0x00000422, 0x00000000);
2050         nv_icmd(dev, 0x00000423, 0x00000000);
2051         nv_icmd(dev, 0x00000424, 0x00000000);
2052         nv_icmd(dev, 0x00000425, 0x00000000);
2053         nv_icmd(dev, 0x00000426, 0x00000000);
2054         nv_icmd(dev, 0x00000427, 0x00000000);
2055         nv_icmd(dev, 0x00000428, 0x00000000);
2056         nv_icmd(dev, 0x00000429, 0x00000000);
2057         nv_icmd(dev, 0x0000042a, 0x00000000);
2058         nv_icmd(dev, 0x0000042b, 0x00000000);
2059         nv_icmd(dev, 0x0000042c, 0x00000000);
2060         nv_icmd(dev, 0x0000042d, 0x00000000);
2061         nv_icmd(dev, 0x0000042e, 0x00000000);
2062         nv_icmd(dev, 0x0000042f, 0x00000000);
2063         nv_icmd(dev, 0x000002b0, 0x00000000);
2064         nv_icmd(dev, 0x000002b1, 0x00000000);
2065         nv_icmd(dev, 0x000002b2, 0x00000000);
2066         nv_icmd(dev, 0x000002b3, 0x00000000);
2067         nv_icmd(dev, 0x000002b4, 0x00000000);
2068         nv_icmd(dev, 0x000002b5, 0x00000000);
2069         nv_icmd(dev, 0x000002b6, 0x00000000);
2070         nv_icmd(dev, 0x000002b7, 0x00000000);
2071         nv_icmd(dev, 0x000002b8, 0x00000000);
2072         nv_icmd(dev, 0x000002b9, 0x00000000);
2073         nv_icmd(dev, 0x000002ba, 0x00000000);
2074         nv_icmd(dev, 0x000002bb, 0x00000000);
2075         nv_icmd(dev, 0x000002bc, 0x00000000);
2076         nv_icmd(dev, 0x000002bd, 0x00000000);
2077         nv_icmd(dev, 0x000002be, 0x00000000);
2078         nv_icmd(dev, 0x000002bf, 0x00000000);
2079         nv_icmd(dev, 0x00000430, 0x00000000);
2080         nv_icmd(dev, 0x00000431, 0x00000000);
2081         nv_icmd(dev, 0x00000432, 0x00000000);
2082         nv_icmd(dev, 0x00000433, 0x00000000);
2083         nv_icmd(dev, 0x00000434, 0x00000000);
2084         nv_icmd(dev, 0x00000435, 0x00000000);
2085         nv_icmd(dev, 0x00000436, 0x00000000);
2086         nv_icmd(dev, 0x00000437, 0x00000000);
2087         nv_icmd(dev, 0x00000438, 0x00000000);
2088         nv_icmd(dev, 0x00000439, 0x00000000);
2089         nv_icmd(dev, 0x0000043a, 0x00000000);
2090         nv_icmd(dev, 0x0000043b, 0x00000000);
2091         nv_icmd(dev, 0x0000043c, 0x00000000);
2092         nv_icmd(dev, 0x0000043d, 0x00000000);
2093         nv_icmd(dev, 0x0000043e, 0x00000000);
2094         nv_icmd(dev, 0x0000043f, 0x00000000);
2095         nv_icmd(dev, 0x000002c0, 0x00000000);
2096         nv_icmd(dev, 0x000002c1, 0x00000000);
2097         nv_icmd(dev, 0x000002c2, 0x00000000);
2098         nv_icmd(dev, 0x000002c3, 0x00000000);
2099         nv_icmd(dev, 0x000002c4, 0x00000000);
2100         nv_icmd(dev, 0x000002c5, 0x00000000);
2101         nv_icmd(dev, 0x000002c6, 0x00000000);
2102         nv_icmd(dev, 0x000002c7, 0x00000000);
2103         nv_icmd(dev, 0x000002c8, 0x00000000);
2104         nv_icmd(dev, 0x000002c9, 0x00000000);
2105         nv_icmd(dev, 0x000002ca, 0x00000000);
2106         nv_icmd(dev, 0x000002cb, 0x00000000);
2107         nv_icmd(dev, 0x000002cc, 0x00000000);
2108         nv_icmd(dev, 0x000002cd, 0x00000000);
2109         nv_icmd(dev, 0x000002ce, 0x00000000);
2110         nv_icmd(dev, 0x000002cf, 0x00000000);
2111         nv_icmd(dev, 0x000004d0, 0x00000000);
2112         nv_icmd(dev, 0x000004d1, 0x00000000);
2113         nv_icmd(dev, 0x000004d2, 0x00000000);
2114         nv_icmd(dev, 0x000004d3, 0x00000000);
2115         nv_icmd(dev, 0x000004d4, 0x00000000);
2116         nv_icmd(dev, 0x000004d5, 0x00000000);
2117         nv_icmd(dev, 0x000004d6, 0x00000000);
2118         nv_icmd(dev, 0x000004d7, 0x00000000);
2119         nv_icmd(dev, 0x000004d8, 0x00000000);
2120         nv_icmd(dev, 0x000004d9, 0x00000000);
2121         nv_icmd(dev, 0x000004da, 0x00000000);
2122         nv_icmd(dev, 0x000004db, 0x00000000);
2123         nv_icmd(dev, 0x000004dc, 0x00000000);
2124         nv_icmd(dev, 0x000004dd, 0x00000000);
2125         nv_icmd(dev, 0x000004de, 0x00000000);
2126         nv_icmd(dev, 0x000004df, 0x00000000);
2127         nv_icmd(dev, 0x00000720, 0x00000000);
2128         nv_icmd(dev, 0x00000721, 0x00000000);
2129         nv_icmd(dev, 0x00000722, 0x00000000);
2130         nv_icmd(dev, 0x00000723, 0x00000000);
2131         nv_icmd(dev, 0x00000724, 0x00000000);
2132         nv_icmd(dev, 0x00000725, 0x00000000);
2133         nv_icmd(dev, 0x00000726, 0x00000000);
2134         nv_icmd(dev, 0x00000727, 0x00000000);
2135         nv_icmd(dev, 0x00000728, 0x00000000);
2136         nv_icmd(dev, 0x00000729, 0x00000000);
2137         nv_icmd(dev, 0x0000072a, 0x00000000);
2138         nv_icmd(dev, 0x0000072b, 0x00000000);
2139         nv_icmd(dev, 0x0000072c, 0x00000000);
2140         nv_icmd(dev, 0x0000072d, 0x00000000);
2141         nv_icmd(dev, 0x0000072e, 0x00000000);
2142         nv_icmd(dev, 0x0000072f, 0x00000000);
2143         nv_icmd(dev, 0x000008c0, 0x00000000);
2144         nv_icmd(dev, 0x000008c1, 0x00000000);
2145         nv_icmd(dev, 0x000008c2, 0x00000000);
2146         nv_icmd(dev, 0x000008c3, 0x00000000);
2147         nv_icmd(dev, 0x000008c4, 0x00000000);
2148         nv_icmd(dev, 0x000008c5, 0x00000000);
2149         nv_icmd(dev, 0x000008c6, 0x00000000);
2150         nv_icmd(dev, 0x000008c7, 0x00000000);
2151         nv_icmd(dev, 0x000008c8, 0x00000000);
2152         nv_icmd(dev, 0x000008c9, 0x00000000);
2153         nv_icmd(dev, 0x000008ca, 0x00000000);
2154         nv_icmd(dev, 0x000008cb, 0x00000000);
2155         nv_icmd(dev, 0x000008cc, 0x00000000);
2156         nv_icmd(dev, 0x000008cd, 0x00000000);
2157         nv_icmd(dev, 0x000008ce, 0x00000000);
2158         nv_icmd(dev, 0x000008cf, 0x00000000);
2159         nv_icmd(dev, 0x00000890, 0x00000000);
2160         nv_icmd(dev, 0x00000891, 0x00000000);
2161         nv_icmd(dev, 0x00000892, 0x00000000);
2162         nv_icmd(dev, 0x00000893, 0x00000000);
2163         nv_icmd(dev, 0x00000894, 0x00000000);
2164         nv_icmd(dev, 0x00000895, 0x00000000);
2165         nv_icmd(dev, 0x00000896, 0x00000000);
2166         nv_icmd(dev, 0x00000897, 0x00000000);
2167         nv_icmd(dev, 0x00000898, 0x00000000);
2168         nv_icmd(dev, 0x00000899, 0x00000000);
2169         nv_icmd(dev, 0x0000089a, 0x00000000);
2170         nv_icmd(dev, 0x0000089b, 0x00000000);
2171         nv_icmd(dev, 0x0000089c, 0x00000000);
2172         nv_icmd(dev, 0x0000089d, 0x00000000);
2173         nv_icmd(dev, 0x0000089e, 0x00000000);
2174         nv_icmd(dev, 0x0000089f, 0x00000000);
2175         nv_icmd(dev, 0x000008e0, 0x00000000);
2176         nv_icmd(dev, 0x000008e1, 0x00000000);
2177         nv_icmd(dev, 0x000008e2, 0x00000000);
2178         nv_icmd(dev, 0x000008e3, 0x00000000);
2179         nv_icmd(dev, 0x000008e4, 0x00000000);
2180         nv_icmd(dev, 0x000008e5, 0x00000000);
2181         nv_icmd(dev, 0x000008e6, 0x00000000);
2182         nv_icmd(dev, 0x000008e7, 0x00000000);
2183         nv_icmd(dev, 0x000008e8, 0x00000000);
2184         nv_icmd(dev, 0x000008e9, 0x00000000);
2185         nv_icmd(dev, 0x000008ea, 0x00000000);
2186         nv_icmd(dev, 0x000008eb, 0x00000000);
2187         nv_icmd(dev, 0x000008ec, 0x00000000);
2188         nv_icmd(dev, 0x000008ed, 0x00000000);
2189         nv_icmd(dev, 0x000008ee, 0x00000000);
2190         nv_icmd(dev, 0x000008ef, 0x00000000);
2191         nv_icmd(dev, 0x000008a0, 0x00000000);
2192         nv_icmd(dev, 0x000008a1, 0x00000000);
2193         nv_icmd(dev, 0x000008a2, 0x00000000);
2194         nv_icmd(dev, 0x000008a3, 0x00000000);
2195         nv_icmd(dev, 0x000008a4, 0x00000000);
2196         nv_icmd(dev, 0x000008a5, 0x00000000);
2197         nv_icmd(dev, 0x000008a6, 0x00000000);
2198         nv_icmd(dev, 0x000008a7, 0x00000000);
2199         nv_icmd(dev, 0x000008a8, 0x00000000);
2200         nv_icmd(dev, 0x000008a9, 0x00000000);
2201         nv_icmd(dev, 0x000008aa, 0x00000000);
2202         nv_icmd(dev, 0x000008ab, 0x00000000);
2203         nv_icmd(dev, 0x000008ac, 0x00000000);
2204         nv_icmd(dev, 0x000008ad, 0x00000000);
2205         nv_icmd(dev, 0x000008ae, 0x00000000);
2206         nv_icmd(dev, 0x000008af, 0x00000000);
2207         nv_icmd(dev, 0x000008f0, 0x00000000);
2208         nv_icmd(dev, 0x000008f1, 0x00000000);
2209         nv_icmd(dev, 0x000008f2, 0x00000000);
2210         nv_icmd(dev, 0x000008f3, 0x00000000);
2211         nv_icmd(dev, 0x000008f4, 0x00000000);
2212         nv_icmd(dev, 0x000008f5, 0x00000000);
2213         nv_icmd(dev, 0x000008f6, 0x00000000);
2214         nv_icmd(dev, 0x000008f7, 0x00000000);
2215         nv_icmd(dev, 0x000008f8, 0x00000000);
2216         nv_icmd(dev, 0x000008f9, 0x00000000);
2217         nv_icmd(dev, 0x000008fa, 0x00000000);
2218         nv_icmd(dev, 0x000008fb, 0x00000000);
2219         nv_icmd(dev, 0x000008fc, 0x00000000);
2220         nv_icmd(dev, 0x000008fd, 0x00000000);
2221         nv_icmd(dev, 0x000008fe, 0x00000000);
2222         nv_icmd(dev, 0x000008ff, 0x00000000);
2223         nv_icmd(dev, 0x0000094c, 0x000000ff);
2224         nv_icmd(dev, 0x0000094d, 0xffffffff);
2225         nv_icmd(dev, 0x0000094e, 0x00000002);
2226         nv_icmd(dev, 0x000002ec, 0x00000001);
2227         nv_icmd(dev, 0x00000303, 0x00000001);
2228         nv_icmd(dev, 0x000002e6, 0x00000001);
2229         nv_icmd(dev, 0x00000466, 0x00000052);
2230         nv_icmd(dev, 0x00000301, 0x3f800000);
2231         nv_icmd(dev, 0x00000304, 0x30201000);
2232         nv_icmd(dev, 0x00000305, 0x70605040);
2233         nv_icmd(dev, 0x00000306, 0xb8a89888);
2234         nv_icmd(dev, 0x00000307, 0xf8e8d8c8);
2235         nv_icmd(dev, 0x0000030a, 0x00ffff00);
2236         nv_icmd(dev, 0x0000030b, 0x0000001a);
2237         nv_icmd(dev, 0x0000030c, 0x00000001);
2238         nv_icmd(dev, 0x00000318, 0x00000001);
2239         nv_icmd(dev, 0x00000340, 0x00000000);
2240         nv_icmd(dev, 0x00000375, 0x00000001);
2241         nv_icmd(dev, 0x00000351, 0x00000100);
2242         nv_icmd(dev, 0x0000037d, 0x00000006);
2243         nv_icmd(dev, 0x000003a0, 0x00000002);
2244         nv_icmd(dev, 0x000003aa, 0x00000001);
2245         nv_icmd(dev, 0x000003a9, 0x00000001);
2246         nv_icmd(dev, 0x00000380, 0x00000001);
2247         nv_icmd(dev, 0x00000360, 0x00000040);
2248         nv_icmd(dev, 0x00000366, 0x00000000);
2249         nv_icmd(dev, 0x00000367, 0x00000000);
2250         nv_icmd(dev, 0x00000368, 0x00001fff);
2251         nv_icmd(dev, 0x00000370, 0x00000000);
2252         nv_icmd(dev, 0x00000371, 0x00000000);
2253         nv_icmd(dev, 0x00000372, 0x003fffff);
2254         nv_icmd(dev, 0x0000037a, 0x00000012);
2255         nv_icmd(dev, 0x000005e0, 0x00000022);
2256         nv_icmd(dev, 0x000005e1, 0x00000022);
2257         nv_icmd(dev, 0x000005e2, 0x00000022);
2258         nv_icmd(dev, 0x000005e3, 0x00000022);
2259         nv_icmd(dev, 0x000005e4, 0x00000022);
2260         nv_icmd(dev, 0x00000619, 0x00000003);
2261         nv_icmd(dev, 0x00000811, 0x00000003);
2262         nv_icmd(dev, 0x00000812, 0x00000004);
2263         nv_icmd(dev, 0x00000813, 0x00000006);
2264         nv_icmd(dev, 0x00000814, 0x00000008);
2265         nv_icmd(dev, 0x00000815, 0x0000000b);
2266         nv_icmd(dev, 0x00000800, 0x00000001);
2267         nv_icmd(dev, 0x00000801, 0x00000001);
2268         nv_icmd(dev, 0x00000802, 0x00000001);
2269         nv_icmd(dev, 0x00000803, 0x00000001);
2270         nv_icmd(dev, 0x00000804, 0x00000001);
2271         nv_icmd(dev, 0x00000805, 0x00000001);
2272         nv_icmd(dev, 0x00000632, 0x00000001);
2273         nv_icmd(dev, 0x00000633, 0x00000002);
2274         nv_icmd(dev, 0x00000634, 0x00000003);
2275         nv_icmd(dev, 0x00000635, 0x00000004);
2276         nv_icmd(dev, 0x00000654, 0x3f800000);
2277         nv_icmd(dev, 0x00000657, 0x3f800000);
2278         nv_icmd(dev, 0x00000655, 0x3f800000);
2279         nv_icmd(dev, 0x00000656, 0x3f800000);
2280         nv_icmd(dev, 0x000006cd, 0x3f800000);
2281         nv_icmd(dev, 0x000007f5, 0x3f800000);
2282         nv_icmd(dev, 0x000007dc, 0x39291909);
2283         nv_icmd(dev, 0x000007dd, 0x79695949);
2284         nv_icmd(dev, 0x000007de, 0xb9a99989);
2285         nv_icmd(dev, 0x000007df, 0xf9e9d9c9);
2286         nv_icmd(dev, 0x000007e8, 0x00003210);
2287         nv_icmd(dev, 0x000007e9, 0x00007654);
2288         nv_icmd(dev, 0x000007ea, 0x00000098);
2289         nv_icmd(dev, 0x000007ec, 0x39291909);
2290         nv_icmd(dev, 0x000007ed, 0x79695949);
2291         nv_icmd(dev, 0x000007ee, 0xb9a99989);
2292         nv_icmd(dev, 0x000007ef, 0xf9e9d9c9);
2293         nv_icmd(dev, 0x000007f0, 0x00003210);
2294         nv_icmd(dev, 0x000007f1, 0x00007654);
2295         nv_icmd(dev, 0x000007f2, 0x00000098);
2296         nv_icmd(dev, 0x000005a5, 0x00000001);
2297         nv_icmd(dev, 0x00000980, 0x00000000);
2298         nv_icmd(dev, 0x00000981, 0x00000000);
2299         nv_icmd(dev, 0x00000982, 0x00000000);
2300         nv_icmd(dev, 0x00000983, 0x00000000);
2301         nv_icmd(dev, 0x00000984, 0x00000000);
2302         nv_icmd(dev, 0x00000985, 0x00000000);
2303         nv_icmd(dev, 0x00000986, 0x00000000);
2304         nv_icmd(dev, 0x00000987, 0x00000000);
2305         nv_icmd(dev, 0x00000988, 0x00000000);
2306         nv_icmd(dev, 0x00000989, 0x00000000);
2307         nv_icmd(dev, 0x0000098a, 0x00000000);
2308         nv_icmd(dev, 0x0000098b, 0x00000000);
2309         nv_icmd(dev, 0x0000098c, 0x00000000);
2310         nv_icmd(dev, 0x0000098d, 0x00000000);
2311         nv_icmd(dev, 0x0000098e, 0x00000000);
2312         nv_icmd(dev, 0x0000098f, 0x00000000);
2313         nv_icmd(dev, 0x00000990, 0x00000000);
2314         nv_icmd(dev, 0x00000991, 0x00000000);
2315         nv_icmd(dev, 0x00000992, 0x00000000);
2316         nv_icmd(dev, 0x00000993, 0x00000000);
2317         nv_icmd(dev, 0x00000994, 0x00000000);
2318         nv_icmd(dev, 0x00000995, 0x00000000);
2319         nv_icmd(dev, 0x00000996, 0x00000000);
2320         nv_icmd(dev, 0x00000997, 0x00000000);
2321         nv_icmd(dev, 0x00000998, 0x00000000);
2322         nv_icmd(dev, 0x00000999, 0x00000000);
2323         nv_icmd(dev, 0x0000099a, 0x00000000);
2324         nv_icmd(dev, 0x0000099b, 0x00000000);
2325         nv_icmd(dev, 0x0000099c, 0x00000000);
2326         nv_icmd(dev, 0x0000099d, 0x00000000);
2327         nv_icmd(dev, 0x0000099e, 0x00000000);
2328         nv_icmd(dev, 0x0000099f, 0x00000000);
2329         nv_icmd(dev, 0x000009a0, 0x00000000);
2330         nv_icmd(dev, 0x000009a1, 0x00000000);
2331         nv_icmd(dev, 0x000009a2, 0x00000000);
2332         nv_icmd(dev, 0x000009a3, 0x00000000);
2333         nv_icmd(dev, 0x000009a4, 0x00000000);
2334         nv_icmd(dev, 0x000009a5, 0x00000000);
2335         nv_icmd(dev, 0x000009a6, 0x00000000);
2336         nv_icmd(dev, 0x000009a7, 0x00000000);
2337         nv_icmd(dev, 0x000009a8, 0x00000000);
2338         nv_icmd(dev, 0x000009a9, 0x00000000);
2339         nv_icmd(dev, 0x000009aa, 0x00000000);
2340         nv_icmd(dev, 0x000009ab, 0x00000000);
2341         nv_icmd(dev, 0x000009ac, 0x00000000);
2342         nv_icmd(dev, 0x000009ad, 0x00000000);
2343         nv_icmd(dev, 0x000009ae, 0x00000000);
2344         nv_icmd(dev, 0x000009af, 0x00000000);
2345         nv_icmd(dev, 0x000009b0, 0x00000000);
2346         nv_icmd(dev, 0x000009b1, 0x00000000);
2347         nv_icmd(dev, 0x000009b2, 0x00000000);
2348         nv_icmd(dev, 0x000009b3, 0x00000000);
2349         nv_icmd(dev, 0x000009b4, 0x00000000);
2350         nv_icmd(dev, 0x000009b5, 0x00000000);
2351         nv_icmd(dev, 0x000009b6, 0x00000000);
2352         nv_icmd(dev, 0x000009b7, 0x00000000);
2353         nv_icmd(dev, 0x000009b8, 0x00000000);
2354         nv_icmd(dev, 0x000009b9, 0x00000000);
2355         nv_icmd(dev, 0x000009ba, 0x00000000);
2356         nv_icmd(dev, 0x000009bb, 0x00000000);
2357         nv_icmd(dev, 0x000009bc, 0x00000000);
2358         nv_icmd(dev, 0x000009bd, 0x00000000);
2359         nv_icmd(dev, 0x000009be, 0x00000000);
2360         nv_icmd(dev, 0x000009bf, 0x00000000);
2361         nv_icmd(dev, 0x000009c0, 0x00000000);
2362         nv_icmd(dev, 0x000009c1, 0x00000000);
2363         nv_icmd(dev, 0x000009c2, 0x00000000);
2364         nv_icmd(dev, 0x000009c3, 0x00000000);
2365         nv_icmd(dev, 0x000009c4, 0x00000000);
2366         nv_icmd(dev, 0x000009c5, 0x00000000);
2367         nv_icmd(dev, 0x000009c6, 0x00000000);
2368         nv_icmd(dev, 0x000009c7, 0x00000000);
2369         nv_icmd(dev, 0x000009c8, 0x00000000);
2370         nv_icmd(dev, 0x000009c9, 0x00000000);
2371         nv_icmd(dev, 0x000009ca, 0x00000000);
2372         nv_icmd(dev, 0x000009cb, 0x00000000);
2373         nv_icmd(dev, 0x000009cc, 0x00000000);
2374         nv_icmd(dev, 0x000009cd, 0x00000000);
2375         nv_icmd(dev, 0x000009ce, 0x00000000);
2376         nv_icmd(dev, 0x000009cf, 0x00000000);
2377         nv_icmd(dev, 0x000009d0, 0x00000000);
2378         nv_icmd(dev, 0x000009d1, 0x00000000);
2379         nv_icmd(dev, 0x000009d2, 0x00000000);
2380         nv_icmd(dev, 0x000009d3, 0x00000000);
2381         nv_icmd(dev, 0x000009d4, 0x00000000);
2382         nv_icmd(dev, 0x000009d5, 0x00000000);
2383         nv_icmd(dev, 0x000009d6, 0x00000000);
2384         nv_icmd(dev, 0x000009d7, 0x00000000);
2385         nv_icmd(dev, 0x000009d8, 0x00000000);
2386         nv_icmd(dev, 0x000009d9, 0x00000000);
2387         nv_icmd(dev, 0x000009da, 0x00000000);
2388         nv_icmd(dev, 0x000009db, 0x00000000);
2389         nv_icmd(dev, 0x000009dc, 0x00000000);
2390         nv_icmd(dev, 0x000009dd, 0x00000000);
2391         nv_icmd(dev, 0x000009de, 0x00000000);
2392         nv_icmd(dev, 0x000009df, 0x00000000);
2393         nv_icmd(dev, 0x000009e0, 0x00000000);
2394         nv_icmd(dev, 0x000009e1, 0x00000000);
2395         nv_icmd(dev, 0x000009e2, 0x00000000);
2396         nv_icmd(dev, 0x000009e3, 0x00000000);
2397         nv_icmd(dev, 0x000009e4, 0x00000000);
2398         nv_icmd(dev, 0x000009e5, 0x00000000);
2399         nv_icmd(dev, 0x000009e6, 0x00000000);
2400         nv_icmd(dev, 0x000009e7, 0x00000000);
2401         nv_icmd(dev, 0x000009e8, 0x00000000);
2402         nv_icmd(dev, 0x000009e9, 0x00000000);
2403         nv_icmd(dev, 0x000009ea, 0x00000000);
2404         nv_icmd(dev, 0x000009eb, 0x00000000);
2405         nv_icmd(dev, 0x000009ec, 0x00000000);
2406         nv_icmd(dev, 0x000009ed, 0x00000000);
2407         nv_icmd(dev, 0x000009ee, 0x00000000);
2408         nv_icmd(dev, 0x000009ef, 0x00000000);
2409         nv_icmd(dev, 0x000009f0, 0x00000000);
2410         nv_icmd(dev, 0x000009f1, 0x00000000);
2411         nv_icmd(dev, 0x000009f2, 0x00000000);
2412         nv_icmd(dev, 0x000009f3, 0x00000000);
2413         nv_icmd(dev, 0x000009f4, 0x00000000);
2414         nv_icmd(dev, 0x000009f5, 0x00000000);
2415         nv_icmd(dev, 0x000009f6, 0x00000000);
2416         nv_icmd(dev, 0x000009f7, 0x00000000);
2417         nv_icmd(dev, 0x000009f8, 0x00000000);
2418         nv_icmd(dev, 0x000009f9, 0x00000000);
2419         nv_icmd(dev, 0x000009fa, 0x00000000);
2420         nv_icmd(dev, 0x000009fb, 0x00000000);
2421         nv_icmd(dev, 0x000009fc, 0x00000000);
2422         nv_icmd(dev, 0x000009fd, 0x00000000);
2423         nv_icmd(dev, 0x000009fe, 0x00000000);
2424         nv_icmd(dev, 0x000009ff, 0x00000000);
2425         nv_icmd(dev, 0x00000468, 0x00000004);
2426         nv_icmd(dev, 0x0000046c, 0x00000001);
2427         nv_icmd(dev, 0x00000470, 0x00000000);
2428         nv_icmd(dev, 0x00000471, 0x00000000);
2429         nv_icmd(dev, 0x00000472, 0x00000000);
2430         nv_icmd(dev, 0x00000473, 0x00000000);
2431         nv_icmd(dev, 0x00000474, 0x00000000);
2432         nv_icmd(dev, 0x00000475, 0x00000000);
2433         nv_icmd(dev, 0x00000476, 0x00000000);
2434         nv_icmd(dev, 0x00000477, 0x00000000);
2435         nv_icmd(dev, 0x00000478, 0x00000000);
2436         nv_icmd(dev, 0x00000479, 0x00000000);
2437         nv_icmd(dev, 0x0000047a, 0x00000000);
2438         nv_icmd(dev, 0x0000047b, 0x00000000);
2439         nv_icmd(dev, 0x0000047c, 0x00000000);
2440         nv_icmd(dev, 0x0000047d, 0x00000000);
2441         nv_icmd(dev, 0x0000047e, 0x00000000);
2442         nv_icmd(dev, 0x0000047f, 0x00000000);
2443         nv_icmd(dev, 0x00000480, 0x00000000);
2444         nv_icmd(dev, 0x00000481, 0x00000000);
2445         nv_icmd(dev, 0x00000482, 0x00000000);
2446         nv_icmd(dev, 0x00000483, 0x00000000);
2447         nv_icmd(dev, 0x00000484, 0x00000000);
2448         nv_icmd(dev, 0x00000485, 0x00000000);
2449         nv_icmd(dev, 0x00000486, 0x00000000);
2450         nv_icmd(dev, 0x00000487, 0x00000000);
2451         nv_icmd(dev, 0x00000488, 0x00000000);
2452         nv_icmd(dev, 0x00000489, 0x00000000);
2453         nv_icmd(dev, 0x0000048a, 0x00000000);
2454         nv_icmd(dev, 0x0000048b, 0x00000000);
2455         nv_icmd(dev, 0x0000048c, 0x00000000);
2456         nv_icmd(dev, 0x0000048d, 0x00000000);
2457         nv_icmd(dev, 0x0000048e, 0x00000000);
2458         nv_icmd(dev, 0x0000048f, 0x00000000);
2459         nv_icmd(dev, 0x00000490, 0x00000000);
2460         nv_icmd(dev, 0x00000491, 0x00000000);
2461         nv_icmd(dev, 0x00000492, 0x00000000);
2462         nv_icmd(dev, 0x00000493, 0x00000000);
2463         nv_icmd(dev, 0x00000494, 0x00000000);
2464         nv_icmd(dev, 0x00000495, 0x00000000);
2465         nv_icmd(dev, 0x00000496, 0x00000000);
2466         nv_icmd(dev, 0x00000497, 0x00000000);
2467         nv_icmd(dev, 0x00000498, 0x00000000);
2468         nv_icmd(dev, 0x00000499, 0x00000000);
2469         nv_icmd(dev, 0x0000049a, 0x00000000);
2470         nv_icmd(dev, 0x0000049b, 0x00000000);
2471         nv_icmd(dev, 0x0000049c, 0x00000000);
2472         nv_icmd(dev, 0x0000049d, 0x00000000);
2473         nv_icmd(dev, 0x0000049e, 0x00000000);
2474         nv_icmd(dev, 0x0000049f, 0x00000000);
2475         nv_icmd(dev, 0x000004a0, 0x00000000);
2476         nv_icmd(dev, 0x000004a1, 0x00000000);
2477         nv_icmd(dev, 0x000004a2, 0x00000000);
2478         nv_icmd(dev, 0x000004a3, 0x00000000);
2479         nv_icmd(dev, 0x000004a4, 0x00000000);
2480         nv_icmd(dev, 0x000004a5, 0x00000000);
2481         nv_icmd(dev, 0x000004a6, 0x00000000);
2482         nv_icmd(dev, 0x000004a7, 0x00000000);
2483         nv_icmd(dev, 0x000004a8, 0x00000000);
2484         nv_icmd(dev, 0x000004a9, 0x00000000);
2485         nv_icmd(dev, 0x000004aa, 0x00000000);
2486         nv_icmd(dev, 0x000004ab, 0x00000000);
2487         nv_icmd(dev, 0x000004ac, 0x00000000);
2488         nv_icmd(dev, 0x000004ad, 0x00000000);
2489         nv_icmd(dev, 0x000004ae, 0x00000000);
2490         nv_icmd(dev, 0x000004af, 0x00000000);
2491         nv_icmd(dev, 0x000004b0, 0x00000000);
2492         nv_icmd(dev, 0x000004b1, 0x00000000);
2493         nv_icmd(dev, 0x000004b2, 0x00000000);
2494         nv_icmd(dev, 0x000004b3, 0x00000000);
2495         nv_icmd(dev, 0x000004b4, 0x00000000);
2496         nv_icmd(dev, 0x000004b5, 0x00000000);
2497         nv_icmd(dev, 0x000004b6, 0x00000000);
2498         nv_icmd(dev, 0x000004b7, 0x00000000);
2499         nv_icmd(dev, 0x000004b8, 0x00000000);
2500         nv_icmd(dev, 0x000004b9, 0x00000000);
2501         nv_icmd(dev, 0x000004ba, 0x00000000);
2502         nv_icmd(dev, 0x000004bb, 0x00000000);
2503         nv_icmd(dev, 0x000004bc, 0x00000000);
2504         nv_icmd(dev, 0x000004bd, 0x00000000);
2505         nv_icmd(dev, 0x000004be, 0x00000000);
2506         nv_icmd(dev, 0x000004bf, 0x00000000);
2507         nv_icmd(dev, 0x000004c0, 0x00000000);
2508         nv_icmd(dev, 0x000004c1, 0x00000000);
2509         nv_icmd(dev, 0x000004c2, 0x00000000);
2510         nv_icmd(dev, 0x000004c3, 0x00000000);
2511         nv_icmd(dev, 0x000004c4, 0x00000000);
2512         nv_icmd(dev, 0x000004c5, 0x00000000);
2513         nv_icmd(dev, 0x000004c6, 0x00000000);
2514         nv_icmd(dev, 0x000004c7, 0x00000000);
2515         nv_icmd(dev, 0x000004c8, 0x00000000);
2516         nv_icmd(dev, 0x000004c9, 0x00000000);
2517         nv_icmd(dev, 0x000004ca, 0x00000000);
2518         nv_icmd(dev, 0x000004cb, 0x00000000);
2519         nv_icmd(dev, 0x000004cc, 0x00000000);
2520         nv_icmd(dev, 0x000004cd, 0x00000000);
2521         nv_icmd(dev, 0x000004ce, 0x00000000);
2522         nv_icmd(dev, 0x000004cf, 0x00000000);
2523         nv_icmd(dev, 0x00000510, 0x3f800000);
2524         nv_icmd(dev, 0x00000511, 0x3f800000);
2525         nv_icmd(dev, 0x00000512, 0x3f800000);
2526         nv_icmd(dev, 0x00000513, 0x3f800000);
2527         nv_icmd(dev, 0x00000514, 0x3f800000);
2528         nv_icmd(dev, 0x00000515, 0x3f800000);
2529         nv_icmd(dev, 0x00000516, 0x3f800000);
2530         nv_icmd(dev, 0x00000517, 0x3f800000);
2531         nv_icmd(dev, 0x00000518, 0x3f800000);
2532         nv_icmd(dev, 0x00000519, 0x3f800000);
2533         nv_icmd(dev, 0x0000051a, 0x3f800000);
2534         nv_icmd(dev, 0x0000051b, 0x3f800000);
2535         nv_icmd(dev, 0x0000051c, 0x3f800000);
2536         nv_icmd(dev, 0x0000051d, 0x3f800000);
2537         nv_icmd(dev, 0x0000051e, 0x3f800000);
2538         nv_icmd(dev, 0x0000051f, 0x3f800000);
2539         nv_icmd(dev, 0x00000520, 0x000002b6);
2540         nv_icmd(dev, 0x00000529, 0x00000001);
2541         nv_icmd(dev, 0x00000530, 0xffff0000);
2542         nv_icmd(dev, 0x00000531, 0xffff0000);
2543         nv_icmd(dev, 0x00000532, 0xffff0000);
2544         nv_icmd(dev, 0x00000533, 0xffff0000);
2545         nv_icmd(dev, 0x00000534, 0xffff0000);
2546         nv_icmd(dev, 0x00000535, 0xffff0000);
2547         nv_icmd(dev, 0x00000536, 0xffff0000);
2548         nv_icmd(dev, 0x00000537, 0xffff0000);
2549         nv_icmd(dev, 0x00000538, 0xffff0000);
2550         nv_icmd(dev, 0x00000539, 0xffff0000);
2551         nv_icmd(dev, 0x0000053a, 0xffff0000);
2552         nv_icmd(dev, 0x0000053b, 0xffff0000);
2553         nv_icmd(dev, 0x0000053c, 0xffff0000);
2554         nv_icmd(dev, 0x0000053d, 0xffff0000);
2555         nv_icmd(dev, 0x0000053e, 0xffff0000);
2556         nv_icmd(dev, 0x0000053f, 0xffff0000);
2557         nv_icmd(dev, 0x00000585, 0x0000003f);
2558         nv_icmd(dev, 0x00000576, 0x00000003);
2559         if (dev_priv->chipset == 0xc1)
2560                 nv_icmd(dev, 0x0000057b, 0x00000059);
2561         nv_icmd(dev, 0x00000586, 0x00000040);
2562         nv_icmd(dev, 0x00000582, 0x00000080);
2563         nv_icmd(dev, 0x00000583, 0x00000080);
2564         nv_icmd(dev, 0x000005c2, 0x00000001);
2565         nv_icmd(dev, 0x00000638, 0x00000001);
2566         nv_icmd(dev, 0x00000639, 0x00000001);
2567         nv_icmd(dev, 0x0000063a, 0x00000002);
2568         nv_icmd(dev, 0x0000063b, 0x00000001);
2569         nv_icmd(dev, 0x0000063c, 0x00000001);
2570         nv_icmd(dev, 0x0000063d, 0x00000002);
2571         nv_icmd(dev, 0x0000063e, 0x00000001);
2572         nv_icmd(dev, 0x000008b8, 0x00000001);
2573         nv_icmd(dev, 0x000008b9, 0x00000001);
2574         nv_icmd(dev, 0x000008ba, 0x00000001);
2575         nv_icmd(dev, 0x000008bb, 0x00000001);
2576         nv_icmd(dev, 0x000008bc, 0x00000001);
2577         nv_icmd(dev, 0x000008bd, 0x00000001);
2578         nv_icmd(dev, 0x000008be, 0x00000001);
2579         nv_icmd(dev, 0x000008bf, 0x00000001);
2580         nv_icmd(dev, 0x00000900, 0x00000001);
2581         nv_icmd(dev, 0x00000901, 0x00000001);
2582         nv_icmd(dev, 0x00000902, 0x00000001);
2583         nv_icmd(dev, 0x00000903, 0x00000001);
2584         nv_icmd(dev, 0x00000904, 0x00000001);
2585         nv_icmd(dev, 0x00000905, 0x00000001);
2586         nv_icmd(dev, 0x00000906, 0x00000001);
2587         nv_icmd(dev, 0x00000907, 0x00000001);
2588         nv_icmd(dev, 0x00000908, 0x00000002);
2589         nv_icmd(dev, 0x00000909, 0x00000002);
2590         nv_icmd(dev, 0x0000090a, 0x00000002);
2591         nv_icmd(dev, 0x0000090b, 0x00000002);
2592         nv_icmd(dev, 0x0000090c, 0x00000002);
2593         nv_icmd(dev, 0x0000090d, 0x00000002);
2594         nv_icmd(dev, 0x0000090e, 0x00000002);
2595         nv_icmd(dev, 0x0000090f, 0x00000002);
2596         nv_icmd(dev, 0x00000910, 0x00000001);
2597         nv_icmd(dev, 0x00000911, 0x00000001);
2598         nv_icmd(dev, 0x00000912, 0x00000001);
2599         nv_icmd(dev, 0x00000913, 0x00000001);
2600         nv_icmd(dev, 0x00000914, 0x00000001);
2601         nv_icmd(dev, 0x00000915, 0x00000001);
2602         nv_icmd(dev, 0x00000916, 0x00000001);
2603         nv_icmd(dev, 0x00000917, 0x00000001);
2604         nv_icmd(dev, 0x00000918, 0x00000001);
2605         nv_icmd(dev, 0x00000919, 0x00000001);
2606         nv_icmd(dev, 0x0000091a, 0x00000001);
2607         nv_icmd(dev, 0x0000091b, 0x00000001);
2608         nv_icmd(dev, 0x0000091c, 0x00000001);
2609         nv_icmd(dev, 0x0000091d, 0x00000001);
2610         nv_icmd(dev, 0x0000091e, 0x00000001);
2611         nv_icmd(dev, 0x0000091f, 0x00000001);
2612         nv_icmd(dev, 0x00000920, 0x00000002);
2613         nv_icmd(dev, 0x00000921, 0x00000002);
2614         nv_icmd(dev, 0x00000922, 0x00000002);
2615         nv_icmd(dev, 0x00000923, 0x00000002);
2616         nv_icmd(dev, 0x00000924, 0x00000002);
2617         nv_icmd(dev, 0x00000925, 0x00000002);
2618         nv_icmd(dev, 0x00000926, 0x00000002);
2619         nv_icmd(dev, 0x00000927, 0x00000002);
2620         nv_icmd(dev, 0x00000928, 0x00000001);
2621         nv_icmd(dev, 0x00000929, 0x00000001);
2622         nv_icmd(dev, 0x0000092a, 0x00000001);
2623         nv_icmd(dev, 0x0000092b, 0x00000001);
2624         nv_icmd(dev, 0x0000092c, 0x00000001);
2625         nv_icmd(dev, 0x0000092d, 0x00000001);
2626         nv_icmd(dev, 0x0000092e, 0x00000001);
2627         nv_icmd(dev, 0x0000092f, 0x00000001);
2628         nv_icmd(dev, 0x00000648, 0x00000001);
2629         nv_icmd(dev, 0x00000649, 0x00000001);
2630         nv_icmd(dev, 0x0000064a, 0x00000001);
2631         nv_icmd(dev, 0x0000064b, 0x00000001);
2632         nv_icmd(dev, 0x0000064c, 0x00000001);
2633         nv_icmd(dev, 0x0000064d, 0x00000001);
2634         nv_icmd(dev, 0x0000064e, 0x00000001);
2635         nv_icmd(dev, 0x0000064f, 0x00000001);
2636         nv_icmd(dev, 0x00000650, 0x00000001);
2637         nv_icmd(dev, 0x00000658, 0x0000000f);
2638         nv_icmd(dev, 0x000007ff, 0x0000000a);
2639         nv_icmd(dev, 0x0000066a, 0x40000000);
2640         nv_icmd(dev, 0x0000066b, 0x10000000);
2641         nv_icmd(dev, 0x0000066c, 0xffff0000);
2642         nv_icmd(dev, 0x0000066d, 0xffff0000);
2643         nv_icmd(dev, 0x000007af, 0x00000008);
2644         nv_icmd(dev, 0x000007b0, 0x00000008);
2645         nv_icmd(dev, 0x000007f6, 0x00000001);
2646         nv_icmd(dev, 0x000006b2, 0x00000055);
2647         nv_icmd(dev, 0x000007ad, 0x00000003);
2648         nv_icmd(dev, 0x00000937, 0x00000001);
2649         nv_icmd(dev, 0x00000971, 0x00000008);
2650         nv_icmd(dev, 0x00000972, 0x00000040);
2651         nv_icmd(dev, 0x00000973, 0x0000012c);
2652         nv_icmd(dev, 0x0000097c, 0x00000040);
2653         nv_icmd(dev, 0x00000979, 0x00000003);
2654         nv_icmd(dev, 0x00000975, 0x00000020);
2655         nv_icmd(dev, 0x00000976, 0x00000001);
2656         nv_icmd(dev, 0x00000977, 0x00000020);
2657         nv_icmd(dev, 0x00000978, 0x00000001);
2658         nv_icmd(dev, 0x00000957, 0x00000003);
2659         nv_icmd(dev, 0x0000095e, 0x20164010);
2660         nv_icmd(dev, 0x0000095f, 0x00000020);
2661         nv_icmd(dev, 0x00000683, 0x00000006);
2662         nv_icmd(dev, 0x00000685, 0x003fffff);
2663         nv_icmd(dev, 0x00000687, 0x00000c48);
2664         nv_icmd(dev, 0x000006a0, 0x00000005);
2665         nv_icmd(dev, 0x00000840, 0x00300008);
2666         nv_icmd(dev, 0x00000841, 0x04000080);
2667         nv_icmd(dev, 0x00000842, 0x00300008);
2668         nv_icmd(dev, 0x00000843, 0x04000080);
2669         nv_icmd(dev, 0x00000818, 0x00000000);
2670         nv_icmd(dev, 0x00000819, 0x00000000);
2671         nv_icmd(dev, 0x0000081a, 0x00000000);
2672         nv_icmd(dev, 0x0000081b, 0x00000000);
2673         nv_icmd(dev, 0x0000081c, 0x00000000);
2674         nv_icmd(dev, 0x0000081d, 0x00000000);
2675         nv_icmd(dev, 0x0000081e, 0x00000000);
2676         nv_icmd(dev, 0x0000081f, 0x00000000);
2677         nv_icmd(dev, 0x00000848, 0x00000000);
2678         nv_icmd(dev, 0x00000849, 0x00000000);
2679         nv_icmd(dev, 0x0000084a, 0x00000000);
2680         nv_icmd(dev, 0x0000084b, 0x00000000);
2681         nv_icmd(dev, 0x0000084c, 0x00000000);
2682         nv_icmd(dev, 0x0000084d, 0x00000000);
2683         nv_icmd(dev, 0x0000084e, 0x00000000);
2684         nv_icmd(dev, 0x0000084f, 0x00000000);
2685         nv_icmd(dev, 0x00000850, 0x00000000);
2686         nv_icmd(dev, 0x00000851, 0x00000000);
2687         nv_icmd(dev, 0x00000852, 0x00000000);
2688         nv_icmd(dev, 0x00000853, 0x00000000);
2689         nv_icmd(dev, 0x00000854, 0x00000000);
2690         nv_icmd(dev, 0x00000855, 0x00000000);
2691         nv_icmd(dev, 0x00000856, 0x00000000);
2692         nv_icmd(dev, 0x00000857, 0x00000000);
2693         nv_icmd(dev, 0x00000738, 0x00000000);
2694         nv_icmd(dev, 0x000006aa, 0x00000001);
2695         nv_icmd(dev, 0x000006ab, 0x00000002);
2696         nv_icmd(dev, 0x000006ac, 0x00000080);
2697         nv_icmd(dev, 0x000006ad, 0x00000100);
2698         nv_icmd(dev, 0x000006ae, 0x00000100);
2699         nv_icmd(dev, 0x000006b1, 0x00000011);
2700         nv_icmd(dev, 0x000006bb, 0x000000cf);
2701         nv_icmd(dev, 0x000006ce, 0x2a712488);
2702         nv_icmd(dev, 0x00000739, 0x4085c000);
2703         nv_icmd(dev, 0x0000073a, 0x00000080);
2704         nv_icmd(dev, 0x00000786, 0x80000100);
2705         nv_icmd(dev, 0x0000073c, 0x00010100);
2706         nv_icmd(dev, 0x0000073d, 0x02800000);
2707         nv_icmd(dev, 0x00000787, 0x000000cf);
2708         nv_icmd(dev, 0x0000078c, 0x00000008);
2709         nv_icmd(dev, 0x00000792, 0x00000001);
2710         nv_icmd(dev, 0x00000794, 0x00000001);
2711         nv_icmd(dev, 0x00000795, 0x00000001);
2712         nv_icmd(dev, 0x00000796, 0x00000001);
2713         nv_icmd(dev, 0x00000797, 0x000000cf);
2714         nv_icmd(dev, 0x00000836, 0x00000001);
2715         nv_icmd(dev, 0x0000079a, 0x00000002);
2716         nv_icmd(dev, 0x00000833, 0x04444480);
2717         nv_icmd(dev, 0x000007a1, 0x00000001);
2718         nv_icmd(dev, 0x000007a3, 0x00000001);
2719         nv_icmd(dev, 0x000007a4, 0x00000001);
2720         nv_icmd(dev, 0x000007a5, 0x00000001);
2721         nv_icmd(dev, 0x00000831, 0x00000004);
2722         nv_icmd(dev, 0x0000080c, 0x00000002);
2723         nv_icmd(dev, 0x0000080d, 0x00000100);
2724         nv_icmd(dev, 0x0000080e, 0x00000100);
2725         nv_icmd(dev, 0x0000080f, 0x00000001);
2726         nv_icmd(dev, 0x00000823, 0x00000002);
2727         nv_icmd(dev, 0x00000824, 0x00000100);
2728         nv_icmd(dev, 0x00000825, 0x00000100);
2729         nv_icmd(dev, 0x00000826, 0x00000001);
2730         nv_icmd(dev, 0x0000095d, 0x00000001);
2731         nv_icmd(dev, 0x0000082b, 0x00000004);
2732         nv_icmd(dev, 0x00000942, 0x00010001);
2733         nv_icmd(dev, 0x00000943, 0x00000001);
2734         nv_icmd(dev, 0x00000944, 0x00000022);
2735         nv_icmd(dev, 0x000007c5, 0x00010001);
2736         nv_icmd(dev, 0x00000834, 0x00000001);
2737         nv_icmd(dev, 0x000007c7, 0x00000001);
2738         nv_icmd(dev, 0x0000c1b0, 0x0000000f);
2739         nv_icmd(dev, 0x0000c1b1, 0x0000000f);
2740         nv_icmd(dev, 0x0000c1b2, 0x0000000f);
2741         nv_icmd(dev, 0x0000c1b3, 0x0000000f);
2742         nv_icmd(dev, 0x0000c1b4, 0x0000000f);
2743         nv_icmd(dev, 0x0000c1b5, 0x0000000f);
2744         nv_icmd(dev, 0x0000c1b6, 0x0000000f);
2745         nv_icmd(dev, 0x0000c1b7, 0x0000000f);
2746         nv_icmd(dev, 0x0000c1b8, 0x0fac6881);
2747         nv_icmd(dev, 0x0000c1b9, 0x00fac688);
2748         nv_icmd(dev, 0x0001e100, 0x00000001);
2749         nv_icmd(dev, 0x00001000, 0x00000002);
2750         nv_icmd(dev, 0x000006aa, 0x00000001);
2751         nv_icmd(dev, 0x000006ad, 0x00000100);
2752         nv_icmd(dev, 0x000006ae, 0x00000100);
2753         nv_icmd(dev, 0x000006b1, 0x00000011);
2754         nv_icmd(dev, 0x0000078c, 0x00000008);
2755         nv_icmd(dev, 0x00000792, 0x00000001);
2756         nv_icmd(dev, 0x00000794, 0x00000001);
2757         nv_icmd(dev, 0x00000795, 0x00000001);
2758         nv_icmd(dev, 0x00000796, 0x00000001);
2759         nv_icmd(dev, 0x00000797, 0x000000cf);
2760         nv_icmd(dev, 0x0000079a, 0x00000002);
2761         nv_icmd(dev, 0x00000833, 0x04444480);
2762         nv_icmd(dev, 0x000007a1, 0x00000001);
2763         nv_icmd(dev, 0x000007a3, 0x00000001);
2764         nv_icmd(dev, 0x000007a4, 0x00000001);
2765         nv_icmd(dev, 0x000007a5, 0x00000001);
2766         nv_icmd(dev, 0x00000831, 0x00000004);
2767         nv_icmd(dev, 0x0001e100, 0x00000001);
2768         nv_icmd(dev, 0x00001000, 0x00000014);
2769         nv_icmd(dev, 0x00000351, 0x00000100);
2770         nv_icmd(dev, 0x00000957, 0x00000003);
2771         nv_icmd(dev, 0x0000095d, 0x00000001);
2772         nv_icmd(dev, 0x0000082b, 0x00000004);
2773         nv_icmd(dev, 0x00000942, 0x00010001);
2774         nv_icmd(dev, 0x00000943, 0x00000001);
2775         nv_icmd(dev, 0x000007c5, 0x00010001);
2776         nv_icmd(dev, 0x00000834, 0x00000001);
2777         nv_icmd(dev, 0x000007c7, 0x00000001);
2778         nv_icmd(dev, 0x0001e100, 0x00000001);
2779         nv_icmd(dev, 0x00001000, 0x00000001);
2780         nv_icmd(dev, 0x0000080c, 0x00000002);
2781         nv_icmd(dev, 0x0000080d, 0x00000100);
2782         nv_icmd(dev, 0x0000080e, 0x00000100);
2783         nv_icmd(dev, 0x0000080f, 0x00000001);
2784         nv_icmd(dev, 0x00000823, 0x00000002);
2785         nv_icmd(dev, 0x00000824, 0x00000100);
2786         nv_icmd(dev, 0x00000825, 0x00000100);
2787         nv_icmd(dev, 0x00000826, 0x00000001);
2788         nv_icmd(dev, 0x0001e100, 0x00000001);
2789         nv_wr32(dev, 0x400208, 0x00000000);
2790         nv_wr32(dev, 0x404154, 0x00000400);
2791
2792         nvc0_grctx_generate_9097(dev);
2793         if (fermi >= 0x9197)
2794                 nvc0_grctx_generate_9197(dev);
2795         if (fermi >= 0x9297)
2796                 nvc0_grctx_generate_9297(dev);
2797         nvc0_grctx_generate_902d(dev);
2798         nvc0_grctx_generate_9039(dev);
2799         nvc0_grctx_generate_90c0(dev);
2800
2801         nv_wr32(dev, 0x000260, r000260);
2802         return 0;
2803 }