Lines Matching refs:ltc
31 gf100_ltc_cbc_clear(struct nvkm_ltc *ltc, u32 start, u32 limit) in gf100_ltc_cbc_clear() argument
33 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_cbc_clear()
40 gf100_ltc_cbc_wait(struct nvkm_ltc *ltc) in gf100_ltc_cbc_wait() argument
42 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_cbc_wait()
44 for (c = 0; c < ltc->ltc_nr; c++) { in gf100_ltc_cbc_wait()
45 for (s = 0; s < ltc->lts_nr; s++) { in gf100_ltc_cbc_wait()
56 gf100_ltc_zbc_clear_color(struct nvkm_ltc *ltc, int i, const u32 color[4]) in gf100_ltc_zbc_clear_color() argument
58 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_zbc_clear_color()
67 gf100_ltc_zbc_clear_depth(struct nvkm_ltc *ltc, int i, const u32 depth) in gf100_ltc_zbc_clear_depth() argument
69 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_zbc_clear_depth()
93 gf100_ltc_lts_intr(struct nvkm_ltc *ltc, int c, int s) in gf100_ltc_lts_intr() argument
95 struct nvkm_subdev *subdev = <c->subdev; in gf100_ltc_lts_intr()
111 gf100_ltc_intr(struct nvkm_ltc *ltc) in gf100_ltc_intr() argument
113 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_intr()
119 for (s = 0; s < ltc->lts_nr; s++) in gf100_ltc_intr()
120 gf100_ltc_lts_intr(ltc, c, s); in gf100_ltc_intr()
126 gf100_ltc_invalidate(struct nvkm_ltc *ltc) in gf100_ltc_invalidate() argument
128 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_invalidate()
135 nvkm_debug(<c->subdev, "LTC invalidate took %lld ns\n", taken); in gf100_ltc_invalidate()
139 gf100_ltc_flush(struct nvkm_ltc *ltc) in gf100_ltc_flush() argument
141 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_flush()
148 nvkm_debug(<c->subdev, "LTC flush took %lld ns\n", taken); in gf100_ltc_flush()
154 gf100_ltc_oneinit_tag_ram(struct nvkm_ltc *ltc) in gf100_ltc_oneinit_tag_ram() argument
156 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_oneinit_tag_ram()
165 ltc->num_tags = 0; in gf100_ltc_oneinit_tag_ram()
170 ltc->num_tags = (ram->size >> 17) / 4; in gf100_ltc_oneinit_tag_ram()
171 if (ltc->num_tags > (1 << bits)) in gf100_ltc_oneinit_tag_ram()
172 ltc->num_tags = 1 << bits; /* we have 16/17 bits in PTE */ in gf100_ltc_oneinit_tag_ram()
173 ltc->num_tags = (ltc->num_tags + 63) & ~63; /* round up to 64 */ in gf100_ltc_oneinit_tag_ram()
175 tag_align = ltc->ltc_nr * 0x800; in gf100_ltc_oneinit_tag_ram()
186 tag_size = (ltc->num_tags / 64) * 0x6000 + tag_margin; in gf100_ltc_oneinit_tag_ram()
190 true, true, <c->tag_ram); in gf100_ltc_oneinit_tag_ram()
192 ltc->num_tags = 0; in gf100_ltc_oneinit_tag_ram()
194 u64 tag_base = nvkm_memory_addr(ltc->tag_ram) + tag_margin; in gf100_ltc_oneinit_tag_ram()
199 ltc->tag_base = tag_base; in gf100_ltc_oneinit_tag_ram()
204 return nvkm_mm_init(&fb->tags.mm, 0, 0, ltc->num_tags, 1); in gf100_ltc_oneinit_tag_ram()
208 gf100_ltc_oneinit(struct nvkm_ltc *ltc) in gf100_ltc_oneinit() argument
210 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_oneinit()
218 ltc->ltc_nr++; in gf100_ltc_oneinit()
220 ltc->lts_nr = slice; in gf100_ltc_oneinit()
222 return gf100_ltc_oneinit_tag_ram(ltc); in gf100_ltc_oneinit()
226 gf100_ltc_init(struct nvkm_ltc *ltc) in gf100_ltc_init() argument
228 struct nvkm_device *device = ltc->subdev.device; in gf100_ltc_init()
232 nvkm_wr32(device, 0x17e8d8, ltc->ltc_nr); in gf100_ltc_init()
233 nvkm_wr32(device, 0x17e8d4, ltc->tag_base); in gf100_ltc_init()