Searched refs:fuc (Results 1 - 21 of 21) sorted by relevance

/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/subdev/fb/
H A Dramgf100.c102 struct gf100_ramfuc fuc; member in struct:gf100_ram
108 gf100_ram_train(struct gf100_ramfuc *fuc, u32 magic) gf100_ram_train() argument
110 struct gf100_ram *ram = container_of(fuc, typeof(*ram), fuc); gf100_ram_train()
116 ram_wr32(fuc, 0x10f910, magic); gf100_ram_train()
117 ram_wr32(fuc, 0x10f914, magic); gf100_ram_train()
122 ram_wait(fuc, addr, 0x0000000f, 0x00000000, 500000); gf100_ram_train()
132 struct gf100_ramfuc *fuc = &ram->fuc; gf100_ram_calc() local
178 ret = ram_init(fuc, pfb); gf100_ram_calc()
183 from = !!(ram_rd32(fuc, 0x1373f0) & 0x00000002); /*XXX: ok? */ gf100_ram_calc()
186 if (!(ram_rd32(fuc, 0x137300) & 0x00000100)) gf100_ram_calc()
194 ram_mask(fuc, 0x137360, 0x00000002, 0x00000000); gf100_ram_calc()
196 if ((ram_rd32(fuc, 0x132000) & 0x00000002) || 0 /*XXX*/) { gf100_ram_calc()
197 ram_nuke(fuc, 0x132000); gf100_ram_calc()
198 ram_mask(fuc, 0x132000, 0x00000002, 0x00000002); gf100_ram_calc()
199 ram_mask(fuc, 0x132000, 0x00000002, 0x00000000); gf100_ram_calc()
203 ram_nuke(fuc, 0x10fe20); gf100_ram_calc()
204 ram_mask(fuc, 0x10fe20, 0x00000002, 0x00000002); gf100_ram_calc()
205 ram_mask(fuc, 0x10fe20, 0x00000002, 0x00000000); gf100_ram_calc()
209 ram_wr32(fuc, 0x132100, 0x00000001); gf100_ram_calc()
220 ram_wr32(fuc, 0x10fe20, 0x20010000); gf100_ram_calc()
221 ram_wr32(fuc, 0x137320, 0x00000003); gf100_ram_calc()
222 ram_wr32(fuc, 0x137330, 0x81200006); gf100_ram_calc()
223 ram_wr32(fuc, 0x10fe24, (P << 16) | (N1 << 8) | M1); gf100_ram_calc()
224 ram_wr32(fuc, 0x10fe20, 0x20010001); gf100_ram_calc()
225 ram_wait(fuc, 0x137390, 0x00020000, 0x00020000, 64000); gf100_ram_calc()
235 ram_wr32(fuc, 0x10fe20, 0x20010005); gf100_ram_calc()
236 ram_wr32(fuc, 0x132004, (P << 16) | (N1 << 8) | M1); gf100_ram_calc()
237 ram_wr32(fuc, 0x132000, 0x18010101); gf100_ram_calc()
238 ram_wait(fuc, 0x137390, 0x00000002, 0x00000002, 64000); gf100_ram_calc()
241 ram_wr32(fuc, 0x137300, 0x00000003); gf100_ram_calc()
245 ram_nuke(fuc, 0x10fb04); gf100_ram_calc()
246 ram_mask(fuc, 0x10fb04, 0x0000ffff, 0x00000000); gf100_ram_calc()
247 ram_nuke(fuc, 0x10fb08); gf100_ram_calc()
248 ram_mask(fuc, 0x10fb08, 0x0000ffff, 0x00000000); gf100_ram_calc()
249 ram_wr32(fuc, 0x10f988, 0x2004ff00); gf100_ram_calc()
250 ram_wr32(fuc, 0x10f98c, 0x003fc040); gf100_ram_calc()
251 ram_wr32(fuc, 0x10f990, 0x20012001); gf100_ram_calc()
252 ram_wr32(fuc, 0x10f998, 0x00011a00); gf100_ram_calc()
253 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc()
255 ram_wr32(fuc, 0x10f988, 0x20010000); gf100_ram_calc()
256 ram_wr32(fuc, 0x10f98c, 0x00000000); gf100_ram_calc()
257 ram_wr32(fuc, 0x10f990, 0x20012001); gf100_ram_calc()
258 ram_wr32(fuc, 0x10f998, 0x00010a00); gf100_ram_calc()
266 ram_wr32(fuc, 0x100b0c, 0x00080012); gf100_ram_calc()
269 ram_wr32(fuc, 0x611200, 0x00003300); gf100_ram_calc()
273 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000000); gf100_ram_calc()
274 ram_wr32(fuc, 0x10f210, 0x00000000); gf100_ram_calc()
275 ram_nsec(fuc, 1000); gf100_ram_calc()
277 gf100_ram_train(fuc, 0x000c1001); gf100_ram_calc()
278 ram_wr32(fuc, 0x10f310, 0x00000001); gf100_ram_calc()
279 ram_nsec(fuc, 1000); gf100_ram_calc()
280 ram_wr32(fuc, 0x10f090, 0x00000061); gf100_ram_calc()
281 ram_wr32(fuc, 0x10f090, 0xc000007f); gf100_ram_calc()
282 ram_nsec(fuc, 1000); gf100_ram_calc()
285 ram_wr32(fuc, 0x10f824, 0x00007fd4); gf100_ram_calc()
287 ram_wr32(fuc, 0x1373ec, 0x00020404); gf100_ram_calc()
291 ram_mask(fuc, 0x10f808, 0x00080000, 0x00000000); gf100_ram_calc()
292 ram_mask(fuc, 0x10f200, 0x00008000, 0x00008000); gf100_ram_calc()
293 ram_wr32(fuc, 0x10f830, 0x41500010); gf100_ram_calc()
294 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); gf100_ram_calc()
295 ram_mask(fuc, 0x132100, 0x00000100, 0x00000100); gf100_ram_calc()
296 ram_wr32(fuc, 0x10f050, 0xff000090); gf100_ram_calc()
297 ram_wr32(fuc, 0x1373ec, 0x00020f0f); gf100_ram_calc()
298 ram_wr32(fuc, 0x1373f0, 0x00000003); gf100_ram_calc()
299 ram_wr32(fuc, 0x137310, 0x81201616); gf100_ram_calc()
300 ram_wr32(fuc, 0x132100, 0x00000001); gf100_ram_calc()
302 ram_wr32(fuc, 0x10f830, 0x00300017); gf100_ram_calc()
303 ram_wr32(fuc, 0x1373f0, 0x00000001); gf100_ram_calc()
304 ram_wr32(fuc, 0x10f824, 0x00007e77); gf100_ram_calc()
305 ram_wr32(fuc, 0x132000, 0x18030001); gf100_ram_calc()
306 ram_wr32(fuc, 0x10f090, 0x4000007e); gf100_ram_calc()
307 ram_nsec(fuc, 2000); gf100_ram_calc()
308 ram_wr32(fuc, 0x10f314, 0x00000001); gf100_ram_calc()
309 ram_wr32(fuc, 0x10f210, 0x80000000); gf100_ram_calc()
310 ram_wr32(fuc, 0x10f338, 0x00300220); gf100_ram_calc()
311 ram_wr32(fuc, 0x10f300, 0x0000011d); gf100_ram_calc()
312 ram_nsec(fuc, 1000); gf100_ram_calc()
313 ram_wr32(fuc, 0x10f290, 0x02060505); gf100_ram_calc()
314 ram_wr32(fuc, 0x10f294, 0x34208288); gf100_ram_calc()
315 ram_wr32(fuc, 0x10f298, 0x44050411); gf100_ram_calc()
316 ram_wr32(fuc, 0x10f29c, 0x0000114c); gf100_ram_calc()
317 ram_wr32(fuc, 0x10f2a0, 0x42e10069); gf100_ram_calc()
318 ram_wr32(fuc, 0x10f614, 0x40044f77); gf100_ram_calc()
319 ram_wr32(fuc, 0x10f610, 0x40044f77); gf100_ram_calc()
320 ram_wr32(fuc, 0x10f344, 0x00600009); gf100_ram_calc()
321 ram_nsec(fuc, 1000); gf100_ram_calc()
322 ram_wr32(fuc, 0x10f348, 0x00700008); gf100_ram_calc()
323 ram_wr32(fuc, 0x61c140, 0x19240000); gf100_ram_calc()
324 ram_wr32(fuc, 0x10f830, 0x00300017); gf100_ram_calc()
325 gf100_ram_train(fuc, 0x80021001); gf100_ram_calc()
326 gf100_ram_train(fuc, 0x80081001); gf100_ram_calc()
327 ram_wr32(fuc, 0x10f340, 0x00500004); gf100_ram_calc()
328 ram_nsec(fuc, 1000); gf100_ram_calc()
329 ram_wr32(fuc, 0x10f830, 0x01300017); gf100_ram_calc()
330 ram_wr32(fuc, 0x10f830, 0x00300017); gf100_ram_calc()
333 ram_wr32(fuc, 0x100b0c, 0x00080028); gf100_ram_calc()
334 ram_wr32(fuc, 0x611200, 0x00003330); gf100_ram_calc()
336 ram_wr32(fuc, 0x10f800, 0x00001800); gf100_ram_calc()
337 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc()
338 ram_wr32(fuc, 0x1373ec, 0x00020404); gf100_ram_calc()
339 ram_wr32(fuc, 0x1373f0, 0x00000003); gf100_ram_calc()
340 ram_wr32(fuc, 0x10f830, 0x40700010); gf100_ram_calc()
341 ram_wr32(fuc, 0x10f830, 0x40500010); gf100_ram_calc()
342 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc()
343 ram_wr32(fuc, 0x1373f8, 0x00000000); gf100_ram_calc()
344 ram_wr32(fuc, 0x132100, 0x00000101); gf100_ram_calc()
345 ram_wr32(fuc, 0x137310, 0x89201616); gf100_ram_calc()
346 ram_wr32(fuc, 0x10f050, 0xff000090); gf100_ram_calc()
347 ram_wr32(fuc, 0x1373ec, 0x00030404); gf100_ram_calc()
348 ram_wr32(fuc, 0x1373f0, 0x00000002); gf100_ram_calc()
350 ram_wr32(fuc, 0x132100, 0x00000001); gf100_ram_calc()
351 ram_wr32(fuc, 0x1373f8, 0x00002000); gf100_ram_calc()
352 ram_nsec(fuc, 2000); gf100_ram_calc()
353 ram_wr32(fuc, 0x10f808, 0x7aaa0050); gf100_ram_calc()
354 ram_wr32(fuc, 0x10f830, 0x00500010); gf100_ram_calc()
355 ram_wr32(fuc, 0x10f200, 0x00ce1000); gf100_ram_calc()
356 ram_wr32(fuc, 0x10f090, 0x4000007e); gf100_ram_calc()
357 ram_nsec(fuc, 2000); gf100_ram_calc()
358 ram_wr32(fuc, 0x10f314, 0x00000001); gf100_ram_calc()
359 ram_wr32(fuc, 0x10f210, 0x80000000); gf100_ram_calc()
360 ram_wr32(fuc, 0x10f338, 0x00300200); gf100_ram_calc()
361 ram_wr32(fuc, 0x10f300, 0x0000084d); gf100_ram_calc()
362 ram_nsec(fuc, 1000); gf100_ram_calc()
363 ram_wr32(fuc, 0x10f290, 0x0b343825); gf100_ram_calc()
364 ram_wr32(fuc, 0x10f294, 0x3483028e); gf100_ram_calc()
365 ram_wr32(fuc, 0x10f298, 0x440c0600); gf100_ram_calc()
366 ram_wr32(fuc, 0x10f29c, 0x0000214c); gf100_ram_calc()
367 ram_wr32(fuc, 0x10f2a0, 0x42e20069); gf100_ram_calc()
368 ram_wr32(fuc, 0x10f200, 0x00ce0000); gf100_ram_calc()
369 ram_wr32(fuc, 0x10f614, 0x60044e77); gf100_ram_calc()
370 ram_wr32(fuc, 0x10f610, 0x60044e77); gf100_ram_calc()
371 ram_wr32(fuc, 0x10f340, 0x00500000); gf100_ram_calc()
372 ram_nsec(fuc, 1000); gf100_ram_calc()
373 ram_wr32(fuc, 0x10f344, 0x00600228); gf100_ram_calc()
374 ram_nsec(fuc, 1000); gf100_ram_calc()
375 ram_wr32(fuc, 0x10f348, 0x00700000); gf100_ram_calc()
376 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc()
377 ram_wr32(fuc, 0x61c140, 0x09a40000); gf100_ram_calc()
379 gf100_ram_train(fuc, 0x800e1008); gf100_ram_calc()
381 ram_nsec(fuc, 1000); gf100_ram_calc()
382 ram_wr32(fuc, 0x10f800, 0x00001804); gf100_ram_calc()
385 ram_wr32(fuc, 0x13d8f4, 0x00000000); gf100_ram_calc()
386 ram_wr32(fuc, 0x100b0c, 0x00080028); gf100_ram_calc()
387 ram_wr32(fuc, 0x611200, 0x00003330); gf100_ram_calc()
388 ram_nsec(fuc, 100000); gf100_ram_calc()
389 ram_wr32(fuc, 0x10f9b0, 0x05313f41); gf100_ram_calc()
390 ram_wr32(fuc, 0x10f9b4, 0x00002f50); gf100_ram_calc()
392 gf100_ram_train(fuc, 0x010c1001); gf100_ram_calc()
395 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000800); gf100_ram_calc()
399 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); gf100_ram_calc()
409 struct gf100_ramfuc *fuc = &ram->fuc; gf100_ram_prog() local
410 ram_exec(fuc, nvkm_boolopt(device->cfgopt, "NvMemExec", true)); gf100_ram_prog()
418 struct gf100_ramfuc *fuc = &ram->fuc; gf100_ram_tidy() local
419 ram_exec(fuc, false); gf100_ram_tidy()
661 ram->fuc.r_0x10fe20 = ramfuc_reg(0x10fe20); gf100_ram_ctor()
662 ram->fuc.r_0x10fe24 = ramfuc_reg(0x10fe24); gf100_ram_ctor()
663 ram->fuc.r_0x137320 = ramfuc_reg(0x137320); gf100_ram_ctor()
664 ram->fuc.r_0x137330 = ramfuc_reg(0x137330); gf100_ram_ctor()
666 ram->fuc.r_0x132000 = ramfuc_reg(0x132000); gf100_ram_ctor()
667 ram->fuc.r_0x132004 = ramfuc_reg(0x132004); gf100_ram_ctor()
668 ram->fuc.r_0x132100 = ramfuc_reg(0x132100); gf100_ram_ctor()
670 ram->fuc.r_0x137390 = ramfuc_reg(0x137390); gf100_ram_ctor()
672 ram->fuc.r_0x10f290 = ramfuc_reg(0x10f290); gf100_ram_ctor()
673 ram->fuc.r_0x10f294 = ramfuc_reg(0x10f294); gf100_ram_ctor()
674 ram->fuc.r_0x10f298 = ramfuc_reg(0x10f298); gf100_ram_ctor()
675 ram->fuc.r_0x10f29c = ramfuc_reg(0x10f29c); gf100_ram_ctor()
676 ram->fuc.r_0x10f2a0 = ramfuc_reg(0x10f2a0); gf100_ram_ctor()
678 ram->fuc.r_0x10f300 = ramfuc_reg(0x10f300); gf100_ram_ctor()
679 ram->fuc.r_0x10f338 = ramfuc_reg(0x10f338); gf100_ram_ctor()
680 ram->fuc.r_0x10f340 = ramfuc_reg(0x10f340); gf100_ram_ctor()
681 ram->fuc.r_0x10f344 = ramfuc_reg(0x10f344); gf100_ram_ctor()
682 ram->fuc.r_0x10f348 = ramfuc_reg(0x10f348); gf100_ram_ctor()
684 ram->fuc.r_0x10f910 = ramfuc_reg(0x10f910); gf100_ram_ctor()
685 ram->fuc.r_0x10f914 = ramfuc_reg(0x10f914); gf100_ram_ctor()
687 ram->fuc.r_0x100b0c = ramfuc_reg(0x100b0c); gf100_ram_ctor()
688 ram->fuc.r_0x10f050 = ramfuc_reg(0x10f050); gf100_ram_ctor()
689 ram->fuc.r_0x10f090 = ramfuc_reg(0x10f090); gf100_ram_ctor()
690 ram->fuc.r_0x10f200 = ramfuc_reg(0x10f200); gf100_ram_ctor()
691 ram->fuc.r_0x10f210 = ramfuc_reg(0x10f210); gf100_ram_ctor()
692 ram->fuc.r_0x10f310 = ramfuc_reg(0x10f310); gf100_ram_ctor()
693 ram->fuc.r_0x10f314 = ramfuc_reg(0x10f314); gf100_ram_ctor()
694 ram->fuc.r_0x10f610 = ramfuc_reg(0x10f610); gf100_ram_ctor()
695 ram->fuc.r_0x10f614 = ramfuc_reg(0x10f614); gf100_ram_ctor()
696 ram->fuc.r_0x10f800 = ramfuc_reg(0x10f800); gf100_ram_ctor()
697 ram->fuc.r_0x10f808 = ramfuc_reg(0x10f808); gf100_ram_ctor()
698 ram->fuc.r_0x10f824 = ramfuc_reg(0x10f824); gf100_ram_ctor()
699 ram->fuc.r_0x10f830 = ramfuc_reg(0x10f830); gf100_ram_ctor()
700 ram->fuc.r_0x10f988 = ramfuc_reg(0x10f988); gf100_ram_ctor()
701 ram->fuc.r_0x10f98c = ramfuc_reg(0x10f98c); gf100_ram_ctor()
702 ram->fuc.r_0x10f990 = ramfuc_reg(0x10f990); gf100_ram_ctor()
703 ram->fuc.r_0x10f998 = ramfuc_reg(0x10f998); gf100_ram_ctor()
704 ram->fuc.r_0x10f9b0 = ramfuc_reg(0x10f9b0); gf100_ram_ctor()
705 ram->fuc.r_0x10f9b4 = ramfuc_reg(0x10f9b4); gf100_ram_ctor()
706 ram->fuc.r_0x10fb04 = ramfuc_reg(0x10fb04); gf100_ram_ctor()
707 ram->fuc.r_0x10fb08 = ramfuc_reg(0x10fb08); gf100_ram_ctor()
708 ram->fuc.r_0x137310 = ramfuc_reg(0x137300); gf100_ram_ctor()
709 ram->fuc.r_0x137310 = ramfuc_reg(0x137310); gf100_ram_ctor()
710 ram->fuc.r_0x137360 = ramfuc_reg(0x137360); gf100_ram_ctor()
711 ram->fuc.r_0x1373ec = ramfuc_reg(0x1373ec); gf100_ram_ctor()
712 ram->fuc.r_0x1373f0 = ramfuc_reg(0x1373f0); gf100_ram_ctor()
713 ram->fuc.r_0x1373f8 = ramfuc_reg(0x1373f8); gf100_ram_ctor()
715 ram->fuc.r_0x61c140 = ramfuc_reg(0x61c140); gf100_ram_ctor()
716 ram->fuc.r_0x611200 = ramfuc_reg(0x611200); gf100_ram_ctor()
718 ram->fuc.r_0x13d8f4 = ramfuc_reg(0x13d8f4); gf100_ram_ctor()
H A Dramgk104.c123 struct gk104_ramfuc fuc; member in struct:gk104_ram
141 gk104_ram_train(struct gk104_ramfuc *fuc, u32 mask, u32 data) gk104_ram_train() argument
143 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); gk104_ram_train()
146 ram_mask(fuc, 0x10f910, mask, data); gk104_ram_train()
147 ram_mask(fuc, 0x10f914, mask, data); gk104_ram_train()
152 ram_wait(fuc, addr, 0x0000000f, 0x00000000, 500000); gk104_ram_train()
157 r1373f4_init(struct gk104_ramfuc *fuc) r1373f4_init() argument
159 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); r1373f4_init()
166 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00001100); r1373f4_init()
167 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00000010); r1373f4_init()
169 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00010010); r1373f4_init()
172 ram_mask(fuc, 0x1373f4, 0x00000003, 0x00000000); r1373f4_init()
173 ram_mask(fuc, 0x1373f4, 0x00000010, 0x00000000); r1373f4_init()
176 if ((ram_rd32(fuc, 0x132024) & 0xffffffff) != rcoef || r1373f4_init()
177 (ram_rd32(fuc, 0x132034) & 0x0000ffff) != runk1) { r1373f4_init()
178 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); r1373f4_init()
179 ram_mask(fuc, 0x132020, 0x00000001, 0x00000000); r1373f4_init()
180 ram_wr32(fuc, 0x137320, 0x00000000); r1373f4_init()
181 ram_mask(fuc, 0x132030, 0xffff0000, runk0); r1373f4_init()
182 ram_mask(fuc, 0x132034, 0x0000ffff, runk1); r1373f4_init()
183 ram_wr32(fuc, 0x132024, rcoef); r1373f4_init()
184 ram_mask(fuc, 0x132028, 0x00080000, 0x00080000); r1373f4_init()
185 ram_mask(fuc, 0x132020, 0x00000001, 0x00000001); r1373f4_init()
186 ram_wait(fuc, 0x137390, 0x00020000, 0x00020000, 64000); r1373f4_init()
187 ram_mask(fuc, 0x132028, 0x00080000, 0x00000000); r1373f4_init()
192 ram_mask(fuc, 0x1373f4, 0x00010000, 0x00000000); r1373f4_init()
193 ram_mask(fuc, 0x132000, 0x80000000, 0x80000000); r1373f4_init()
194 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); r1373f4_init()
195 ram_mask(fuc, 0x132004, 0x103fffff, mcoef); r1373f4_init()
196 ram_mask(fuc, 0x132000, 0x00000001, 0x00000001); r1373f4_init()
197 ram_wait(fuc, 0x137390, 0x00000002, 0x00000002, 64000); r1373f4_init()
198 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00001100); r1373f4_init()
200 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00010100); r1373f4_init()
203 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00000010); r1373f4_init()
207 r1373f4_fini(struct gk104_ramfuc *fuc) r1373f4_fini() argument
209 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); r1373f4_fini()
215 tmp = ram_rd32(fuc, 0x1373ec) & ~0x00030000; r1373f4_fini()
216 ram_wr32(fuc, 0x1373ec, tmp | (v1 << 16)); r1373f4_fini()
217 ram_mask(fuc, 0x1373f0, (~ram->mode & 3), 0x00000000); r1373f4_fini()
219 ram_mask(fuc, 0x1373f4, 0x00000003, 0x000000002); r1373f4_fini()
220 ram_mask(fuc, 0x1373f4, 0x00001100, 0x000000000); r1373f4_fini()
222 ram_mask(fuc, 0x1373f4, 0x00000003, 0x000000001); r1373f4_fini()
223 ram_mask(fuc, 0x1373f4, 0x00010000, 0x000000000); r1373f4_fini()
225 ram_mask(fuc, 0x10f800, 0x00000030, (v0 ^ v1) << 4); r1373f4_fini()
233 struct ramfuc *fuc = &ram->fuc.base; gk104_ram_nuts() local
243 nvkm_memx_wr32(fuc->memx, addr, next); gk104_ram_nuts()
248 gk104_ram_nuts((s), &(s)->fuc.r_##r, (m), (d), (c))
254 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_calc_gddr5() local
260 ram_mask(fuc, 0x10f808, 0x40000000, 0x40000000); gk104_ram_calc_gddr5()
261 ram_block(fuc); gk104_ram_calc_gddr5()
262 ram_wr32(fuc, 0x62c000, 0x0f0f0000); gk104_ram_calc_gddr5()
266 ram_mask(fuc, mr[1], 0x03c, ram->base.mr[1] & 0x03c); gk104_ram_calc_gddr5()
270 if (vc == 1 && ram_have(fuc, gpio2E)) { gk104_ram_calc_gddr5()
271 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[1]); gk104_ram_calc_gddr5()
272 if (temp != ram_rd32(fuc, gpio2E)) { gk104_ram_calc_gddr5()
273 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_gddr5()
274 ram_nsec(fuc, 20000); gk104_ram_calc_gddr5()
278 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000000); gk104_ram_calc_gddr5()
280 gk104_ram_train(fuc, 0x01020000, 0x000c0000); gk104_ram_calc_gddr5()
282 ram_wr32(fuc, 0x10f210, 0x00000000); /* REFRESH_AUTO = 0 */ gk104_ram_calc_gddr5()
283 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5()
284 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_gddr5()
285 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5()
287 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); gk104_ram_calc_gddr5()
288 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ gk104_ram_calc_gddr5()
289 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); gk104_ram_calc_gddr5()
290 ram_wr32(fuc, 0x10f090, 0x00000061); gk104_ram_calc_gddr5()
291 ram_wr32(fuc, 0x10f090, 0xc000007f); gk104_ram_calc_gddr5()
292 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5()
294 ram_wr32(fuc, 0x10f698, 0x00000000); gk104_ram_calc_gddr5()
295 ram_wr32(fuc, 0x10f69c, 0x00000000); gk104_ram_calc_gddr5()
304 if (ram_rd32(fuc, 0x10f978) & 0x00800000) gk104_ram_calc_gddr5()
334 if (ram_rd32(fuc, 0x10f978) & 0x00800000) gk104_ram_calc_gddr5()
337 ram_mask(fuc, 0x10f824, mask, data); gk104_ram_calc_gddr5()
339 ram_mask(fuc, 0x132040, 0x00010000, 0x00000000); gk104_ram_calc_gddr5()
342 ram_mask(fuc, 0x10f808, 0x00080000, 0x00000000); gk104_ram_calc_gddr5()
343 ram_mask(fuc, 0x10f200, 0x18008000, 0x00008000); gk104_ram_calc_gddr5()
344 ram_mask(fuc, 0x10f800, 0x00000000, 0x00000004); gk104_ram_calc_gddr5()
345 ram_mask(fuc, 0x10f830, 0x00008000, 0x01040010); gk104_ram_calc_gddr5()
346 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); gk104_ram_calc_gddr5()
347 r1373f4_init(fuc); gk104_ram_calc_gddr5()
348 ram_mask(fuc, 0x1373f0, 0x00000002, 0x00000001); gk104_ram_calc_gddr5()
349 r1373f4_fini(fuc); gk104_ram_calc_gddr5()
350 ram_mask(fuc, 0x10f830, 0x00c00000, 0x00240001); gk104_ram_calc_gddr5()
353 r1373f4_init(fuc); gk104_ram_calc_gddr5()
354 r1373f4_fini(fuc); gk104_ram_calc_gddr5()
357 if (ram_have(fuc, gpioMV)) { gk104_ram_calc_gddr5()
358 u32 temp = ram_mask(fuc, gpioMV, 0x3000, fuc->r_funcMV[mv]); gk104_ram_calc_gddr5()
359 if (temp != ram_rd32(fuc, gpioMV)) { gk104_ram_calc_gddr5()
360 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_gddr5()
361 ram_nsec(fuc, 64000); gk104_ram_calc_gddr5()
367 ram_mask(fuc, 0x132040, 0x00010000, 0x00010000); gk104_ram_calc_gddr5()
368 ram_nsec(fuc, 20000); gk104_ram_calc_gddr5()
373 ram_mask(fuc, 0x10f200, 0x18000000, 0x18000000); gk104_ram_calc_gddr5()
374 ram_mask(fuc, 0x10f800, 0x00000004, 0x00000000); gk104_ram_calc_gddr5()
375 ram_mask(fuc, 0x1373f0, 0x00000000, 0x00000002); gk104_ram_calc_gddr5()
376 ram_mask(fuc, 0x10f830, 0x00800001, 0x00408010); gk104_ram_calc_gddr5()
377 r1373f4_init(fuc); gk104_ram_calc_gddr5()
378 r1373f4_fini(fuc); gk104_ram_calc_gddr5()
379 ram_mask(fuc, 0x10f808, 0x00000000, 0x00080000); gk104_ram_calc_gddr5()
380 ram_mask(fuc, 0x10f200, 0x00808000, 0x00800000); gk104_ram_calc_gddr5()
383 ram_mask(fuc, 0x10f800, 0x00000004, 0x00000000); gk104_ram_calc_gddr5()
384 r1373f4_init(fuc); gk104_ram_calc_gddr5()
385 r1373f4_fini(fuc); gk104_ram_calc_gddr5()
390 ram_mask(fuc, 0x10f670, 0x80000000, 0x80000000); gk104_ram_calc_gddr5()
393 ram_wr32(fuc, 0x10f65c, 0x00000011 * next->bios.rammap_11_11_0c); gk104_ram_calc_gddr5()
394 ram_wr32(fuc, 0x10f6b8, 0x01010101 * next->bios.ramcfg_11_09); gk104_ram_calc_gddr5()
395 ram_wr32(fuc, 0x10f6bc, 0x01010101 * next->bios.ramcfg_11_09); gk104_ram_calc_gddr5()
398 ram_wr32(fuc, 0x10f698, 0x01010101 * next->bios.ramcfg_11_04); gk104_ram_calc_gddr5()
399 ram_wr32(fuc, 0x10f69c, 0x01010101 * next->bios.ramcfg_11_04); gk104_ram_calc_gddr5()
402 ram_wr32(fuc, 0x10f698, 0x00000000); gk104_ram_calc_gddr5()
403 ram_wr32(fuc, 0x10f69c, 0x00000000); gk104_ram_calc_gddr5()
408 ram_nuke(fuc, 0x10f694); gk104_ram_calc_gddr5()
409 ram_mask(fuc, 0x10f694, 0xff00ff00, data); gk104_ram_calc_gddr5()
416 ram_mask(fuc, 0x10f60c, 0x00000080, data); gk104_ram_calc_gddr5()
430 ram_mask(fuc, 0x10f824, mask, data); gk104_ram_calc_gddr5()
436 ram_mask(fuc, 0x10f200, 0x00001000, data); gk104_ram_calc_gddr5()
438 if (ram_rd32(fuc, 0x10f670) & 0x80000000) { gk104_ram_calc_gddr5()
439 ram_nsec(fuc, 10000); gk104_ram_calc_gddr5()
440 ram_mask(fuc, 0x10f670, 0x80000000, 0x00000000); gk104_ram_calc_gddr5()
447 ram_mask(fuc, 0x10f82c, 0x00100000, data); gk104_ram_calc_gddr5()
456 ram_mask(fuc, 0x10f830, 0x00007000, data); gk104_ram_calc_gddr5()
459 ram_mask(fuc, 0x10f248, 0xffffffff, next->bios.timing[10]); gk104_ram_calc_gddr5()
460 ram_mask(fuc, 0x10f290, 0xffffffff, next->bios.timing[0]); gk104_ram_calc_gddr5()
461 ram_mask(fuc, 0x10f294, 0xffffffff, next->bios.timing[1]); gk104_ram_calc_gddr5()
462 ram_mask(fuc, 0x10f298, 0xffffffff, next->bios.timing[2]); gk104_ram_calc_gddr5()
463 ram_mask(fuc, 0x10f29c, 0xffffffff, next->bios.timing[3]); gk104_ram_calc_gddr5()
464 ram_mask(fuc, 0x10f2a0, 0xffffffff, next->bios.timing[4]); gk104_ram_calc_gddr5()
465 ram_mask(fuc, 0x10f2a4, 0xffffffff, next->bios.timing[5]); gk104_ram_calc_gddr5()
466 ram_mask(fuc, 0x10f2a8, 0xffffffff, next->bios.timing[6]); gk104_ram_calc_gddr5()
467 ram_mask(fuc, 0x10f2ac, 0xffffffff, next->bios.timing[7]); gk104_ram_calc_gddr5()
468 ram_mask(fuc, 0x10f2cc, 0xffffffff, next->bios.timing[8]); gk104_ram_calc_gddr5()
469 ram_mask(fuc, 0x10f2e8, 0xffffffff, next->bios.timing[9]); gk104_ram_calc_gddr5()
477 ram_mask(fuc, 0x10f200, mask, data); gk104_ram_calc_gddr5()
489 ram_mask(fuc, 0x10f604, mask, data); gk104_ram_calc_gddr5()
501 ram_mask(fuc, 0x10f614, mask, data); gk104_ram_calc_gddr5()
513 ram_mask(fuc, 0x10f610, mask, data); gk104_ram_calc_gddr5()
537 ram_mask(fuc, 0x10f808, mask, data); gk104_ram_calc_gddr5()
539 ram_wr32(fuc, 0x10f870, 0x11111111 * next->bios.ramcfg_11_03_0f); gk104_ram_calc_gddr5()
552 if ((ram_mask(fuc, 0x100770, mask, data) & mask & 4) != (data & 4)) { gk104_ram_calc_gddr5()
553 ram_mask(fuc, 0x100750, 0x00000008, 0x00000008); gk104_ram_calc_gddr5()
554 ram_wr32(fuc, 0x100710, 0x00000000); gk104_ram_calc_gddr5()
555 ram_wait(fuc, 0x100710, 0x80000000, 0x80000000, 200000); gk104_ram_calc_gddr5()
561 ram_mask(fuc, 0x100778, 0x00000700, data); gk104_ram_calc_gddr5()
563 ram_mask(fuc, 0x10f250, 0x000003f0, next->bios.timing_20_2c_003f << 4); gk104_ram_calc_gddr5()
567 ram_mask(fuc, 0x10f24c, 0x7f000000, data << 24); gk104_ram_calc_gddr5()
568 ram_mask(fuc, 0x10f224, 0x001f0000, next->bios.timing_20_30_f8 << 16); gk104_ram_calc_gddr5()
570 ram_mask(fuc, 0x10fec4, 0x041e0f07, next->bios.timing_20_31_0800 << 26 | gk104_ram_calc_gddr5()
574 ram_mask(fuc, 0x10fec8, 0x00000027, next->bios.timing_20_31_8000 << 5 | gk104_ram_calc_gddr5()
577 ram_wr32(fuc, 0x10f090, 0x4000007e); gk104_ram_calc_gddr5()
578 ram_nsec(fuc, 2000); gk104_ram_calc_gddr5()
579 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ gk104_ram_calc_gddr5()
580 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_gddr5()
581 ram_wr32(fuc, 0x10f210, 0x80000000); /* REFRESH_AUTO = 1 */ gk104_ram_calc_gddr5()
584 u32 temp = ram_mask(fuc, 0x10f294, 0xff000000, 0x24000000); gk104_ram_calc_gddr5()
585 gk104_ram_train(fuc, 0xbc0e0000, 0xa4010000); /*XXX*/ gk104_ram_calc_gddr5()
586 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5()
587 ram_wr32(fuc, 0x10f294, temp); gk104_ram_calc_gddr5()
590 ram_mask(fuc, mr[3], 0xfff, ram->base.mr[3]); gk104_ram_calc_gddr5()
591 ram_wr32(fuc, mr[0], ram->base.mr[0]); gk104_ram_calc_gddr5()
592 ram_mask(fuc, mr[8], 0xfff, ram->base.mr[8]); gk104_ram_calc_gddr5()
593 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5()
594 ram_mask(fuc, mr[1], 0xfff, ram->base.mr[1]); gk104_ram_calc_gddr5()
595 ram_mask(fuc, mr[5], 0xfff, ram->base.mr[5] & ~0x004); /* LP3 later */ gk104_ram_calc_gddr5()
596 ram_mask(fuc, mr[6], 0xfff, ram->base.mr[6]); gk104_ram_calc_gddr5()
597 ram_mask(fuc, mr[7], 0xfff, ram->base.mr[7]); gk104_ram_calc_gddr5()
599 if (vc == 0 && ram_have(fuc, gpio2E)) { gk104_ram_calc_gddr5()
600 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[0]); gk104_ram_calc_gddr5()
601 if (temp != ram_rd32(fuc, gpio2E)) { gk104_ram_calc_gddr5()
602 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_gddr5()
603 ram_nsec(fuc, 20000); gk104_ram_calc_gddr5()
607 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); gk104_ram_calc_gddr5()
608 ram_wr32(fuc, 0x10f318, 0x00000001); /* NOP? */ gk104_ram_calc_gddr5()
609 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); gk104_ram_calc_gddr5()
610 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5()
613 data = ram_rd32(fuc, 0x10f978); gk104_ram_calc_gddr5()
624 ram_wr32(fuc, 0x10f978, data); gk104_ram_calc_gddr5()
627 data = ram_rd32(fuc, 0x10f830) | 0x00000001; gk104_ram_calc_gddr5()
628 ram_wr32(fuc, 0x10f830, data); gk104_ram_calc_gddr5()
640 gk104_ram_train(fuc, 0xbc0f0000, data); gk104_ram_calc_gddr5()
642 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5()
645 ram_mask(fuc, 0x10f800, 0x00000004, 0x00000004); gk104_ram_calc_gddr5()
649 if (ram_mask(fuc, mr[5], 0x004, ram->base.mr[5]) != ram->base.mr[5]) gk104_ram_calc_gddr5()
650 ram_nsec(fuc, 1000); gk104_ram_calc_gddr5()
653 ram_mask(fuc, 0x10f830, 0x01000000, 0x01000000); gk104_ram_calc_gddr5()
654 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); gk104_ram_calc_gddr5()
658 gk104_ram_train(fuc, 0x80020000, 0x01000000); gk104_ram_calc_gddr5()
660 ram_unblock(fuc); gk104_ram_calc_gddr5()
661 ram_wr32(fuc, 0x62c000, 0x0f0f0f00); gk104_ram_calc_gddr5()
667 ram_mask(fuc, 0x10f200, 0x00000800, data); gk104_ram_calc_gddr5()
680 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_calc_sddr3() local
689 ram_mask(fuc, 0x10f808, 0x40000000, 0x40000000); gk104_ram_calc_sddr3()
690 ram_block(fuc); gk104_ram_calc_sddr3()
691 ram_wr32(fuc, 0x62c000, 0x0f0f0000); gk104_ram_calc_sddr3()
693 if (vc == 1 && ram_have(fuc, gpio2E)) { gk104_ram_calc_sddr3()
694 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[1]); gk104_ram_calc_sddr3()
695 if (temp != ram_rd32(fuc, gpio2E)) { gk104_ram_calc_sddr3()
696 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_sddr3()
697 ram_nsec(fuc, 20000); gk104_ram_calc_sddr3()
701 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000000); gk104_ram_calc_sddr3()
703 ram_mask(fuc, 0x10f808, 0x04000000, 0x04000000); gk104_ram_calc_sddr3()
705 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ gk104_ram_calc_sddr3()
706 ram_wr32(fuc, 0x10f210, 0x00000000); /* REFRESH_AUTO = 0 */ gk104_ram_calc_sddr3()
707 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_sddr3()
708 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); gk104_ram_calc_sddr3()
709 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_sddr3()
710 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); gk104_ram_calc_sddr3()
711 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3()
713 ram_wr32(fuc, 0x10f090, 0x00000060); gk104_ram_calc_sddr3()
714 ram_wr32(fuc, 0x10f090, 0xc000007e); gk104_ram_calc_sddr3()
752 ram_mask(fuc, 0x10f824, mask, data); gk104_ram_calc_sddr3()
754 ram_mask(fuc, 0x132040, 0x00010000, 0x00000000); gk104_ram_calc_sddr3()
756 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00010010); gk104_ram_calc_sddr3()
757 data = ram_rd32(fuc, 0x1373ec) & ~0x00030000; gk104_ram_calc_sddr3()
759 ram_wr32(fuc, 0x1373ec, data); gk104_ram_calc_sddr3()
760 ram_mask(fuc, 0x1373f4, 0x00000003, 0x00000000); gk104_ram_calc_sddr3()
761 ram_mask(fuc, 0x1373f4, 0x00000010, 0x00000000); gk104_ram_calc_sddr3()
764 if ((ram_rd32(fuc, 0x132024) & 0xffffffff) != rcoef || gk104_ram_calc_sddr3()
765 (ram_rd32(fuc, 0x132034) & 0x0000ffff) != runk1) { gk104_ram_calc_sddr3()
766 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); gk104_ram_calc_sddr3()
767 ram_mask(fuc, 0x132020, 0x00000001, 0x00000000); gk104_ram_calc_sddr3()
768 ram_wr32(fuc, 0x137320, 0x00000000); gk104_ram_calc_sddr3()
769 ram_mask(fuc, 0x132030, 0xffff0000, runk0); gk104_ram_calc_sddr3()
770 ram_mask(fuc, 0x132034, 0x0000ffff, runk1); gk104_ram_calc_sddr3()
771 ram_wr32(fuc, 0x132024, rcoef); gk104_ram_calc_sddr3()
772 ram_mask(fuc, 0x132028, 0x00080000, 0x00080000); gk104_ram_calc_sddr3()
773 ram_mask(fuc, 0x132020, 0x00000001, 0x00000001); gk104_ram_calc_sddr3()
774 ram_wait(fuc, 0x137390, 0x00020000, 0x00020000, 64000); gk104_ram_calc_sddr3()
775 ram_mask(fuc, 0x132028, 0x00080000, 0x00000000); gk104_ram_calc_sddr3()
778 ram_mask(fuc, 0x1373f4, 0x00000010, 0x00000010); gk104_ram_calc_sddr3()
779 ram_mask(fuc, 0x1373f4, 0x00000003, 0x00000001); gk104_ram_calc_sddr3()
780 ram_mask(fuc, 0x1373f4, 0x00010000, 0x00000000); gk104_ram_calc_sddr3()
782 if (ram_have(fuc, gpioMV)) { gk104_ram_calc_sddr3()
783 u32 temp = ram_mask(fuc, gpioMV, 0x3000, fuc->r_funcMV[mv]); gk104_ram_calc_sddr3()
784 if (temp != ram_rd32(fuc, gpioMV)) { gk104_ram_calc_sddr3()
785 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_sddr3()
786 ram_nsec(fuc, 64000); gk104_ram_calc_sddr3()
792 ram_mask(fuc, 0x132040, 0x00010000, 0x00010000); gk104_ram_calc_sddr3()
793 ram_nsec(fuc, 20000); gk104_ram_calc_sddr3()
798 ram_mask(fuc, 0x10f670, 0x80000000, 0x80000000); gk104_ram_calc_sddr3()
801 ram_wr32(fuc, 0x10f65c, 0x00000011 * next->bios.rammap_11_11_0c); gk104_ram_calc_sddr3()
802 ram_wr32(fuc, 0x10f6b8, 0x01010101 * next->bios.ramcfg_11_09); gk104_ram_calc_sddr3()
803 ram_wr32(fuc, 0x10f6bc, 0x01010101 * next->bios.ramcfg_11_09); gk104_ram_calc_sddr3()
817 ram_mask(fuc, 0x10f824, mask, data); gk104_ram_calc_sddr3()
818 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3()
824 ram_mask(fuc, 0x10f82c, 0x00100000, data); gk104_ram_calc_sddr3()
827 ram_mask(fuc, 0x10f248, 0xffffffff, next->bios.timing[10]); gk104_ram_calc_sddr3()
828 ram_mask(fuc, 0x10f290, 0xffffffff, next->bios.timing[0]); gk104_ram_calc_sddr3()
829 ram_mask(fuc, 0x10f294, 0xffffffff, next->bios.timing[1]); gk104_ram_calc_sddr3()
830 ram_mask(fuc, 0x10f298, 0xffffffff, next->bios.timing[2]); gk104_ram_calc_sddr3()
831 ram_mask(fuc, 0x10f29c, 0xffffffff, next->bios.timing[3]); gk104_ram_calc_sddr3()
832 ram_mask(fuc, 0x10f2a0, 0xffffffff, next->bios.timing[4]); gk104_ram_calc_sddr3()
833 ram_mask(fuc, 0x10f2a4, 0xffffffff, next->bios.timing[5]); gk104_ram_calc_sddr3()
834 ram_mask(fuc, 0x10f2a8, 0xffffffff, next->bios.timing[6]); gk104_ram_calc_sddr3()
835 ram_mask(fuc, 0x10f2ac, 0xffffffff, next->bios.timing[7]); gk104_ram_calc_sddr3()
836 ram_mask(fuc, 0x10f2cc, 0xffffffff, next->bios.timing[8]); gk104_ram_calc_sddr3()
837 ram_mask(fuc, 0x10f2e8, 0xffffffff, next->bios.timing[9]); gk104_ram_calc_sddr3()
862 ram_mask(fuc, 0x10f808, mask, data); gk104_ram_calc_sddr3()
864 ram_wr32(fuc, 0x10f870, 0x11111111 * next->bios.ramcfg_11_03_0f); gk104_ram_calc_sddr3()
866 ram_mask(fuc, 0x10f250, 0x000003f0, next->bios.timing_20_2c_003f << 4); gk104_ram_calc_sddr3()
871 ram_mask(fuc, 0x10f24c, 0x7f000000, data << 24); gk104_ram_calc_sddr3()
873 ram_mask(fuc, 0x10f224, 0x001f0000, next->bios.timing_20_30_f8 << 16); gk104_ram_calc_sddr3()
875 ram_wr32(fuc, 0x10f090, 0x4000007f); gk104_ram_calc_sddr3()
876 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3()
878 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ gk104_ram_calc_sddr3()
879 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ gk104_ram_calc_sddr3()
880 ram_wr32(fuc, 0x10f210, 0x80000000); /* REFRESH_AUTO = 1 */ gk104_ram_calc_sddr3()
881 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3()
883 ram_nuke(fuc, mr[0]); gk104_ram_calc_sddr3()
884 ram_mask(fuc, mr[0], 0x100, 0x100); gk104_ram_calc_sddr3()
885 ram_mask(fuc, mr[0], 0x100, 0x000); gk104_ram_calc_sddr3()
887 ram_mask(fuc, mr[2], 0xfff, ram->base.mr[2]); gk104_ram_calc_sddr3()
888 ram_wr32(fuc, mr[0], ram->base.mr[0]); gk104_ram_calc_sddr3()
889 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3()
891 ram_nuke(fuc, mr[0]); gk104_ram_calc_sddr3()
892 ram_mask(fuc, mr[0], 0x100, 0x100); gk104_ram_calc_sddr3()
893 ram_mask(fuc, mr[0], 0x100, 0x000); gk104_ram_calc_sddr3()
895 if (vc == 0 && ram_have(fuc, gpio2E)) { gk104_ram_calc_sddr3()
896 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[0]); gk104_ram_calc_sddr3()
897 if (temp != ram_rd32(fuc, gpio2E)) { gk104_ram_calc_sddr3()
898 ram_wr32(fuc, gpiotrig, 1); gk104_ram_calc_sddr3()
899 ram_nsec(fuc, 20000); gk104_ram_calc_sddr3()
904 ram_mask(fuc, 0x10f830, 0x01000000, 0x01000000); gk104_ram_calc_sddr3()
905 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); gk104_ram_calc_sddr3()
908 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); gk104_ram_calc_sddr3()
909 ram_wr32(fuc, 0x10f318, 0x00000001); /* NOP? */ gk104_ram_calc_sddr3()
910 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); gk104_ram_calc_sddr3()
911 ram_nsec(fuc, 1000); gk104_ram_calc_sddr3()
913 ram_unblock(fuc); gk104_ram_calc_sddr3()
914 ram_wr32(fuc, 0x62c000, 0x0f0f0f00); gk104_ram_calc_sddr3()
920 ram_mask(fuc, 0x10f200, 0x00000800, data); gk104_ram_calc_sddr3()
952 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_calc_xits() local
956 ret = ram_init(fuc, pfb); gk104_ram_calc_xits()
960 ram->mode = (next->freq > fuc->refpll.vco1.max_freq) ? 2 : 1; gk104_ram_calc_xits()
961 ram->from = ram_rd32(fuc, 0x1373f4) & 0x0000000f; gk104_ram_calc_xits()
973 refclk = fuc->mempll.refclk; gk104_ram_calc_xits()
976 ret = gt215_pll_calc(nv_subdev(pfb), &fuc->refpll, refclk, &ram->N1, gk104_ram_calc_xits()
978 fuc->mempll.refclk = ret; gk104_ram_calc_xits()
990 fuc->mempll.min_p = 1; gk104_ram_calc_xits()
991 fuc->mempll.max_p = 2; gk104_ram_calc_xits()
993 ret = gt215_pll_calc(nv_subdev(pfb), &fuc->mempll, next->freq, gk104_ram_calc_xits()
1001 for (i = 0; i < ARRAY_SIZE(fuc->r_mr); i++) { gk104_ram_calc_xits()
1002 if (ram_have(fuc, mr[i])) gk104_ram_calc_xits()
1003 ram->base.mr[i] = ram_rd32(fuc, mr[i]); gk104_ram_calc_xits()
1149 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_prog() local
1153 ram_exec(fuc, false); gk104_ram_prog()
1158 ram_exec(fuc, true); gk104_ram_prog()
1168 struct gk104_ramfuc *fuc = &ram->fuc; gk104_ram_tidy() local
1170 ram_exec(fuc, false); gk104_ram_tidy()
1514 ret = nvbios_pll_parse(bios, 0x0c, &ram->fuc.refpll); gk104_ram_ctor()
1520 ret = nvbios_pll_parse(bios, 0x04, &ram->fuc.mempll); gk104_ram_ctor()
1529 ram->fuc.r_gpioMV = ramfuc_reg(0x00d610 + (func.line * 0x04)); gk104_ram_ctor()
1530 ram->fuc.r_funcMV[0] = (func.log[0] ^ 2) << 12; gk104_ram_ctor()
1531 ram->fuc.r_funcMV[1] = (func.log[1] ^ 2) << 12; gk104_ram_ctor()
1536 ram->fuc.r_gpio2E = ramfuc_reg(0x00d610 + (func.line * 0x04)); gk104_ram_ctor()
1537 ram->fuc.r_func2E[0] = (func.log[0] ^ 2) << 12; gk104_ram_ctor()
1538 ram->fuc.r_func2E[1] = (func.log[1] ^ 2) << 12; gk104_ram_ctor()
1541 ram->fuc.r_gpiotrig = ramfuc_reg(0x00d604); gk104_ram_ctor()
1543 ram->fuc.r_0x132020 = ramfuc_reg(0x132020); gk104_ram_ctor()
1544 ram->fuc.r_0x132028 = ramfuc_reg(0x132028); gk104_ram_ctor()
1545 ram->fuc.r_0x132024 = ramfuc_reg(0x132024); gk104_ram_ctor()
1546 ram->fuc.r_0x132030 = ramfuc_reg(0x132030); gk104_ram_ctor()
1547 ram->fuc.r_0x132034 = ramfuc_reg(0x132034); gk104_ram_ctor()
1548 ram->fuc.r_0x132000 = ramfuc_reg(0x132000); gk104_ram_ctor()
1549 ram->fuc.r_0x132004 = ramfuc_reg(0x132004); gk104_ram_ctor()
1550 ram->fuc.r_0x132040 = ramfuc_reg(0x132040); gk104_ram_ctor()
1552 ram->fuc.r_0x10f248 = ramfuc_reg(0x10f248); gk104_ram_ctor()
1553 ram->fuc.r_0x10f290 = ramfuc_reg(0x10f290); gk104_ram_ctor()
1554 ram->fuc.r_0x10f294 = ramfuc_reg(0x10f294); gk104_ram_ctor()
1555 ram->fuc.r_0x10f298 = ramfuc_reg(0x10f298); gk104_ram_ctor()
1556 ram->fuc.r_0x10f29c = ramfuc_reg(0x10f29c); gk104_ram_ctor()
1557 ram->fuc.r_0x10f2a0 = ramfuc_reg(0x10f2a0); gk104_ram_ctor()
1558 ram->fuc.r_0x10f2a4 = ramfuc_reg(0x10f2a4); gk104_ram_ctor()
1559 ram->fuc.r_0x10f2a8 = ramfuc_reg(0x10f2a8); gk104_ram_ctor()
1560 ram->fuc.r_0x10f2ac = ramfuc_reg(0x10f2ac); gk104_ram_ctor()
1561 ram->fuc.r_0x10f2cc = ramfuc_reg(0x10f2cc); gk104_ram_ctor()
1562 ram->fuc.r_0x10f2e8 = ramfuc_reg(0x10f2e8); gk104_ram_ctor()
1563 ram->fuc.r_0x10f250 = ramfuc_reg(0x10f250); gk104_ram_ctor()
1564 ram->fuc.r_0x10f24c = ramfuc_reg(0x10f24c); gk104_ram_ctor()
1565 ram->fuc.r_0x10fec4 = ramfuc_reg(0x10fec4); gk104_ram_ctor()
1566 ram->fuc.r_0x10fec8 = ramfuc_reg(0x10fec8); gk104_ram_ctor()
1567 ram->fuc.r_0x10f604 = ramfuc_reg(0x10f604); gk104_ram_ctor()
1568 ram->fuc.r_0x10f614 = ramfuc_reg(0x10f614); gk104_ram_ctor()
1569 ram->fuc.r_0x10f610 = ramfuc_reg(0x10f610); gk104_ram_ctor()
1570 ram->fuc.r_0x100770 = ramfuc_reg(0x100770); gk104_ram_ctor()
1571 ram->fuc.r_0x100778 = ramfuc_reg(0x100778); gk104_ram_ctor()
1572 ram->fuc.r_0x10f224 = ramfuc_reg(0x10f224); gk104_ram_ctor()
1574 ram->fuc.r_0x10f870 = ramfuc_reg(0x10f870); gk104_ram_ctor()
1575 ram->fuc.r_0x10f698 = ramfuc_reg(0x10f698); gk104_ram_ctor()
1576 ram->fuc.r_0x10f694 = ramfuc_reg(0x10f694); gk104_ram_ctor()
1577 ram->fuc.r_0x10f6b8 = ramfuc_reg(0x10f6b8); gk104_ram_ctor()
1578 ram->fuc.r_0x10f808 = ramfuc_reg(0x10f808); gk104_ram_ctor()
1579 ram->fuc.r_0x10f670 = ramfuc_reg(0x10f670); gk104_ram_ctor()
1580 ram->fuc.r_0x10f60c = ramfuc_reg(0x10f60c); gk104_ram_ctor()
1581 ram->fuc.r_0x10f830 = ramfuc_reg(0x10f830); gk104_ram_ctor()
1582 ram->fuc.r_0x1373ec = ramfuc_reg(0x1373ec); gk104_ram_ctor()
1583 ram->fuc.r_0x10f800 = ramfuc_reg(0x10f800); gk104_ram_ctor()
1584 ram->fuc.r_0x10f82c = ramfuc_reg(0x10f82c); gk104_ram_ctor()
1586 ram->fuc.r_0x10f978 = ramfuc_reg(0x10f978); gk104_ram_ctor()
1587 ram->fuc.r_0x10f910 = ramfuc_reg(0x10f910); gk104_ram_ctor()
1588 ram->fuc.r_0x10f914 = ramfuc_reg(0x10f914); gk104_ram_ctor()
1592 ram->fuc.r_mr[0] = ramfuc_reg(0x10f300); gk104_ram_ctor()
1593 ram->fuc.r_mr[1] = ramfuc_reg(0x10f330); gk104_ram_ctor()
1594 ram->fuc.r_mr[2] = ramfuc_reg(0x10f334); gk104_ram_ctor()
1595 ram->fuc.r_mr[3] = ramfuc_reg(0x10f338); gk104_ram_ctor()
1596 ram->fuc.r_mr[4] = ramfuc_reg(0x10f33c); gk104_ram_ctor()
1597 ram->fuc.r_mr[5] = ramfuc_reg(0x10f340); gk104_ram_ctor()
1598 ram->fuc.r_mr[6] = ramfuc_reg(0x10f344); gk104_ram_ctor()
1599 ram->fuc.r_mr[7] = ramfuc_reg(0x10f348); gk104_ram_ctor()
1600 ram->fuc.r_mr[8] = ramfuc_reg(0x10f354); gk104_ram_ctor()
1601 ram->fuc.r_mr[15] = ramfuc_reg(0x10f34c); gk104_ram_ctor()
1604 ram->fuc.r_mr[0] = ramfuc_reg(0x10f300); gk104_ram_ctor()
1605 ram->fuc.r_mr[2] = ramfuc_reg(0x10f320); gk104_ram_ctor()
1611 ram->fuc.r_0x62c000 = ramfuc_reg(0x62c000); gk104_ram_ctor()
1612 ram->fuc.r_0x10f200 = ramfuc_reg(0x10f200); gk104_ram_ctor()
1613 ram->fuc.r_0x10f210 = ramfuc_reg(0x10f210); gk104_ram_ctor()
1614 ram->fuc.r_0x10f310 = ramfuc_reg(0x10f310); gk104_ram_ctor()
1615 ram->fuc.r_0x10f314 = ramfuc_reg(0x10f314); gk104_ram_ctor()
1616 ram->fuc.r_0x10f318 = ramfuc_reg(0x10f318); gk104_ram_ctor()
1617 ram->fuc.r_0x10f090 = ramfuc_reg(0x10f090); gk104_ram_ctor()
1618 ram->fuc.r_0x10f69c = ramfuc_reg(0x10f69c); gk104_ram_ctor()
1619 ram->fuc.r_0x10f824 = ramfuc_reg(0x10f824); gk104_ram_ctor()
1620 ram->fuc.r_0x1373f0 = ramfuc_reg(0x1373f0); gk104_ram_ctor()
1621 ram->fuc.r_0x1373f4 = ramfuc_reg(0x1373f4); gk104_ram_ctor()
1622 ram->fuc.r_0x137320 = ramfuc_reg(0x137320); gk104_ram_ctor()
1623 ram->fuc.r_0x10f65c = ramfuc_reg(0x10f65c); gk104_ram_ctor()
1624 ram->fuc.r_0x10f6bc = ramfuc_reg(0x10f6bc); gk104_ram_ctor()
1625 ram->fuc.r_0x100710 = ramfuc_reg(0x100710); gk104_ram_ctor()
1626 ram->fuc.r_0x100750 = ramfuc_reg(0x100750); gk104_ram_ctor()
H A Dramgt215.c98 struct gt215_ramfuc fuc; member in struct:gt215_ram
164 struct gt215_ramfuc *fuc = &ram->fuc; gt215_link_train() local
208 r1700 = ram_rd32(fuc, 0x001700); gt215_link_train()
210 ram_mask(fuc, 0x100200, 0x00000800, 0x00000000); gt215_link_train()
211 ram_wr32(fuc, 0x611200, 0x3300); gt215_link_train()
212 ram_wait_vblank(fuc); gt215_link_train()
213 ram_wait(fuc, 0x611200, 0x00000003, 0x00000000, 500000); gt215_link_train()
214 ram_mask(fuc, 0x001610, 0x00000083, 0x00000003); gt215_link_train()
215 ram_mask(fuc, 0x100080, 0x00000020, 0x00000000); gt215_link_train()
216 ram_mask(fuc, 0x10f804, 0x80000000, 0x00000000); gt215_link_train()
217 ram_wr32(fuc, 0x001700, 0x00000000); gt215_link_train()
219 ram_train(fuc); gt215_link_train()
222 ram_mask(fuc, 0x10f804, 0x80000000, 0x80000000); gt215_link_train()
223 ram_wr32(fuc, 0x10053c, 0x0); gt215_link_train()
224 ram_wr32(fuc, 0x100720, train->r_100720); gt215_link_train()
225 ram_wr32(fuc, 0x1111e0, train->r_1111e0); gt215_link_train()
226 ram_wr32(fuc, 0x111400, train->r_111400); gt215_link_train()
227 ram_nuke(fuc, 0x100080); gt215_link_train()
228 ram_mask(fuc, 0x100080, 0x00000020, 0x00000020); gt215_link_train()
229 ram_nsec(fuc, 1000); gt215_link_train()
231 ram_wr32(fuc, 0x001700, r1700); gt215_link_train()
232 ram_mask(fuc, 0x001610, 0x00000083, 0x00000080); gt215_link_train()
233 ram_wr32(fuc, 0x611200, 0x3330); gt215_link_train()
234 ram_mask(fuc, 0x100200, 0x00000800, 0x00000800); gt215_link_train()
236 ram_exec(fuc, true); gt215_link_train()
239 ram_exec(fuc, true); gt215_link_train()
425 nvkm_sddr2_dll_reset(struct gt215_ramfuc *fuc) nvkm_sddr2_dll_reset() argument
427 ram_mask(fuc, mr[0], 0x100, 0x100); nvkm_sddr2_dll_reset()
428 ram_nsec(fuc, 1000); nvkm_sddr2_dll_reset()
429 ram_mask(fuc, mr[0], 0x100, 0x000); nvkm_sddr2_dll_reset()
430 ram_nsec(fuc, 1000); nvkm_sddr2_dll_reset()
434 nvkm_sddr3_dll_disable(struct gt215_ramfuc *fuc, u32 *mr) nvkm_sddr3_dll_disable() argument
436 u32 mr1_old = ram_rd32(fuc, mr[1]); nvkm_sddr3_dll_disable()
439 ram_wr32(fuc, 0x1002d4, 0x00000001); nvkm_sddr3_dll_disable()
440 ram_wr32(fuc, mr[1], mr[1]); nvkm_sddr3_dll_disable()
441 ram_nsec(fuc, 1000); nvkm_sddr3_dll_disable()
446 nvkm_gddr3_dll_disable(struct gt215_ramfuc *fuc, u32 *mr) nvkm_gddr3_dll_disable() argument
448 u32 mr1_old = ram_rd32(fuc, mr[1]); nvkm_gddr3_dll_disable()
451 ram_wr32(fuc, mr[1], mr[1]); nvkm_gddr3_dll_disable()
452 ram_nsec(fuc, 1000); nvkm_gddr3_dll_disable()
457 gt215_ram_lock_pll(struct gt215_ramfuc *fuc, struct gt215_clk_info *mclk) gt215_ram_lock_pll() argument
459 ram_wr32(fuc, 0x004004, mclk->pll); gt215_ram_lock_pll()
460 ram_mask(fuc, 0x004000, 0x00000001, 0x00000001); gt215_ram_lock_pll()
461 ram_mask(fuc, 0x004000, 0x00000010, 0x00000000); gt215_ram_lock_pll()
462 ram_wait(fuc, 0x004000, 0x00020000, 0x00020000, 64000); gt215_ram_lock_pll()
463 ram_mask(fuc, 0x004000, 0x00000010, 0x00000010); gt215_ram_lock_pll()
467 gt215_ram_fbvref(struct gt215_ramfuc *fuc, u32 val) gt215_ram_fbvref() argument
469 struct nvkm_gpio *gpio = nvkm_gpio(fuc->base.pfb); gt215_ram_fbvref()
480 gpio_val = ram_rd32(fuc, gpioFBVREF); gt215_ram_fbvref()
484 ram_mask(fuc, gpioFBVREF, (0x3 << sh), ((val | 0x2) << sh)); gt215_ram_fbvref()
485 ram_nsec(fuc, 20000); gt215_ram_fbvref()
494 struct gt215_ramfuc *fuc = &ram->fuc; gt215_ram_calc() local
555 ret = ram_init(fuc, pfb); gt215_ram_calc()
560 ram->base.mr[0] = ram_rd32(fuc, mr[0]); gt215_ram_calc()
561 ram->base.mr[1] = ram_rd32(fuc, mr[1]); gt215_ram_calc()
562 ram->base.mr[2] = ram_rd32(fuc, mr[2]); gt215_ram_calc()
597 ctrl = ram_rd32(fuc, 0x004000); gt215_ram_calc()
602 ram_mask(fuc, 0x111104, 0x00000600, 0x00000000); gt215_ram_calc()
604 ram_mask(fuc, 0x111100, 0x40000000, 0x40000000); gt215_ram_calc()
605 ram_mask(fuc, 0x111104, 0x00000180, 0x00000000); gt215_ram_calc()
608 ram_mask(fuc, 0x100200, 0x00000800, 0x00000000); gt215_ram_calc()
612 ram_mask(fuc, 0x004128, 0x003f3141, mclk.clk | 0x00000101); gt215_ram_calc()
613 gt215_ram_lock_pll(fuc, &mclk); gt215_ram_calc()
617 ram_wait_vblank(fuc); gt215_ram_calc()
618 ram_wr32(fuc, 0x611200, 0x3300); gt215_ram_calc()
619 ram_mask(fuc, 0x002504, 0x1, 0x1); gt215_ram_calc()
620 ram_nsec(fuc, 10000); gt215_ram_calc()
621 ram_wait(fuc, 0x002504, 0x10, 0x10, 20000); /* XXX: or longer? */ gt215_ram_calc()
622 ram_block(fuc); gt215_ram_calc()
623 ram_nsec(fuc, 2000); gt215_ram_calc()
627 ram_mask(fuc, 0x111100, 0x04020000, 0x00020000); gt215_ram_calc()
629 ram_mask(fuc, 0x111100, 0x04020000, 0x04020000); gt215_ram_calc()
635 nvkm_sddr3_dll_disable(fuc, ram->base.mr); gt215_ram_calc()
638 nvkm_gddr3_dll_disable(fuc, ram->base.mr); gt215_ram_calc()
642 if (fuc->r_gpioFBVREF.addr && next->bios.timing_10_ODT) gt215_ram_calc()
643 gt215_ram_fbvref(fuc, 0); gt215_ram_calc()
646 ram_wr32(fuc, 0x1002d4, 0x00000001); gt215_ram_calc()
647 ram_wr32(fuc, 0x1002d0, 0x00000001); gt215_ram_calc()
648 ram_wr32(fuc, 0x1002d0, 0x00000001); gt215_ram_calc()
649 ram_wr32(fuc, 0x100210, 0x00000000); gt215_ram_calc()
650 ram_wr32(fuc, 0x1002dc, 0x00000001); gt215_ram_calc()
651 ram_nsec(fuc, 2000); gt215_ram_calc()
654 ram_mask(fuc, 0x100700, 0x00000006, 0x00000006); gt215_ram_calc()
665 ram_mask(fuc, 0x004000, 0x00000004, 0x00000004); gt215_ram_calc()
666 ram_mask(fuc, 0x004168, 0x003f3141, 0x00083101); gt215_ram_calc()
667 ram_mask(fuc, 0x004000, 0x00000008, 0x00000008); gt215_ram_calc()
668 ram_mask(fuc, 0x1110e0, 0x00088000, 0x00088000); gt215_ram_calc()
669 ram_wr32(fuc, 0x004018, 0x00001000); gt215_ram_calc()
670 gt215_ram_lock_pll(fuc, &mclk); gt215_ram_calc()
674 ram_mask(fuc, 0x004000, 0x00000105, 0x00000105); gt215_ram_calc()
675 ram_wr32(fuc, 0x004018, 0x00001000 | r004018); gt215_ram_calc()
676 ram_wr32(fuc, 0x100da0, r100da0); gt215_ram_calc()
678 ram_mask(fuc, 0x004168, 0x003f3141, mclk.clk | 0x00000101); gt215_ram_calc()
679 ram_mask(fuc, 0x004000, 0x00000108, 0x00000008); gt215_ram_calc()
680 ram_mask(fuc, 0x1110e0, 0x00088000, 0x00088000); gt215_ram_calc()
681 ram_wr32(fuc, 0x004018, 0x00009000 | r004018); gt215_ram_calc()
682 ram_wr32(fuc, 0x100da0, r100da0); gt215_ram_calc()
684 ram_nsec(fuc, 20000); gt215_ram_calc()
687 ram_wr32(fuc, 0x1005a0, next->bios.ramcfg_10_06 << 16 | gt215_ram_calc()
690 ram_wr32(fuc, 0x1005a4, next->bios.ramcfg_10_08 << 8 | gt215_ram_calc()
692 ram_wr32(fuc, 0x10f804, next->bios.ramcfg_10_09_f0 << 20 | gt215_ram_calc()
696 ram_mask(fuc, 0x10053c, 0x00001000, 0x00000000); gt215_ram_calc()
699 ram_wr32(fuc, 0x100080, 0x1020); gt215_ram_calc()
700 ram_mask(fuc, 0x111400, 0xffffffff, train->r_111400); gt215_ram_calc()
701 ram_mask(fuc, 0x1111e0, 0xffffffff, train->r_1111e0); gt215_ram_calc()
702 ram_mask(fuc, 0x100720, 0xffffffff, train->r_100720); gt215_ram_calc()
704 ram_mask(fuc, 0x10053c, 0x00001000, 0x00001000); gt215_ram_calc()
705 ram_mask(fuc, 0x10f804, 0x80000000, 0x00000000); gt215_ram_calc()
706 ram_mask(fuc, 0x100760, 0x22222222, r100760); gt215_ram_calc()
707 ram_mask(fuc, 0x1007a0, 0x22222222, r100760); gt215_ram_calc()
708 ram_mask(fuc, 0x1007e0, 0x22222222, r100760); gt215_ram_calc()
712 ram_mask(fuc, 0x100700, 0x00000006, 0x00000000); gt215_ram_calc()
717 ram_mask(fuc, 0x1110e0, 0x00088000, 0x00011000); gt215_ram_calc()
718 ram_mask(fuc, 0x004000, 0x00000008, 0x00000000); gt215_ram_calc()
721 ram_wr32(fuc, 0x1002dc, 0x00000000); gt215_ram_calc()
722 ram_wr32(fuc, 0x1002d4, 0x00000001); gt215_ram_calc()
723 ram_wr32(fuc, 0x100210, 0x80000000); gt215_ram_calc()
724 ram_nsec(fuc, 2000); gt215_ram_calc()
728 if (ram_rd32(fuc, mr[i]) != ram->base.mr[i]) { gt215_ram_calc()
729 ram_wr32(fuc, mr[i], ram->base.mr[i]); gt215_ram_calc()
730 ram_nsec(fuc, 1000); gt215_ram_calc()
734 ram_wr32(fuc, 0x100220[3], timing[3]); gt215_ram_calc()
735 ram_wr32(fuc, 0x100220[1], timing[1]); gt215_ram_calc()
736 ram_wr32(fuc, 0x100220[6], timing[6]); gt215_ram_calc()
737 ram_wr32(fuc, 0x100220[7], timing[7]); gt215_ram_calc()
738 ram_wr32(fuc, 0x100220[2], timing[2]); gt215_ram_calc()
739 ram_wr32(fuc, 0x100220[4], timing[4]); gt215_ram_calc()
740 ram_wr32(fuc, 0x100220[5], timing[5]); gt215_ram_calc()
741 ram_wr32(fuc, 0x100220[0], timing[0]); gt215_ram_calc()
742 ram_wr32(fuc, 0x100220[8], timing[8]); gt215_ram_calc()
745 ram_mask(fuc, 0x100200, 0x00001000, !next->bios.ramcfg_10_02_08 << 12); gt215_ram_calc()
748 unk714 = ram_rd32(fuc, 0x100714) & ~0xf0000130; gt215_ram_calc()
749 unk718 = ram_rd32(fuc, 0x100718) & ~0x00000100; gt215_ram_calc()
750 unk71c = ram_rd32(fuc, 0x10071c) & ~0x00000100; gt215_ram_calc()
751 r111100 = ram_rd32(fuc, 0x111100) & ~0x3a800000; gt215_ram_calc()
804 ram_mask(fuc, 0x100714, 0xffffffff, unk714); gt215_ram_calc()
805 ram_mask(fuc, 0x10071c, 0xffffffff, unk71c); gt215_ram_calc()
806 ram_mask(fuc, 0x100718, 0xffffffff, unk718); gt215_ram_calc()
807 ram_mask(fuc, 0x111100, 0xffffffff, r111100); gt215_ram_calc()
809 if (fuc->r_gpioFBVREF.addr && !next->bios.timing_10_ODT) gt215_ram_calc()
810 gt215_ram_fbvref(fuc, 1); gt215_ram_calc()
814 nvkm_sddr2_dll_reset(fuc); gt215_ram_calc()
817 ram_nsec(fuc, 31000); gt215_ram_calc()
819 ram_nsec(fuc, 14000); gt215_ram_calc()
823 ram_wr32(fuc, 0x100264, 0x1); gt215_ram_calc()
824 ram_nsec(fuc, 2000); gt215_ram_calc()
827 ram_nuke(fuc, 0x100700); gt215_ram_calc()
828 ram_mask(fuc, 0x100700, 0x01000000, 0x01000000); gt215_ram_calc()
829 ram_mask(fuc, 0x100700, 0x01000000, 0x00000000); gt215_ram_calc()
832 ram_unblock(fuc); gt215_ram_calc()
833 ram_wr32(fuc, 0x611200, 0x3330); gt215_ram_calc()
837 ram_mask(fuc, 0x100200, 0x00000800, 0x00000800); gt215_ram_calc()
839 ram_mask(fuc, 0x111104, 0x00000180, 0x00000180); gt215_ram_calc()
840 ram_mask(fuc, 0x111100, 0x40000000, 0x00000000); gt215_ram_calc()
842 ram_mask(fuc, 0x111104, 0x00000600, 0x00000600); gt215_ram_calc()
846 ram_mask(fuc, 0x004168, 0x00000001, 0x00000000); gt215_ram_calc()
847 ram_mask(fuc, 0x004168, 0x00000100, 0x00000000); gt215_ram_calc()
849 ram_mask(fuc, 0x004000, 0x00000001, 0x00000000); gt215_ram_calc()
850 ram_mask(fuc, 0x004128, 0x00000001, 0x00000000); gt215_ram_calc()
851 ram_mask(fuc, 0x004128, 0x00000100, 0x00000000); gt215_ram_calc()
862 struct gt215_ramfuc *fuc = &ram->fuc; gt215_ram_prog() local
868 ram_exec(fuc, true); gt215_ram_prog()
877 ram_exec(fuc, false); gt215_ram_prog()
886 struct gt215_ramfuc *fuc = &ram->fuc; gt215_ram_tidy() local
887 ram_exec(fuc, false); gt215_ram_tidy()
946 ram->fuc.r_0x001610 = ramfuc_reg(0x001610); gt215_ram_ctor()
947 ram->fuc.r_0x001700 = ramfuc_reg(0x001700); gt215_ram_ctor()
948 ram->fuc.r_0x002504 = ramfuc_reg(0x002504); gt215_ram_ctor()
949 ram->fuc.r_0x004000 = ramfuc_reg(0x004000); gt215_ram_ctor()
950 ram->fuc.r_0x004004 = ramfuc_reg(0x004004); gt215_ram_ctor()
951 ram->fuc.r_0x004018 = ramfuc_reg(0x004018); gt215_ram_ctor()
952 ram->fuc.r_0x004128 = ramfuc_reg(0x004128); gt215_ram_ctor()
953 ram->fuc.r_0x004168 = ramfuc_reg(0x004168); gt215_ram_ctor()
954 ram->fuc.r_0x100080 = ramfuc_reg(0x100080); gt215_ram_ctor()
955 ram->fuc.r_0x100200 = ramfuc_reg(0x100200); gt215_ram_ctor()
956 ram->fuc.r_0x100210 = ramfuc_reg(0x100210); gt215_ram_ctor()
958 ram->fuc.r_0x100220[i] = ramfuc_reg(0x100220 + (i * 4)); gt215_ram_ctor()
959 ram->fuc.r_0x100264 = ramfuc_reg(0x100264); gt215_ram_ctor()
960 ram->fuc.r_0x1002d0 = ramfuc_reg(0x1002d0); gt215_ram_ctor()
961 ram->fuc.r_0x1002d4 = ramfuc_reg(0x1002d4); gt215_ram_ctor()
962 ram->fuc.r_0x1002dc = ramfuc_reg(0x1002dc); gt215_ram_ctor()
963 ram->fuc.r_0x10053c = ramfuc_reg(0x10053c); gt215_ram_ctor()
964 ram->fuc.r_0x1005a0 = ramfuc_reg(0x1005a0); gt215_ram_ctor()
965 ram->fuc.r_0x1005a4 = ramfuc_reg(0x1005a4); gt215_ram_ctor()
966 ram->fuc.r_0x100700 = ramfuc_reg(0x100700); gt215_ram_ctor()
967 ram->fuc.r_0x100714 = ramfuc_reg(0x100714); gt215_ram_ctor()
968 ram->fuc.r_0x100718 = ramfuc_reg(0x100718); gt215_ram_ctor()
969 ram->fuc.r_0x10071c = ramfuc_reg(0x10071c); gt215_ram_ctor()
970 ram->fuc.r_0x100720 = ramfuc_reg(0x100720); gt215_ram_ctor()
971 ram->fuc.r_0x100760 = ramfuc_stride(0x100760, 4, ram->base.part_mask); gt215_ram_ctor()
972 ram->fuc.r_0x1007a0 = ramfuc_stride(0x1007a0, 4, ram->base.part_mask); gt215_ram_ctor()
973 ram->fuc.r_0x1007e0 = ramfuc_stride(0x1007e0, 4, ram->base.part_mask); gt215_ram_ctor()
974 ram->fuc.r_0x100da0 = ramfuc_stride(0x100da0, 4, ram->base.part_mask); gt215_ram_ctor()
975 ram->fuc.r_0x10f804 = ramfuc_reg(0x10f804); gt215_ram_ctor()
976 ram->fuc.r_0x1110e0 = ramfuc_stride(0x1110e0, 4, ram->base.part_mask); gt215_ram_ctor()
977 ram->fuc.r_0x111100 = ramfuc_reg(0x111100); gt215_ram_ctor()
978 ram->fuc.r_0x111104 = ramfuc_reg(0x111104); gt215_ram_ctor()
979 ram->fuc.r_0x1111e0 = ramfuc_reg(0x1111e0); gt215_ram_ctor()
980 ram->fuc.r_0x111400 = ramfuc_reg(0x111400); gt215_ram_ctor()
981 ram->fuc.r_0x611200 = ramfuc_reg(0x611200); gt215_ram_ctor()
984 ram->fuc.r_mr[0] = ramfuc_reg2(0x1002c0, 0x1002c8); gt215_ram_ctor()
985 ram->fuc.r_mr[1] = ramfuc_reg2(0x1002c4, 0x1002cc); gt215_ram_ctor()
986 ram->fuc.r_mr[2] = ramfuc_reg2(0x1002e0, 0x1002e8); gt215_ram_ctor()
987 ram->fuc.r_mr[3] = ramfuc_reg2(0x1002e4, 0x1002ec); gt215_ram_ctor()
989 ram->fuc.r_mr[0] = ramfuc_reg(0x1002c0); gt215_ram_ctor()
990 ram->fuc.r_mr[1] = ramfuc_reg(0x1002c4); gt215_ram_ctor()
991 ram->fuc.r_mr[2] = ramfuc_reg(0x1002e0); gt215_ram_ctor()
992 ram->fuc.r_mr[3] = ramfuc_reg(0x1002e4); gt215_ram_ctor()
998 ram->fuc.r_gpioFBVREF = ramfuc_reg(reg); gt215_ram_ctor()
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/
H A Dpriv.h4 #include <subdev/pmu/fuc/os.h>
H A Dmemx.c111 memx_out(memx); /* fuc can't handle multiple */ nvkm_memx_wait()
119 memx_out(memx); /* fuc can't handle multiple */ nvkm_memx_nsec()
152 memx_out(memx); /* fuc can't handle multiple */ nvkm_memx_wait_vblank()
H A Dgf100.c25 #include "fuc/gf100.fuc3.h"
H A Dgf110.c25 #include "fuc/gf110.fuc4.h"
H A Dgk208.c25 #include "fuc/gk208.fuc5.h"
H A Dgt215.c25 #include "fuc/gt215.fuc3.h"
H A Dgk104.c27 #include "fuc/gf110.fuc4.h"
H A Dgk110.c27 #include "fuc/gf110.fuc4.h"
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/engine/gr/
H A Dgf117.c101 #include "fuc/hubgf117.fuc3.h"
111 #include "fuc/gpcgf117.fuc3.h"
H A Dgk110.c176 #include "fuc/hubgk110.fuc3.h"
186 #include "fuc/gpcgk110.fuc3.h"
H A Dgk208.c155 #include "fuc/hubgk208.fuc5.h"
165 #include "fuc/gpcgk208.fuc5.h"
H A Dgf100.c26 #include "fuc/os.h"
295 * fuc to modify some per-context register settings on first load gf100_gr_context_ctor()
1266 /* load fuc microcode */ gf100_gr_init_ctxctl()
1524 gf100_gr_dtor_fw(struct gf100_gr_fuc *fuc) gf100_gr_dtor_fw() argument
1526 kfree(fuc->data); gf100_gr_dtor_fw()
1527 fuc->data = NULL; gf100_gr_dtor_fw()
1532 struct gf100_gr_fuc *fuc) gf100_gr_ctor_fw()
1550 fuc->size = fw->size; gf100_gr_ctor_fw()
1551 fuc->data = kmemdup(fw->data, fuc->size, GFP_KERNEL); gf100_gr_ctor_fw()
1553 return (fuc->data != NULL) ? 0 : -ENOMEM; gf100_gr_ctor_fw()
1678 #include "fuc/hubgf100.fuc3.h"
1688 #include "fuc/gpcgf100.fuc3.h"
1531 gf100_gr_ctor_fw(struct gf100_gr_priv *priv, const char *fwname, struct gf100_gr_fuc *fuc) gf100_gr_ctor_fw() argument
H A Dgk104.c324 #include "fuc/hubgk104.fuc3.h"
334 #include "fuc/gpcgk104.fuc3.h"
H A Dgm107.c435 #include "fuc/hubgm107.fuc5.h"
445 #include "fuc/gpcgm107.fuc5.h"
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/engine/ce/
H A Dgf100.c26 #include "fuc/gf100.fuc3.h"
H A Dgt215.c27 #include "fuc/gt215.fuc3.h"
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/engine/sec/
H A Dg98.c26 #include "fuc/g98.fuc0s.h"
/linux-4.1.27/drivers/gpu/drm/nouveau/nvkm/subdev/devinit/
H A Dgm204.c84 nv_error(priv, "VBIOS PMU fuc %02x not found\n", type); pmu_load()

Completed in 604 milliseconds