Loading drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ struct nvkm_fifo_chan { u16 chid; struct nvkm_gpuobj *inst; struct nvkm_gpuobj *push; struct nvkm_vm *vm; struct nvkm_vmm *vmm; void __iomem *user; u64 addr; u32 size; Loading drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c +18 −15 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <core/gpuobj.h> #include <core/oproxy.h> #include <subdev/mmu.h> #include <subdev/mmu/priv.h> #include <engine/dma.h> struct nvkm_fifo_chan_object { Loading Loading @@ -117,8 +118,8 @@ nvkm_fifo_chan_child_del(struct nvkm_oproxy *base) if (chan->func->engine_dtor) chan->func->engine_dtor(chan, engine); nvkm_object_del(&engn->object); if (chan->vm) atomic_dec(&chan->vm->engref[engine->subdev.index]); if (chan->vmm) atomic_dec(&chan->vmm->engref[engine->subdev.index]); } } Loading Loading @@ -151,8 +152,8 @@ nvkm_fifo_chan_child_new(const struct nvkm_oclass *oclass, void *data, u32 size, .engine = oclass->engine, }; if (chan->vm) atomic_inc(&chan->vm->engref[engine->subdev.index]); if (chan->vmm) atomic_inc(&chan->vmm->engref[engine->subdev.index]); if (engine->func->fifo.cclass) { ret = engine->func->fifo.cclass(chan, &cclass, Loading Loading @@ -327,7 +328,10 @@ nvkm_fifo_chan_dtor(struct nvkm_object *object) if (chan->user) iounmap(chan->user); nvkm_vm_ref(NULL, &chan->vm, NULL); if (chan->vmm) { nvkm_vmm_part(chan->vmm, chan->inst->memory); nvkm_vmm_unref(&chan->vmm); } nvkm_gpuobj_del(&chan->push); nvkm_gpuobj_del(&chan->inst); Loading Loading @@ -355,7 +359,6 @@ nvkm_fifo_chan_ctor(const struct nvkm_fifo_chan_func *func, { struct nvkm_client *client = oclass->client; struct nvkm_device *device = fifo->engine.subdev.device; struct nvkm_mmu *mmu = device->mmu; struct nvkm_dmaobj *dmaobj; unsigned long flags; int ret; Loading Loading @@ -384,16 +387,16 @@ nvkm_fifo_chan_ctor(const struct nvkm_fifo_chan_func *func, } /* channel address space */ if (!vm && mmu) { if (!client->vm || client->vm->mmu == mmu) { ret = nvkm_vm_ref(client->vm, &chan->vm, NULL); if (!device->mmu->func->vmm.global) { struct nvkm_vmm *vmm = client->vm; if (vmm->mmu != device->mmu) return -EINVAL; ret = nvkm_vmm_join(vmm, chan->inst->memory); if (ret) return ret; } else { return -EINVAL; } } else { return -ENOENT; chan->vmm = nvkm_vmm_ref(vmm); } /* allocate channel id */ Loading drivers/gpu/drm/nouveau/nvkm/engine/fifo/chang84.c +1 −5 Original line number Diff line number Diff line Loading @@ -277,9 +277,5 @@ g84_fifo_chan_ctor(struct nv50_fifo *fifo, u64 vm, u64 push, if (ret) return ret; ret = nvkm_ramht_new(device, 0x8000, 16, chan->base.inst, &chan->ramht); if (ret) return ret; return nvkm_vm_ref(chan->base.vm, &chan->vm, chan->base.inst->memory); return nvkm_ramht_new(device, 0x8000, 16, chan->base.inst, &chan->ramht); } drivers/gpu/drm/nouveau/nvkm/engine/fifo/changf100.h +0 −2 Original line number Diff line number Diff line Loading @@ -11,8 +11,6 @@ struct gf100_fifo_chan { struct list_head head; bool killed; struct nvkm_vm *vm; struct { struct nvkm_gpuobj *inst; struct nvkm_vma vma; Loading drivers/gpu/drm/nouveau/nvkm/engine/fifo/changk104.h +0 −2 Original line number Diff line number Diff line Loading @@ -12,8 +12,6 @@ struct gk104_fifo_chan { struct list_head head; bool killed; struct nvkm_vm *vm; struct { struct nvkm_gpuobj *inst; struct nvkm_vma vma; Loading Loading
drivers/gpu/drm/nouveau/include/nvkm/engine/fifo.h +1 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,7 @@ struct nvkm_fifo_chan { u16 chid; struct nvkm_gpuobj *inst; struct nvkm_gpuobj *push; struct nvkm_vm *vm; struct nvkm_vmm *vmm; void __iomem *user; u64 addr; u32 size; Loading
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chan.c +18 −15 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include <core/gpuobj.h> #include <core/oproxy.h> #include <subdev/mmu.h> #include <subdev/mmu/priv.h> #include <engine/dma.h> struct nvkm_fifo_chan_object { Loading Loading @@ -117,8 +118,8 @@ nvkm_fifo_chan_child_del(struct nvkm_oproxy *base) if (chan->func->engine_dtor) chan->func->engine_dtor(chan, engine); nvkm_object_del(&engn->object); if (chan->vm) atomic_dec(&chan->vm->engref[engine->subdev.index]); if (chan->vmm) atomic_dec(&chan->vmm->engref[engine->subdev.index]); } } Loading Loading @@ -151,8 +152,8 @@ nvkm_fifo_chan_child_new(const struct nvkm_oclass *oclass, void *data, u32 size, .engine = oclass->engine, }; if (chan->vm) atomic_inc(&chan->vm->engref[engine->subdev.index]); if (chan->vmm) atomic_inc(&chan->vmm->engref[engine->subdev.index]); if (engine->func->fifo.cclass) { ret = engine->func->fifo.cclass(chan, &cclass, Loading Loading @@ -327,7 +328,10 @@ nvkm_fifo_chan_dtor(struct nvkm_object *object) if (chan->user) iounmap(chan->user); nvkm_vm_ref(NULL, &chan->vm, NULL); if (chan->vmm) { nvkm_vmm_part(chan->vmm, chan->inst->memory); nvkm_vmm_unref(&chan->vmm); } nvkm_gpuobj_del(&chan->push); nvkm_gpuobj_del(&chan->inst); Loading Loading @@ -355,7 +359,6 @@ nvkm_fifo_chan_ctor(const struct nvkm_fifo_chan_func *func, { struct nvkm_client *client = oclass->client; struct nvkm_device *device = fifo->engine.subdev.device; struct nvkm_mmu *mmu = device->mmu; struct nvkm_dmaobj *dmaobj; unsigned long flags; int ret; Loading Loading @@ -384,16 +387,16 @@ nvkm_fifo_chan_ctor(const struct nvkm_fifo_chan_func *func, } /* channel address space */ if (!vm && mmu) { if (!client->vm || client->vm->mmu == mmu) { ret = nvkm_vm_ref(client->vm, &chan->vm, NULL); if (!device->mmu->func->vmm.global) { struct nvkm_vmm *vmm = client->vm; if (vmm->mmu != device->mmu) return -EINVAL; ret = nvkm_vmm_join(vmm, chan->inst->memory); if (ret) return ret; } else { return -EINVAL; } } else { return -ENOENT; chan->vmm = nvkm_vmm_ref(vmm); } /* allocate channel id */ Loading
drivers/gpu/drm/nouveau/nvkm/engine/fifo/chang84.c +1 −5 Original line number Diff line number Diff line Loading @@ -277,9 +277,5 @@ g84_fifo_chan_ctor(struct nv50_fifo *fifo, u64 vm, u64 push, if (ret) return ret; ret = nvkm_ramht_new(device, 0x8000, 16, chan->base.inst, &chan->ramht); if (ret) return ret; return nvkm_vm_ref(chan->base.vm, &chan->vm, chan->base.inst->memory); return nvkm_ramht_new(device, 0x8000, 16, chan->base.inst, &chan->ramht); }
drivers/gpu/drm/nouveau/nvkm/engine/fifo/changf100.h +0 −2 Original line number Diff line number Diff line Loading @@ -11,8 +11,6 @@ struct gf100_fifo_chan { struct list_head head; bool killed; struct nvkm_vm *vm; struct { struct nvkm_gpuobj *inst; struct nvkm_vma vma; Loading
drivers/gpu/drm/nouveau/nvkm/engine/fifo/changk104.h +0 −2 Original line number Diff line number Diff line Loading @@ -12,8 +12,6 @@ struct gk104_fifo_chan { struct list_head head; bool killed; struct nvkm_vm *vm; struct { struct nvkm_gpuobj *inst; struct nvkm_vma vma; Loading