Lines Matching refs:gr

63 	struct r535_gr *gr;
112 struct r535_gr *gr = grc->gr;
114 for (int i = 0; i < gr->ctxbuf_nr; i++) {
129 r535_gr_promote_ctx(struct r535_gr *gr, bool golden, struct nvkm_vmm *vmm,
133 struct nvkm_subdev *subdev = &gr->base.engine.subdev;
146 for (int i = 0; i < gr->ctxbuf_nr; i++) {
149 const bool alloc = golden || !gr->ctxbuf[i].global;
152 entry->bufferId = gr->ctxbuf[i].bufferId;
153 entry->bInitialize = gr->ctxbuf[i].init && alloc;
156 ret = nvkm_memory_new(device, gr->ctxbuf[i].init ?
158 gr->ctxbuf[i].size, 1 << gr->ctxbuf[i].page,
159 gr->ctxbuf[i].init, &pmem[i]);
163 if (gr->ctxbuf[i].bufferId ==
167 if (gr->ctxbuf[i].bufferId ==
171 pmem[i] = nvkm_memory_ref(gr->ctxbuf_mem[i]);
177 .ro = gr->ctxbuf[i].ro,
181 ret = nvkm_vmm_get_locked(vmm, false, true, false, 0, gr->ctxbuf[i].align,
196 entry->size = gr->ctxbuf[i].size;
215 struct r535_gr *gr = r535_gr(base);
223 grc->gr = gr;
228 ret = r535_gr_promote_ctx(gr, false, grc->vmm, grc->mem, grc->vma, &chan->rm.object);
236 r535_gr_units(struct nvkm_gr *gr)
238 struct nvkm_gsp *gsp = gr->engine.subdev.device->gsp;
240 return (gsp->gr.tpcs << 8) | gsp->gr.gpcs;
247 struct r535_gr *gr = container_of(base, typeof(*gr), base);
248 struct nvkm_subdev *subdev = &gr->base.engine.subdev;
398 if (WARN_ON(gr->ctxbuf_nr == ARRAY_SIZE(gr->ctxbuf)))
401 gr->ctxbuf[gr->ctxbuf_nr].bufferId = map[id].id1;
402 gr->ctxbuf[gr->ctxbuf_nr].size = size;
403 gr->ctxbuf[gr->ctxbuf_nr].page = page;
404 gr->ctxbuf[gr->ctxbuf_nr].align = align;
405 gr->ctxbuf[gr->ctxbuf_nr].global = map[id].global;
406 gr->ctxbuf[gr->ctxbuf_nr].init = map[id].init;
407 gr->ctxbuf[gr->ctxbuf_nr].ro = map[id].ro;
408 gr->ctxbuf_nr++;
411 if (WARN_ON(gr->ctxbuf_nr == ARRAY_SIZE(gr->ctxbuf)))
414 gr->ctxbuf[gr->ctxbuf_nr] = gr->ctxbuf[gr->ctxbuf_nr - 1];
415 gr->ctxbuf[gr->ctxbuf_nr].bufferId =
417 gr->ctxbuf_nr++;
424 ret = r535_gr_promote_ctx(gr, true, golden.vmm, gr->ctxbuf_mem, golden.vma, &golden.chan);
432 for (i = 0; gr->base.func->sclass[i].ctor; i++) {
433 if ((gr->base.func->sclass[i].oclass & 0xff) == 0x97) {
437 gr->base.func->sclass[i].oclass, 0,
447 if (WARN_ON(!gr->base.func->sclass[i].ctor)) {
455 for (int i = gr->ctxbuf_nr - 1; i >= 0; i--)
466 struct r535_gr *gr = r535_gr(base);
468 while (gr->ctxbuf_nr)
469 nvkm_memory_unref(&gr->ctxbuf_mem[--gr->ctxbuf_nr]);
471 kfree(gr->base.func);
472 return gr;
480 struct r535_gr *gr;
500 if (!(gr = kzalloc(sizeof(*gr), GFP_KERNEL))) {
505 *pgr = &gr->base;
507 return nvkm_gr_ctor(rm, device, type, inst, true, &gr->base);