Lines Matching refs:ram
64 struct nv50_ram *ram = (void *)pfb->ram; in nv50_ram_calc() local
65 struct nv50_ramseq *hwsq = &ram->hwsq; in nv50_ram_calc()
159 switch (ram->base.type) { in nv50_ram_calc()
206 struct nv50_ram *ram = (void *)pfb->ram; in nv50_ram_prog() local
207 struct nv50_ramseq *hwsq = &ram->hwsq; in nv50_ram_prog()
216 struct nv50_ram *ram = (void *)pfb->ram; in nv50_ram_tidy() local
217 struct nv50_ramseq *hwsq = &ram->hwsq; in nv50_ram_tidy()
299 pfb->ram->put(pfb, &mem); in nv50_ram_get()
315 nv50_fb_vram_rblock(struct nvkm_fb *pfb, struct nvkm_ram *ram) in nv50_fb_vram_rblock() argument
332 rowsize = ram->parts * banks * (1 << colbits) * 8; in nv50_fb_vram_rblock()
337 if (predicted != ram->size) { in nv50_fb_vram_rblock()
339 (u32)(ram->size >> 20)); in nv50_fb_vram_rblock()
358 struct nvkm_ram *ram; in nv50_ram_create_() local
362 ram = *pobject; in nv50_ram_create_()
366 ram->size = nv_rd32(pfb, 0x10020c); in nv50_ram_create_()
367 ram->size = (ram->size & 0xffffff00) | ((ram->size & 0x000000ff) << 32); in nv50_ram_create_()
369 ram->part_mask = (nv_rd32(pfb, 0x001540) & 0x00ff0000) >> 16; in nv50_ram_create_()
370 ram->parts = hweight8(ram->part_mask); in nv50_ram_create_()
373 case 0: ram->type = NV_MEM_TYPE_DDR1; break; in nv50_ram_create_()
376 ram->type = NV_MEM_TYPE_DDR3; in nv50_ram_create_()
378 ram->type = NV_MEM_TYPE_DDR2; in nv50_ram_create_()
380 case 2: ram->type = NV_MEM_TYPE_GDDR3; break; in nv50_ram_create_()
381 case 3: ram->type = NV_MEM_TYPE_GDDR4; break; in nv50_ram_create_()
382 case 4: ram->type = NV_MEM_TYPE_GDDR5; break; in nv50_ram_create_()
387 ret = nvkm_mm_init(&pfb->vram, rsvd_head, (ram->size >> 12) - in nv50_ram_create_()
389 nv50_fb_vram_rblock(pfb, ram) >> 12); in nv50_ram_create_()
393 ram->ranks = (nv_rd32(pfb, 0x100200) & 0x4) ? 2 : 1; in nv50_ram_create_()
394 ram->tags = nv_rd32(pfb, 0x100320); in nv50_ram_create_()
395 ram->get = nv50_ram_get; in nv50_ram_create_()
396 ram->put = nv50_ram_put; in nv50_ram_create_()
405 struct nv50_ram *ram; in nv50_ram_ctor() local
408 ret = nv50_ram_create(parent, engine, oclass, &ram); in nv50_ram_ctor()
409 *pobject = nv_object(ram); in nv50_ram_ctor()
413 switch (ram->base.type) { in nv50_ram_ctor()
416 ram->base.calc = nv50_ram_calc; in nv50_ram_ctor()
417 ram->base.prog = nv50_ram_prog; in nv50_ram_ctor()
418 ram->base.tidy = nv50_ram_tidy; in nv50_ram_ctor()
421 nv_warn(ram, "reclocking of this ram type unsupported\n"); in nv50_ram_ctor()
425 ram->hwsq.r_0x002504 = hwsq_reg(0x002504); in nv50_ram_ctor()
426 ram->hwsq.r_0x00c040 = hwsq_reg(0x00c040); in nv50_ram_ctor()
427 ram->hwsq.r_0x004008 = hwsq_reg(0x004008); in nv50_ram_ctor()
428 ram->hwsq.r_0x00400c = hwsq_reg(0x00400c); in nv50_ram_ctor()
429 ram->hwsq.r_0x100210 = hwsq_reg(0x100210); in nv50_ram_ctor()
430 ram->hwsq.r_0x1002d0 = hwsq_reg(0x1002d0); in nv50_ram_ctor()
431 ram->hwsq.r_0x1002d4 = hwsq_reg(0x1002d4); in nv50_ram_ctor()
432 ram->hwsq.r_0x1002dc = hwsq_reg(0x1002dc); in nv50_ram_ctor()
434 ram->hwsq.r_0x100da0[i] = hwsq_reg(0x100da0 + (i * 0x04)); in nv50_ram_ctor()
435 ram->hwsq.r_0x100e20 = hwsq_reg(0x100e20); in nv50_ram_ctor()
436 ram->hwsq.r_0x100e24 = hwsq_reg(0x100e24); in nv50_ram_ctor()
437 ram->hwsq.r_0x611200 = hwsq_reg(0x611200); in nv50_ram_ctor()
440 ram->hwsq.r_timing[i] = hwsq_reg(0x100220 + (i * 0x04)); in nv50_ram_ctor()
442 if (ram->base.ranks > 1) { in nv50_ram_ctor()
443 ram->hwsq.r_mr[0] = hwsq_reg2(0x1002c0, 0x1002c8); in nv50_ram_ctor()
444 ram->hwsq.r_mr[1] = hwsq_reg2(0x1002c4, 0x1002cc); in nv50_ram_ctor()
445 ram->hwsq.r_mr[2] = hwsq_reg2(0x1002e0, 0x1002e8); in nv50_ram_ctor()
446 ram->hwsq.r_mr[3] = hwsq_reg2(0x1002e4, 0x1002ec); in nv50_ram_ctor()
448 ram->hwsq.r_mr[0] = hwsq_reg(0x1002c0); in nv50_ram_ctor()
449 ram->hwsq.r_mr[1] = hwsq_reg(0x1002c4); in nv50_ram_ctor()
450 ram->hwsq.r_mr[2] = hwsq_reg(0x1002e0); in nv50_ram_ctor()
451 ram->hwsq.r_mr[3] = hwsq_reg(0x1002e4); in nv50_ram_ctor()