• Home
  • Raw
  • Download

Lines Matching refs:fuc

123 	struct gk104_ramfuc fuc;  member
141 gk104_ram_train(struct gk104_ramfuc *fuc, u32 mask, u32 data) in gk104_ram_train() argument
143 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); in gk104_ram_train()
146 ram_mask(fuc, 0x10f910, mask, data); in gk104_ram_train()
147 ram_mask(fuc, 0x10f914, mask, data); in gk104_ram_train()
152 ram_wait(fuc, addr, 0x0000000f, 0x00000000, 500000); in gk104_ram_train()
157 r1373f4_init(struct gk104_ramfuc *fuc) in r1373f4_init() argument
159 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); in r1373f4_init()
166 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00001100); in r1373f4_init()
167 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00000010); in r1373f4_init()
169 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00010010); in r1373f4_init()
172 ram_mask(fuc, 0x1373f4, 0x00000003, 0x00000000); in r1373f4_init()
173 ram_mask(fuc, 0x1373f4, 0x00000010, 0x00000000); in r1373f4_init()
176 if ((ram_rd32(fuc, 0x132024) & 0xffffffff) != rcoef || in r1373f4_init()
177 (ram_rd32(fuc, 0x132034) & 0x0000ffff) != runk1) { in r1373f4_init()
178 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); in r1373f4_init()
179 ram_mask(fuc, 0x132020, 0x00000001, 0x00000000); in r1373f4_init()
180 ram_wr32(fuc, 0x137320, 0x00000000); in r1373f4_init()
181 ram_mask(fuc, 0x132030, 0xffff0000, runk0); in r1373f4_init()
182 ram_mask(fuc, 0x132034, 0x0000ffff, runk1); in r1373f4_init()
183 ram_wr32(fuc, 0x132024, rcoef); in r1373f4_init()
184 ram_mask(fuc, 0x132028, 0x00080000, 0x00080000); in r1373f4_init()
185 ram_mask(fuc, 0x132020, 0x00000001, 0x00000001); in r1373f4_init()
186 ram_wait(fuc, 0x137390, 0x00020000, 0x00020000, 64000); in r1373f4_init()
187 ram_mask(fuc, 0x132028, 0x00080000, 0x00000000); in r1373f4_init()
192 ram_mask(fuc, 0x1373f4, 0x00010000, 0x00000000); in r1373f4_init()
193 ram_mask(fuc, 0x132000, 0x80000000, 0x80000000); in r1373f4_init()
194 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); in r1373f4_init()
195 ram_mask(fuc, 0x132004, 0x103fffff, mcoef); in r1373f4_init()
196 ram_mask(fuc, 0x132000, 0x00000001, 0x00000001); in r1373f4_init()
197 ram_wait(fuc, 0x137390, 0x00000002, 0x00000002, 64000); in r1373f4_init()
198 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00001100); in r1373f4_init()
200 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00010100); in r1373f4_init()
203 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00000010); in r1373f4_init()
207 r1373f4_fini(struct gk104_ramfuc *fuc) in r1373f4_fini() argument
209 struct gk104_ram *ram = container_of(fuc, typeof(*ram), fuc); in r1373f4_fini()
215 tmp = ram_rd32(fuc, 0x1373ec) & ~0x00030000; in r1373f4_fini()
216 ram_wr32(fuc, 0x1373ec, tmp | (v1 << 16)); in r1373f4_fini()
217 ram_mask(fuc, 0x1373f0, (~ram->mode & 3), 0x00000000); in r1373f4_fini()
219 ram_mask(fuc, 0x1373f4, 0x00000003, 0x000000002); in r1373f4_fini()
220 ram_mask(fuc, 0x1373f4, 0x00001100, 0x000000000); in r1373f4_fini()
222 ram_mask(fuc, 0x1373f4, 0x00000003, 0x000000001); in r1373f4_fini()
223 ram_mask(fuc, 0x1373f4, 0x00010000, 0x000000000); in r1373f4_fini()
225 ram_mask(fuc, 0x10f800, 0x00000030, (v0 ^ v1) << 4); in r1373f4_fini()
233 struct ramfuc *fuc = &ram->fuc.base; in gk104_ram_nuts() local
244 nvkm_memx_wr32(fuc->memx, addr, next); in gk104_ram_nuts()
249 gk104_ram_nuts((s), &(s)->fuc.r_##r, (m), (d), (c))
254 struct gk104_ramfuc *fuc = &ram->fuc; in gk104_ram_calc_gddr5() local
260 ram_mask(fuc, 0x10f808, 0x40000000, 0x40000000); in gk104_ram_calc_gddr5()
261 ram_block(fuc); in gk104_ram_calc_gddr5()
262 ram_wr32(fuc, 0x62c000, 0x0f0f0000); in gk104_ram_calc_gddr5()
266 ram_mask(fuc, mr[1], 0x03c, ram->base.mr[1] & 0x03c); in gk104_ram_calc_gddr5()
270 if (vc == 1 && ram_have(fuc, gpio2E)) { in gk104_ram_calc_gddr5()
271 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[1]); in gk104_ram_calc_gddr5()
272 if (temp != ram_rd32(fuc, gpio2E)) { in gk104_ram_calc_gddr5()
273 ram_wr32(fuc, gpiotrig, 1); in gk104_ram_calc_gddr5()
274 ram_nsec(fuc, 20000); in gk104_ram_calc_gddr5()
278 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000000); in gk104_ram_calc_gddr5()
280 gk104_ram_train(fuc, 0x01020000, 0x000c0000); in gk104_ram_calc_gddr5()
282 ram_wr32(fuc, 0x10f210, 0x00000000); /* REFRESH_AUTO = 0 */ in gk104_ram_calc_gddr5()
283 ram_nsec(fuc, 1000); in gk104_ram_calc_gddr5()
284 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ in gk104_ram_calc_gddr5()
285 ram_nsec(fuc, 1000); in gk104_ram_calc_gddr5()
287 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); in gk104_ram_calc_gddr5()
288 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ in gk104_ram_calc_gddr5()
289 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); in gk104_ram_calc_gddr5()
290 ram_wr32(fuc, 0x10f090, 0x00000061); in gk104_ram_calc_gddr5()
291 ram_wr32(fuc, 0x10f090, 0xc000007f); in gk104_ram_calc_gddr5()
292 ram_nsec(fuc, 1000); in gk104_ram_calc_gddr5()
294 ram_wr32(fuc, 0x10f698, 0x00000000); in gk104_ram_calc_gddr5()
295 ram_wr32(fuc, 0x10f69c, 0x00000000); in gk104_ram_calc_gddr5()
304 if (ram_rd32(fuc, 0x10f978) & 0x00800000) in gk104_ram_calc_gddr5()
334 if (ram_rd32(fuc, 0x10f978) & 0x00800000) in gk104_ram_calc_gddr5()
337 ram_mask(fuc, 0x10f824, mask, data); in gk104_ram_calc_gddr5()
339 ram_mask(fuc, 0x132040, 0x00010000, 0x00000000); in gk104_ram_calc_gddr5()
342 ram_mask(fuc, 0x10f808, 0x00080000, 0x00000000); in gk104_ram_calc_gddr5()
343 ram_mask(fuc, 0x10f200, 0x18008000, 0x00008000); in gk104_ram_calc_gddr5()
344 ram_mask(fuc, 0x10f800, 0x00000000, 0x00000004); in gk104_ram_calc_gddr5()
345 ram_mask(fuc, 0x10f830, 0x00008000, 0x01040010); in gk104_ram_calc_gddr5()
346 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); in gk104_ram_calc_gddr5()
347 r1373f4_init(fuc); in gk104_ram_calc_gddr5()
348 ram_mask(fuc, 0x1373f0, 0x00000002, 0x00000001); in gk104_ram_calc_gddr5()
349 r1373f4_fini(fuc); in gk104_ram_calc_gddr5()
350 ram_mask(fuc, 0x10f830, 0x00c00000, 0x00240001); in gk104_ram_calc_gddr5()
353 r1373f4_init(fuc); in gk104_ram_calc_gddr5()
354 r1373f4_fini(fuc); in gk104_ram_calc_gddr5()
357 if (ram_have(fuc, gpioMV)) { in gk104_ram_calc_gddr5()
358 u32 temp = ram_mask(fuc, gpioMV, 0x3000, fuc->r_funcMV[mv]); in gk104_ram_calc_gddr5()
359 if (temp != ram_rd32(fuc, gpioMV)) { in gk104_ram_calc_gddr5()
360 ram_wr32(fuc, gpiotrig, 1); in gk104_ram_calc_gddr5()
361 ram_nsec(fuc, 64000); in gk104_ram_calc_gddr5()
367 ram_mask(fuc, 0x132040, 0x00010000, 0x00010000); in gk104_ram_calc_gddr5()
368 ram_nsec(fuc, 20000); in gk104_ram_calc_gddr5()
373 ram_mask(fuc, 0x10f200, 0x18000000, 0x18000000); in gk104_ram_calc_gddr5()
374 ram_mask(fuc, 0x10f800, 0x00000004, 0x00000000); in gk104_ram_calc_gddr5()
375 ram_mask(fuc, 0x1373f0, 0x00000000, 0x00000002); in gk104_ram_calc_gddr5()
376 ram_mask(fuc, 0x10f830, 0x00800001, 0x00408010); in gk104_ram_calc_gddr5()
377 r1373f4_init(fuc); in gk104_ram_calc_gddr5()
378 r1373f4_fini(fuc); in gk104_ram_calc_gddr5()
379 ram_mask(fuc, 0x10f808, 0x00000000, 0x00080000); in gk104_ram_calc_gddr5()
380 ram_mask(fuc, 0x10f200, 0x00808000, 0x00800000); in gk104_ram_calc_gddr5()
383 ram_mask(fuc, 0x10f800, 0x00000004, 0x00000000); in gk104_ram_calc_gddr5()
384 r1373f4_init(fuc); in gk104_ram_calc_gddr5()
385 r1373f4_fini(fuc); in gk104_ram_calc_gddr5()
390 ram_mask(fuc, 0x10f670, 0x80000000, 0x80000000); in gk104_ram_calc_gddr5()
393 ram_wr32(fuc, 0x10f65c, 0x00000011 * next->bios.rammap_11_11_0c); in gk104_ram_calc_gddr5()
394 ram_wr32(fuc, 0x10f6b8, 0x01010101 * next->bios.ramcfg_11_09); in gk104_ram_calc_gddr5()
395 ram_wr32(fuc, 0x10f6bc, 0x01010101 * next->bios.ramcfg_11_09); in gk104_ram_calc_gddr5()
398 ram_wr32(fuc, 0x10f698, 0x01010101 * next->bios.ramcfg_11_04); in gk104_ram_calc_gddr5()
399 ram_wr32(fuc, 0x10f69c, 0x01010101 * next->bios.ramcfg_11_04); in gk104_ram_calc_gddr5()
402 ram_wr32(fuc, 0x10f698, 0x00000000); in gk104_ram_calc_gddr5()
403 ram_wr32(fuc, 0x10f69c, 0x00000000); in gk104_ram_calc_gddr5()
408 ram_nuke(fuc, 0x10f694); in gk104_ram_calc_gddr5()
409 ram_mask(fuc, 0x10f694, 0xff00ff00, data); in gk104_ram_calc_gddr5()
416 ram_mask(fuc, 0x10f60c, 0x00000080, data); in gk104_ram_calc_gddr5()
430 ram_mask(fuc, 0x10f824, mask, data); in gk104_ram_calc_gddr5()
436 ram_mask(fuc, 0x10f200, 0x00001000, data); in gk104_ram_calc_gddr5()
438 if (ram_rd32(fuc, 0x10f670) & 0x80000000) { in gk104_ram_calc_gddr5()
439 ram_nsec(fuc, 10000); in gk104_ram_calc_gddr5()
440 ram_mask(fuc, 0x10f670, 0x80000000, 0x00000000); in gk104_ram_calc_gddr5()
447 ram_mask(fuc, 0x10f82c, 0x00100000, data); in gk104_ram_calc_gddr5()
456 ram_mask(fuc, 0x10f830, 0x00007000, data); in gk104_ram_calc_gddr5()
459 ram_mask(fuc, 0x10f248, 0xffffffff, next->bios.timing[10]); in gk104_ram_calc_gddr5()
460 ram_mask(fuc, 0x10f290, 0xffffffff, next->bios.timing[0]); in gk104_ram_calc_gddr5()
461 ram_mask(fuc, 0x10f294, 0xffffffff, next->bios.timing[1]); in gk104_ram_calc_gddr5()
462 ram_mask(fuc, 0x10f298, 0xffffffff, next->bios.timing[2]); in gk104_ram_calc_gddr5()
463 ram_mask(fuc, 0x10f29c, 0xffffffff, next->bios.timing[3]); in gk104_ram_calc_gddr5()
464 ram_mask(fuc, 0x10f2a0, 0xffffffff, next->bios.timing[4]); in gk104_ram_calc_gddr5()
465 ram_mask(fuc, 0x10f2a4, 0xffffffff, next->bios.timing[5]); in gk104_ram_calc_gddr5()
466 ram_mask(fuc, 0x10f2a8, 0xffffffff, next->bios.timing[6]); in gk104_ram_calc_gddr5()
467 ram_mask(fuc, 0x10f2ac, 0xffffffff, next->bios.timing[7]); in gk104_ram_calc_gddr5()
468 ram_mask(fuc, 0x10f2cc, 0xffffffff, next->bios.timing[8]); in gk104_ram_calc_gddr5()
469 ram_mask(fuc, 0x10f2e8, 0xffffffff, next->bios.timing[9]); in gk104_ram_calc_gddr5()
477 ram_mask(fuc, 0x10f200, mask, data); in gk104_ram_calc_gddr5()
489 ram_mask(fuc, 0x10f604, mask, data); in gk104_ram_calc_gddr5()
501 ram_mask(fuc, 0x10f614, mask, data); in gk104_ram_calc_gddr5()
513 ram_mask(fuc, 0x10f610, mask, data); in gk104_ram_calc_gddr5()
537 ram_mask(fuc, 0x10f808, mask, data); in gk104_ram_calc_gddr5()
539 ram_wr32(fuc, 0x10f870, 0x11111111 * next->bios.ramcfg_11_03_0f); in gk104_ram_calc_gddr5()
552 if ((ram_mask(fuc, 0x100770, mask, data) & mask & 4) != (data & 4)) { in gk104_ram_calc_gddr5()
553 ram_mask(fuc, 0x100750, 0x00000008, 0x00000008); in gk104_ram_calc_gddr5()
554 ram_wr32(fuc, 0x100710, 0x00000000); in gk104_ram_calc_gddr5()
555 ram_wait(fuc, 0x100710, 0x80000000, 0x80000000, 200000); in gk104_ram_calc_gddr5()
561 ram_mask(fuc, 0x100778, 0x00000700, data); in gk104_ram_calc_gddr5()
563 ram_mask(fuc, 0x10f250, 0x000003f0, next->bios.timing_20_2c_003f << 4); in gk104_ram_calc_gddr5()
567 ram_mask(fuc, 0x10f24c, 0x7f000000, data << 24); in gk104_ram_calc_gddr5()
568 ram_mask(fuc, 0x10f224, 0x001f0000, next->bios.timing_20_30_f8 << 16); in gk104_ram_calc_gddr5()
570 ram_mask(fuc, 0x10fec4, 0x041e0f07, next->bios.timing_20_31_0800 << 26 | in gk104_ram_calc_gddr5()
574 ram_mask(fuc, 0x10fec8, 0x00000027, next->bios.timing_20_31_8000 << 5 | in gk104_ram_calc_gddr5()
577 ram_wr32(fuc, 0x10f090, 0x4000007e); in gk104_ram_calc_gddr5()
578 ram_nsec(fuc, 2000); in gk104_ram_calc_gddr5()
579 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ in gk104_ram_calc_gddr5()
580 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ in gk104_ram_calc_gddr5()
581 ram_wr32(fuc, 0x10f210, 0x80000000); /* REFRESH_AUTO = 1 */ in gk104_ram_calc_gddr5()
584 u32 temp = ram_mask(fuc, 0x10f294, 0xff000000, 0x24000000); in gk104_ram_calc_gddr5()
585 gk104_ram_train(fuc, 0xbc0e0000, 0xa4010000); /*XXX*/ in gk104_ram_calc_gddr5()
586 ram_nsec(fuc, 1000); in gk104_ram_calc_gddr5()
587 ram_wr32(fuc, 0x10f294, temp); in gk104_ram_calc_gddr5()
590 ram_mask(fuc, mr[3], 0xfff, ram->base.mr[3]); in gk104_ram_calc_gddr5()
591 ram_wr32(fuc, mr[0], ram->base.mr[0]); in gk104_ram_calc_gddr5()
592 ram_mask(fuc, mr[8], 0xfff, ram->base.mr[8]); in gk104_ram_calc_gddr5()
593 ram_nsec(fuc, 1000); in gk104_ram_calc_gddr5()
594 ram_mask(fuc, mr[1], 0xfff, ram->base.mr[1]); in gk104_ram_calc_gddr5()
595 ram_mask(fuc, mr[5], 0xfff, ram->base.mr[5] & ~0x004); /* LP3 later */ in gk104_ram_calc_gddr5()
596 ram_mask(fuc, mr[6], 0xfff, ram->base.mr[6]); in gk104_ram_calc_gddr5()
597 ram_mask(fuc, mr[7], 0xfff, ram->base.mr[7]); in gk104_ram_calc_gddr5()
599 if (vc == 0 && ram_have(fuc, gpio2E)) { in gk104_ram_calc_gddr5()
600 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[0]); in gk104_ram_calc_gddr5()
601 if (temp != ram_rd32(fuc, gpio2E)) { in gk104_ram_calc_gddr5()
602 ram_wr32(fuc, gpiotrig, 1); in gk104_ram_calc_gddr5()
603 ram_nsec(fuc, 20000); in gk104_ram_calc_gddr5()
607 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); in gk104_ram_calc_gddr5()
608 ram_wr32(fuc, 0x10f318, 0x00000001); /* NOP? */ in gk104_ram_calc_gddr5()
609 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); in gk104_ram_calc_gddr5()
610 ram_nsec(fuc, 1000); in gk104_ram_calc_gddr5()
613 data = ram_rd32(fuc, 0x10f978); in gk104_ram_calc_gddr5()
624 ram_wr32(fuc, 0x10f978, data); in gk104_ram_calc_gddr5()
627 data = ram_rd32(fuc, 0x10f830) | 0x00000001; in gk104_ram_calc_gddr5()
628 ram_wr32(fuc, 0x10f830, data); in gk104_ram_calc_gddr5()
640 gk104_ram_train(fuc, 0xbc0f0000, data); in gk104_ram_calc_gddr5()
642 ram_nsec(fuc, 1000); in gk104_ram_calc_gddr5()
645 ram_mask(fuc, 0x10f800, 0x00000004, 0x00000004); in gk104_ram_calc_gddr5()
649 if (ram_mask(fuc, mr[5], 0x004, ram->base.mr[5]) != ram->base.mr[5]) in gk104_ram_calc_gddr5()
650 ram_nsec(fuc, 1000); in gk104_ram_calc_gddr5()
653 ram_mask(fuc, 0x10f830, 0x01000000, 0x01000000); in gk104_ram_calc_gddr5()
654 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); in gk104_ram_calc_gddr5()
658 gk104_ram_train(fuc, 0x80020000, 0x01000000); in gk104_ram_calc_gddr5()
660 ram_unblock(fuc); in gk104_ram_calc_gddr5()
661 ram_wr32(fuc, 0x62c000, 0x0f0f0f00); in gk104_ram_calc_gddr5()
667 ram_mask(fuc, 0x10f200, 0x00000800, data); in gk104_ram_calc_gddr5()
677 nvkm_sddr3_dll_reset(struct gk104_ramfuc *fuc) in nvkm_sddr3_dll_reset() argument
679 ram_nuke(fuc, mr[0]); in nvkm_sddr3_dll_reset()
680 ram_mask(fuc, mr[0], 0x100, 0x100); in nvkm_sddr3_dll_reset()
681 ram_mask(fuc, mr[0], 0x100, 0x000); in nvkm_sddr3_dll_reset()
685 nvkm_sddr3_dll_disable(struct gk104_ramfuc *fuc) in nvkm_sddr3_dll_disable() argument
687 u32 mr1_old = ram_rd32(fuc, mr[1]); in nvkm_sddr3_dll_disable()
690 ram_mask(fuc, mr[1], 0x1, 0x1); in nvkm_sddr3_dll_disable()
691 ram_nsec(fuc, 1000); in nvkm_sddr3_dll_disable()
698 struct gk104_ramfuc *fuc = &ram->fuc; in gk104_ram_calc_sddr3() local
707 ram_mask(fuc, 0x10f808, 0x40000000, 0x40000000); in gk104_ram_calc_sddr3()
708 ram_block(fuc); in gk104_ram_calc_sddr3()
709 ram_wr32(fuc, 0x62c000, 0x0f0f0000); in gk104_ram_calc_sddr3()
711 if (vc == 1 && ram_have(fuc, gpio2E)) { in gk104_ram_calc_sddr3()
712 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[1]); in gk104_ram_calc_sddr3()
713 if (temp != ram_rd32(fuc, gpio2E)) { in gk104_ram_calc_sddr3()
714 ram_wr32(fuc, gpiotrig, 1); in gk104_ram_calc_sddr3()
715 ram_nsec(fuc, 20000); in gk104_ram_calc_sddr3()
719 ram_mask(fuc, 0x10f200, 0x00000800, 0x00000000); in gk104_ram_calc_sddr3()
721 ram_mask(fuc, 0x10f808, 0x04000000, 0x04000000); in gk104_ram_calc_sddr3()
723 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ in gk104_ram_calc_sddr3()
726 nvkm_sddr3_dll_disable(fuc); in gk104_ram_calc_sddr3()
728 ram_wr32(fuc, 0x10f210, 0x00000000); /* REFRESH_AUTO = 0 */ in gk104_ram_calc_sddr3()
729 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ in gk104_ram_calc_sddr3()
730 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); in gk104_ram_calc_sddr3()
731 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ in gk104_ram_calc_sddr3()
732 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); in gk104_ram_calc_sddr3()
733 ram_nsec(fuc, 1000); in gk104_ram_calc_sddr3()
735 ram_wr32(fuc, 0x10f090, 0x00000060); in gk104_ram_calc_sddr3()
736 ram_wr32(fuc, 0x10f090, 0xc000007e); in gk104_ram_calc_sddr3()
774 ram_mask(fuc, 0x10f824, mask, data); in gk104_ram_calc_sddr3()
776 ram_mask(fuc, 0x132040, 0x00010000, 0x00000000); in gk104_ram_calc_sddr3()
778 ram_mask(fuc, 0x1373f4, 0x00000000, 0x00010010); in gk104_ram_calc_sddr3()
779 data = ram_rd32(fuc, 0x1373ec) & ~0x00030000; in gk104_ram_calc_sddr3()
781 ram_wr32(fuc, 0x1373ec, data); in gk104_ram_calc_sddr3()
782 ram_mask(fuc, 0x1373f4, 0x00000003, 0x00000000); in gk104_ram_calc_sddr3()
783 ram_mask(fuc, 0x1373f4, 0x00000010, 0x00000000); in gk104_ram_calc_sddr3()
786 if ((ram_rd32(fuc, 0x132024) & 0xffffffff) != rcoef || in gk104_ram_calc_sddr3()
787 (ram_rd32(fuc, 0x132034) & 0x0000ffff) != runk1) { in gk104_ram_calc_sddr3()
788 ram_mask(fuc, 0x132000, 0x00000001, 0x00000000); in gk104_ram_calc_sddr3()
789 ram_mask(fuc, 0x132020, 0x00000001, 0x00000000); in gk104_ram_calc_sddr3()
790 ram_wr32(fuc, 0x137320, 0x00000000); in gk104_ram_calc_sddr3()
791 ram_mask(fuc, 0x132030, 0xffff0000, runk0); in gk104_ram_calc_sddr3()
792 ram_mask(fuc, 0x132034, 0x0000ffff, runk1); in gk104_ram_calc_sddr3()
793 ram_wr32(fuc, 0x132024, rcoef); in gk104_ram_calc_sddr3()
794 ram_mask(fuc, 0x132028, 0x00080000, 0x00080000); in gk104_ram_calc_sddr3()
795 ram_mask(fuc, 0x132020, 0x00000001, 0x00000001); in gk104_ram_calc_sddr3()
796 ram_wait(fuc, 0x137390, 0x00020000, 0x00020000, 64000); in gk104_ram_calc_sddr3()
797 ram_mask(fuc, 0x132028, 0x00080000, 0x00000000); in gk104_ram_calc_sddr3()
800 ram_mask(fuc, 0x1373f4, 0x00000010, 0x00000010); in gk104_ram_calc_sddr3()
801 ram_mask(fuc, 0x1373f4, 0x00000003, 0x00000001); in gk104_ram_calc_sddr3()
802 ram_mask(fuc, 0x1373f4, 0x00010000, 0x00000000); in gk104_ram_calc_sddr3()
804 if (ram_have(fuc, gpioMV)) { in gk104_ram_calc_sddr3()
805 u32 temp = ram_mask(fuc, gpioMV, 0x3000, fuc->r_funcMV[mv]); in gk104_ram_calc_sddr3()
806 if (temp != ram_rd32(fuc, gpioMV)) { in gk104_ram_calc_sddr3()
807 ram_wr32(fuc, gpiotrig, 1); in gk104_ram_calc_sddr3()
808 ram_nsec(fuc, 64000); in gk104_ram_calc_sddr3()
814 ram_mask(fuc, 0x132040, 0x00010000, 0x00010000); in gk104_ram_calc_sddr3()
815 ram_nsec(fuc, 20000); in gk104_ram_calc_sddr3()
820 ram_mask(fuc, 0x10f670, 0x80000000, 0x80000000); in gk104_ram_calc_sddr3()
823 ram_wr32(fuc, 0x10f65c, 0x00000011 * next->bios.rammap_11_11_0c); in gk104_ram_calc_sddr3()
824 ram_wr32(fuc, 0x10f6b8, 0x01010101 * next->bios.ramcfg_11_09); in gk104_ram_calc_sddr3()
825 ram_wr32(fuc, 0x10f6bc, 0x01010101 * next->bios.ramcfg_11_09); in gk104_ram_calc_sddr3()
839 ram_mask(fuc, 0x10f824, mask, data); in gk104_ram_calc_sddr3()
840 ram_nsec(fuc, 1000); in gk104_ram_calc_sddr3()
846 ram_mask(fuc, 0x10f82c, 0x00100000, data); in gk104_ram_calc_sddr3()
849 ram_mask(fuc, 0x10f248, 0xffffffff, next->bios.timing[10]); in gk104_ram_calc_sddr3()
850 ram_mask(fuc, 0x10f290, 0xffffffff, next->bios.timing[0]); in gk104_ram_calc_sddr3()
851 ram_mask(fuc, 0x10f294, 0xffffffff, next->bios.timing[1]); in gk104_ram_calc_sddr3()
852 ram_mask(fuc, 0x10f298, 0xffffffff, next->bios.timing[2]); in gk104_ram_calc_sddr3()
853 ram_mask(fuc, 0x10f29c, 0xffffffff, next->bios.timing[3]); in gk104_ram_calc_sddr3()
854 ram_mask(fuc, 0x10f2a0, 0xffffffff, next->bios.timing[4]); in gk104_ram_calc_sddr3()
855 ram_mask(fuc, 0x10f2a4, 0xffffffff, next->bios.timing[5]); in gk104_ram_calc_sddr3()
856 ram_mask(fuc, 0x10f2a8, 0xffffffff, next->bios.timing[6]); in gk104_ram_calc_sddr3()
857 ram_mask(fuc, 0x10f2ac, 0xffffffff, next->bios.timing[7]); in gk104_ram_calc_sddr3()
858 ram_mask(fuc, 0x10f2cc, 0xffffffff, next->bios.timing[8]); in gk104_ram_calc_sddr3()
859 ram_mask(fuc, 0x10f2e8, 0xffffffff, next->bios.timing[9]); in gk104_ram_calc_sddr3()
884 ram_mask(fuc, 0x10f808, mask, data); in gk104_ram_calc_sddr3()
886 ram_wr32(fuc, 0x10f870, 0x11111111 * next->bios.ramcfg_11_03_0f); in gk104_ram_calc_sddr3()
888 ram_mask(fuc, 0x10f250, 0x000003f0, next->bios.timing_20_2c_003f << 4); in gk104_ram_calc_sddr3()
893 ram_mask(fuc, 0x10f24c, 0x7f000000, data << 24); in gk104_ram_calc_sddr3()
895 ram_mask(fuc, 0x10f224, 0x001f0000, next->bios.timing_20_30_f8 << 16); in gk104_ram_calc_sddr3()
897 ram_wr32(fuc, 0x10f090, 0x4000007f); in gk104_ram_calc_sddr3()
898 ram_nsec(fuc, 1000); in gk104_ram_calc_sddr3()
900 ram_wr32(fuc, 0x10f314, 0x00000001); /* PRECHARGE */ in gk104_ram_calc_sddr3()
901 ram_wr32(fuc, 0x10f310, 0x00000001); /* REFRESH */ in gk104_ram_calc_sddr3()
902 ram_wr32(fuc, 0x10f210, 0x80000000); /* REFRESH_AUTO = 1 */ in gk104_ram_calc_sddr3()
903 ram_nsec(fuc, 1000); in gk104_ram_calc_sddr3()
906 ram_mask(fuc, mr[1], 0x1, 0x0); in gk104_ram_calc_sddr3()
907 nvkm_sddr3_dll_reset(fuc); in gk104_ram_calc_sddr3()
910 ram_mask(fuc, mr[2], 0x00000fff, ram->base.mr[2]); in gk104_ram_calc_sddr3()
911 ram_mask(fuc, mr[1], 0xffffffff, ram->base.mr[1]); in gk104_ram_calc_sddr3()
912 ram_wr32(fuc, mr[0], ram->base.mr[0]); in gk104_ram_calc_sddr3()
913 ram_nsec(fuc, 1000); in gk104_ram_calc_sddr3()
916 nvkm_sddr3_dll_reset(fuc); in gk104_ram_calc_sddr3()
917 ram_nsec(fuc, 1000); in gk104_ram_calc_sddr3()
920 if (vc == 0 && ram_have(fuc, gpio2E)) { in gk104_ram_calc_sddr3()
921 u32 temp = ram_mask(fuc, gpio2E, 0x3000, fuc->r_func2E[0]); in gk104_ram_calc_sddr3()
922 if (temp != ram_rd32(fuc, gpio2E)) { in gk104_ram_calc_sddr3()
923 ram_wr32(fuc, gpiotrig, 1); in gk104_ram_calc_sddr3()
924 ram_nsec(fuc, 20000); in gk104_ram_calc_sddr3()
929 ram_mask(fuc, 0x10f830, 0x01000000, 0x01000000); in gk104_ram_calc_sddr3()
930 ram_mask(fuc, 0x10f830, 0x01000000, 0x00000000); in gk104_ram_calc_sddr3()
933 ram_mask(fuc, 0x10f200, 0x80000000, 0x80000000); in gk104_ram_calc_sddr3()
934 ram_wr32(fuc, 0x10f318, 0x00000001); /* NOP? */ in gk104_ram_calc_sddr3()
935 ram_mask(fuc, 0x10f200, 0x80000000, 0x00000000); in gk104_ram_calc_sddr3()
936 ram_nsec(fuc, 1000); in gk104_ram_calc_sddr3()
938 ram_unblock(fuc); in gk104_ram_calc_sddr3()
939 ram_wr32(fuc, 0x62c000, 0x0f0f0f00); in gk104_ram_calc_sddr3()
945 ram_mask(fuc, 0x10f200, 0x00000800, data); in gk104_ram_calc_sddr3()
1037 struct gk104_ramfuc *fuc = &ram->fuc; in gk104_ram_calc_xits() local
1042 ret = ram_init(fuc, ram->base.fb); in gk104_ram_calc_xits()
1046 ram->mode = (next->freq > fuc->refpll.vco1.max_freq) ? 2 : 1; in gk104_ram_calc_xits()
1047 ram->from = ram_rd32(fuc, 0x1373f4) & 0x0000000f; in gk104_ram_calc_xits()
1062 fuc->mempll.refclk = ret; in gk104_ram_calc_xits()
1071 ret = gt215_pll_calc(subdev, &fuc->refpll, refclk, &ram->N1, in gk104_ram_calc_xits()
1073 fuc->mempll.refclk = ret; in gk104_ram_calc_xits()
1080 for (i = 0; i < ARRAY_SIZE(fuc->r_mr); i++) { in gk104_ram_calc_xits()
1081 if (ram_have(fuc, mr[i])) in gk104_ram_calc_xits()
1082 ram->base.mr[i] = ram_rd32(fuc, mr[i]); in gk104_ram_calc_xits()
1228 struct gk104_ramfuc *fuc = &ram->fuc; in gk104_ram_prog() local
1233 ram_exec(fuc, false); in gk104_ram_prog()
1238 ram_exec(fuc, true); in gk104_ram_prog()
1249 ram_exec(&ram->fuc, false); in gk104_ram_tidy()
1592 ret = nvbios_pll_parse(bios, 0x0c, &ram->fuc.refpll); in gk104_ram_new()
1598 ret = nvbios_pll_parse(bios, 0x04, &ram->fuc.mempll); in gk104_ram_new()
1607 ram->fuc.r_gpioMV = ramfuc_reg(0x00d610 + (func.line * 0x04)); in gk104_ram_new()
1608 ram->fuc.r_funcMV[0] = (func.log[0] ^ 2) << 12; in gk104_ram_new()
1609 ram->fuc.r_funcMV[1] = (func.log[1] ^ 2) << 12; in gk104_ram_new()
1614 ram->fuc.r_gpio2E = ramfuc_reg(0x00d610 + (func.line * 0x04)); in gk104_ram_new()
1615 ram->fuc.r_func2E[0] = (func.log[0] ^ 2) << 12; in gk104_ram_new()
1616 ram->fuc.r_func2E[1] = (func.log[1] ^ 2) << 12; in gk104_ram_new()
1619 ram->fuc.r_gpiotrig = ramfuc_reg(0x00d604); in gk104_ram_new()
1621 ram->fuc.r_0x132020 = ramfuc_reg(0x132020); in gk104_ram_new()
1622 ram->fuc.r_0x132028 = ramfuc_reg(0x132028); in gk104_ram_new()
1623 ram->fuc.r_0x132024 = ramfuc_reg(0x132024); in gk104_ram_new()
1624 ram->fuc.r_0x132030 = ramfuc_reg(0x132030); in gk104_ram_new()
1625 ram->fuc.r_0x132034 = ramfuc_reg(0x132034); in gk104_ram_new()
1626 ram->fuc.r_0x132000 = ramfuc_reg(0x132000); in gk104_ram_new()
1627 ram->fuc.r_0x132004 = ramfuc_reg(0x132004); in gk104_ram_new()
1628 ram->fuc.r_0x132040 = ramfuc_reg(0x132040); in gk104_ram_new()
1630 ram->fuc.r_0x10f248 = ramfuc_reg(0x10f248); in gk104_ram_new()
1631 ram->fuc.r_0x10f290 = ramfuc_reg(0x10f290); in gk104_ram_new()
1632 ram->fuc.r_0x10f294 = ramfuc_reg(0x10f294); in gk104_ram_new()
1633 ram->fuc.r_0x10f298 = ramfuc_reg(0x10f298); in gk104_ram_new()
1634 ram->fuc.r_0x10f29c = ramfuc_reg(0x10f29c); in gk104_ram_new()
1635 ram->fuc.r_0x10f2a0 = ramfuc_reg(0x10f2a0); in gk104_ram_new()
1636 ram->fuc.r_0x10f2a4 = ramfuc_reg(0x10f2a4); in gk104_ram_new()
1637 ram->fuc.r_0x10f2a8 = ramfuc_reg(0x10f2a8); in gk104_ram_new()
1638 ram->fuc.r_0x10f2ac = ramfuc_reg(0x10f2ac); in gk104_ram_new()
1639 ram->fuc.r_0x10f2cc = ramfuc_reg(0x10f2cc); in gk104_ram_new()
1640 ram->fuc.r_0x10f2e8 = ramfuc_reg(0x10f2e8); in gk104_ram_new()
1641 ram->fuc.r_0x10f250 = ramfuc_reg(0x10f250); in gk104_ram_new()
1642 ram->fuc.r_0x10f24c = ramfuc_reg(0x10f24c); in gk104_ram_new()
1643 ram->fuc.r_0x10fec4 = ramfuc_reg(0x10fec4); in gk104_ram_new()
1644 ram->fuc.r_0x10fec8 = ramfuc_reg(0x10fec8); in gk104_ram_new()
1645 ram->fuc.r_0x10f604 = ramfuc_reg(0x10f604); in gk104_ram_new()
1646 ram->fuc.r_0x10f614 = ramfuc_reg(0x10f614); in gk104_ram_new()
1647 ram->fuc.r_0x10f610 = ramfuc_reg(0x10f610); in gk104_ram_new()
1648 ram->fuc.r_0x100770 = ramfuc_reg(0x100770); in gk104_ram_new()
1649 ram->fuc.r_0x100778 = ramfuc_reg(0x100778); in gk104_ram_new()
1650 ram->fuc.r_0x10f224 = ramfuc_reg(0x10f224); in gk104_ram_new()
1652 ram->fuc.r_0x10f870 = ramfuc_reg(0x10f870); in gk104_ram_new()
1653 ram->fuc.r_0x10f698 = ramfuc_reg(0x10f698); in gk104_ram_new()
1654 ram->fuc.r_0x10f694 = ramfuc_reg(0x10f694); in gk104_ram_new()
1655 ram->fuc.r_0x10f6b8 = ramfuc_reg(0x10f6b8); in gk104_ram_new()
1656 ram->fuc.r_0x10f808 = ramfuc_reg(0x10f808); in gk104_ram_new()
1657 ram->fuc.r_0x10f670 = ramfuc_reg(0x10f670); in gk104_ram_new()
1658 ram->fuc.r_0x10f60c = ramfuc_reg(0x10f60c); in gk104_ram_new()
1659 ram->fuc.r_0x10f830 = ramfuc_reg(0x10f830); in gk104_ram_new()
1660 ram->fuc.r_0x1373ec = ramfuc_reg(0x1373ec); in gk104_ram_new()
1661 ram->fuc.r_0x10f800 = ramfuc_reg(0x10f800); in gk104_ram_new()
1662 ram->fuc.r_0x10f82c = ramfuc_reg(0x10f82c); in gk104_ram_new()
1664 ram->fuc.r_0x10f978 = ramfuc_reg(0x10f978); in gk104_ram_new()
1665 ram->fuc.r_0x10f910 = ramfuc_reg(0x10f910); in gk104_ram_new()
1666 ram->fuc.r_0x10f914 = ramfuc_reg(0x10f914); in gk104_ram_new()
1670 ram->fuc.r_mr[0] = ramfuc_reg(0x10f300); in gk104_ram_new()
1671 ram->fuc.r_mr[1] = ramfuc_reg(0x10f330); in gk104_ram_new()
1672 ram->fuc.r_mr[2] = ramfuc_reg(0x10f334); in gk104_ram_new()
1673 ram->fuc.r_mr[3] = ramfuc_reg(0x10f338); in gk104_ram_new()
1674 ram->fuc.r_mr[4] = ramfuc_reg(0x10f33c); in gk104_ram_new()
1675 ram->fuc.r_mr[5] = ramfuc_reg(0x10f340); in gk104_ram_new()
1676 ram->fuc.r_mr[6] = ramfuc_reg(0x10f344); in gk104_ram_new()
1677 ram->fuc.r_mr[7] = ramfuc_reg(0x10f348); in gk104_ram_new()
1678 ram->fuc.r_mr[8] = ramfuc_reg(0x10f354); in gk104_ram_new()
1679 ram->fuc.r_mr[15] = ramfuc_reg(0x10f34c); in gk104_ram_new()
1682 ram->fuc.r_mr[0] = ramfuc_reg(0x10f300); in gk104_ram_new()
1683 ram->fuc.r_mr[1] = ramfuc_reg(0x10f304); in gk104_ram_new()
1684 ram->fuc.r_mr[2] = ramfuc_reg(0x10f320); in gk104_ram_new()
1690 ram->fuc.r_0x62c000 = ramfuc_reg(0x62c000); in gk104_ram_new()
1691 ram->fuc.r_0x10f200 = ramfuc_reg(0x10f200); in gk104_ram_new()
1692 ram->fuc.r_0x10f210 = ramfuc_reg(0x10f210); in gk104_ram_new()
1693 ram->fuc.r_0x10f310 = ramfuc_reg(0x10f310); in gk104_ram_new()
1694 ram->fuc.r_0x10f314 = ramfuc_reg(0x10f314); in gk104_ram_new()
1695 ram->fuc.r_0x10f318 = ramfuc_reg(0x10f318); in gk104_ram_new()
1696 ram->fuc.r_0x10f090 = ramfuc_reg(0x10f090); in gk104_ram_new()
1697 ram->fuc.r_0x10f69c = ramfuc_reg(0x10f69c); in gk104_ram_new()
1698 ram->fuc.r_0x10f824 = ramfuc_reg(0x10f824); in gk104_ram_new()
1699 ram->fuc.r_0x1373f0 = ramfuc_reg(0x1373f0); in gk104_ram_new()
1700 ram->fuc.r_0x1373f4 = ramfuc_reg(0x1373f4); in gk104_ram_new()
1701 ram->fuc.r_0x137320 = ramfuc_reg(0x137320); in gk104_ram_new()
1702 ram->fuc.r_0x10f65c = ramfuc_reg(0x10f65c); in gk104_ram_new()
1703 ram->fuc.r_0x10f6bc = ramfuc_reg(0x10f6bc); in gk104_ram_new()
1704 ram->fuc.r_0x100710 = ramfuc_reg(0x100710); in gk104_ram_new()
1705 ram->fuc.r_0x100750 = ramfuc_reg(0x100750); in gk104_ram_new()