Lines Matching refs:pfb
157 gt215_link_train(struct nvkm_fb *pfb) in gt215_link_train() argument
159 struct nvkm_bios *bios = nvkm_bios(pfb); in gt215_link_train()
160 struct gt215_ram *ram = (void *)pfb->ram; in gt215_link_train()
161 struct nvkm_clk *clk = nvkm_clk(pfb); in gt215_link_train()
163 struct nvkm_device *device = nv_device(pfb); in gt215_link_train()
195 ret = ram->base.calc(pfb, (u32) M0205T.freq * 1000); in gt215_link_train()
200 nv_wr32(pfb, 0x111400, 0x00000000); in gt215_link_train()
202 nv_mask(pfb, 0x100674, 0x0000ffff, 0x00000000); in gt215_link_train()
203 nv_mask(pfb, 0x1005e4, 0x0000ffff, 0x00000000); in gt215_link_train()
204 nv_mask(pfb, 0x100b0c, 0x000000ff, 0x00000000); in gt215_link_train()
205 nv_wr32(pfb, 0x100c04, 0x00000400); in gt215_link_train()
238 ram->base.calc(pfb, clk_current); in gt215_link_train()
242 nv_mask(pfb, 0x616308, 0x10, 0x10); in gt215_link_train()
243 nv_mask(pfb, 0x616b08, 0x10, 0x10); in gt215_link_train()
247 ram_train_result(pfb, result, 64); in gt215_link_train()
249 nv_debug(pfb, "Train: %08x", result[i]); in gt215_link_train()
252 nv_debug(pfb, "Train: %08x %08x %08x", train->r_100720, in gt215_link_train()
272 gt215_link_train_init(struct nvkm_fb *pfb) in gt215_link_train_init() argument
280 struct nvkm_bios *bios = nvkm_bios(pfb); in gt215_link_train_init()
281 struct gt215_ram *ram = (void *)pfb->ram; in gt215_link_train_init()
301 ret = pfb->ram->get(pfb, 0x8000, 0x10000, 0, 0x800, &ram->ltrain.mem); in gt215_link_train_init()
307 nv_wr32(pfb, 0x100538, 0x10000000 | (mem->offset >> 16)); in gt215_link_train_init()
308 nv_wr32(pfb, 0x1005a8, 0x0000ffff); in gt215_link_train_init()
309 nv_mask(pfb, 0x10f800, 0x00000001, 0x00000001); in gt215_link_train_init()
312 nv_wr32(pfb, 0x10f8c0, (i << 8) | i); in gt215_link_train_init()
313 nv_wr32(pfb, 0x10f900, pattern[i % 16]); in gt215_link_train_init()
317 nv_wr32(pfb, 0x10f8e0, (i << 8) | i); in gt215_link_train_init()
318 nv_wr32(pfb, 0x10f920, pattern[i % 16]); in gt215_link_train_init()
322 r001700 = nv_rd32(pfb, 0x1700); in gt215_link_train_init()
323 nv_wr32(pfb, 0x1700, mem->offset >> 16); in gt215_link_train_init()
325 nv_wr32(pfb, 0x700000 + (i << 2), pattern[i]); in gt215_link_train_init()
327 nv_wr32(pfb, 0x700100 + (i << 2), pattern[i]); in gt215_link_train_init()
328 nv_wr32(pfb, 0x1700, r001700); in gt215_link_train_init()
330 train->r_100720 = nv_rd32(pfb, 0x100720); in gt215_link_train_init()
331 train->r_1111e0 = nv_rd32(pfb, 0x1111e0); in gt215_link_train_init()
332 train->r_111400 = nv_rd32(pfb, 0x111400); in gt215_link_train_init()
337 gt215_link_train_fini(struct nvkm_fb *pfb) in gt215_link_train_fini() argument
339 struct gt215_ram *ram = (void *)pfb->ram; in gt215_link_train_fini()
342 pfb->ram->put(pfb, &ram->ltrain.mem); in gt215_link_train_fini()
350 gt215_ram_timing_calc(struct nvkm_fb *pfb, u32 *timing) in gt215_ram_timing_calc() argument
352 struct gt215_ram *ram = (void *)pfb->ram; in gt215_ram_timing_calc()
357 cur2 = nv_rd32(pfb, 0x100228); in gt215_ram_timing_calc()
358 cur3 = nv_rd32(pfb, 0x10022c); in gt215_ram_timing_calc()
359 cur7 = nv_rd32(pfb, 0x10023c); in gt215_ram_timing_calc()
360 cur8 = nv_rd32(pfb, 0x100240); in gt215_ram_timing_calc()
415 nv_debug(pfb, "Entry: 220: %08x %08x %08x %08x\n", in gt215_ram_timing_calc()
417 nv_debug(pfb, " 230: %08x %08x %08x %08x\n", in gt215_ram_timing_calc()
419 nv_debug(pfb, " 240: %08x\n", timing[8]); in gt215_ram_timing_calc()
469 struct nvkm_gpio *gpio = nvkm_gpio(fuc->base.pfb); in gt215_ram_fbvref()
490 gt215_ram_calc(struct nvkm_fb *pfb, u32 freq) in gt215_ram_calc() argument
492 struct nvkm_bios *bios = nvkm_bios(pfb); in gt215_ram_calc()
493 struct gt215_ram *ram = (void *)pfb->ram; in gt215_ram_calc()
511 gt215_link_train(pfb); in gt215_ram_calc()
518 nv_error(pfb, "invalid/missing rammap entry\n"); in gt215_ram_calc()
523 strap = nvbios_ramcfg_index(nv_subdev(pfb)); in gt215_ram_calc()
525 nv_error(pfb, "invalid ramcfg strap\n"); in gt215_ram_calc()
532 nv_error(pfb, "invalid/missing ramcfg entry\n"); in gt215_ram_calc()
542 nv_error(pfb, "invalid/missing timing entry\n"); in gt215_ram_calc()
547 ret = gt215_pll_info(nvkm_clk(pfb), 0x12, 0x4000, freq, &mclk); in gt215_ram_calc()
549 nv_error(pfb, "failed mclk calculation\n"); in gt215_ram_calc()
553 gt215_ram_timing_calc(pfb, timing); in gt215_ram_calc()
555 ret = ram_init(fuc, pfb); in gt215_ram_calc()
653 if (nv_device(pfb)->chipset == 0xa3 && freq <= 500000) in gt215_ram_calc()
711 if (nv_device(pfb)->chipset == 0xa3 && freq > 500000) { in gt215_ram_calc()
756 if (nv_device(pfb)->chipset != 0xa8) in gt215_ram_calc()
772 if (nv_device(pfb)->chipset == 0xa8) { in gt215_ram_calc()
858 gt215_ram_prog(struct nvkm_fb *pfb) in gt215_ram_prog() argument
860 struct nvkm_device *device = nv_device(pfb); in gt215_ram_prog()
861 struct gt215_ram *ram = (void *)pfb->ram; in gt215_ram_prog()
866 nv_mask(pfb, 0x001534, 0x2, 0x2); in gt215_ram_prog()
871 nv_mask(pfb, 0x002504, 0x1, 0x0); in gt215_ram_prog()
872 nv_mask(pfb, 0x001534, 0x2, 0x0); in gt215_ram_prog()
874 nv_mask(pfb, 0x616308, 0x10, 0x10); in gt215_ram_prog()
875 nv_mask(pfb, 0x616b08, 0x10, 0x10); in gt215_ram_prog()
883 gt215_ram_tidy(struct nvkm_fb *pfb) in gt215_ram_tidy() argument
885 struct gt215_ram *ram = (void *)pfb->ram; in gt215_ram_tidy()
893 struct nvkm_fb *pfb = (void *)object->parent; in gt215_ram_init() local
901 gt215_link_train_init(pfb); in gt215_ram_init()
908 struct nvkm_fb *pfb = (void *)object->parent; in gt215_ram_fini() local
911 gt215_link_train_fini(pfb); in gt215_ram_fini()
921 struct nvkm_fb *pfb = nvkm_fb(parent); in gt215_ram_ctor() local
922 struct nvkm_gpio *gpio = nvkm_gpio(pfb); in gt215_ram_ctor()