static void * nvkm_ltc_dtor(struct nvkm_subdev *subdev) { struct nvkm_ltc *ltc = nvkm_ltc(subdev); struct nvkm_ram *ram = ltc->subdev.device->fb->ram; nvkm_mm_fini(<c->tags); if (ram) nvkm_mm_free(&ram->vram, <c->tag_ram); return ltc; }
void gf100_ltc_dtor(struct nvkm_object *object) { struct nvkm_fb *pfb = nvkm_fb(object); struct nvkm_ltc_priv *priv = (void *)object; nvkm_mm_fini(&priv->tags); if (pfb->ram) nvkm_mm_free(&pfb->vram, &priv->tag_ram); nvkm_ltc_destroy(priv); }
void nvkm_gpuobj_del(struct nvkm_gpuobj **pgpuobj) { struct nvkm_gpuobj *gpuobj = *pgpuobj; if (gpuobj) { if (gpuobj->parent) nvkm_mm_free(&gpuobj->parent->heap, &gpuobj->node); nvkm_mm_fini(&gpuobj->heap); nvkm_memory_unref(&gpuobj->memory); kfree(*pgpuobj); *pgpuobj = NULL; } }