Loading drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h +3 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,9 @@ struct nvkm_vm { bool bootstrapped; atomic_t engref[NVKM_SUBDEV_NR]; dma_addr_t null; void *nullp; }; int nvkm_vm_new(struct nvkm_device *, u64 offset, u64 length, u64 mm_offset, Loading drivers/gpu/drm/nouveau/nvkm/subdev/mmu/Kbuild +1 −0 Original line number Diff line number Diff line Loading @@ -15,3 +15,4 @@ nvkm-y += nvkm/subdev/mmu/gp10b.o nvkm-y += nvkm/subdev/mmu/vmm.o nvkm-y += nvkm/subdev/mmu/vmmnv04.o nvkm-y += nvkm/subdev/mmu/vmmnv41.o nvkm-y += nvkm/subdev/mmu/vmmnv44.o drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c +1 −4 Original line number Diff line number Diff line Loading @@ -786,14 +786,11 @@ static void * nvkm_mmu_dtor(struct nvkm_subdev *subdev) { struct nvkm_mmu *mmu = nvkm_mmu(subdev); void *data = mmu; if (mmu->func->dtor) data = mmu->func->dtor(mmu); nvkm_vm_ref(NULL, &mmu->vmm, NULL); nvkm_mmu_ptc_fini(mmu); return data; return mmu; } static const struct nvkm_subdev_func Loading drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.c +0 −27 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ * * Authors: Ben Skeggs */ #include "nv04.h" #include "vmm.h" #include <nvif/class.h> Loading Loading @@ -81,32 +80,6 @@ nv04_mmu_oneinit(struct nvkm_mmu *mmu) return 0; } void * nv04_mmu_dtor(struct nvkm_mmu *base) { struct nv04_mmu *mmu = nv04_mmu(base); struct nvkm_device *device = mmu->base.subdev.device; if (mmu->base.vmm) nvkm_memory_unref(&mmu->base.vmm->pgt[0].mem[0]); if (mmu->nullp) { dma_free_coherent(device->dev, 16 * 1024, mmu->nullp, mmu->null); } return mmu; } int nv04_mmu_new_(const struct nvkm_mmu_func *func, struct nvkm_device *device, int index, struct nvkm_mmu **pmmu) { struct nv04_mmu *mmu; if (!(mmu = kzalloc(sizeof(*mmu), GFP_KERNEL))) return -ENOMEM; *pmmu = &mmu->base; nvkm_mmu_ctor(func, device, index, &mmu->base); return 0; } const struct nvkm_mmu_func nv04_mmu = { .oneinit = nv04_mmu_oneinit, Loading drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.hdeleted 100644 → 0 +0 −17 Original line number Diff line number Diff line #ifndef __NV04_MMU_PRIV__ #define __NV04_MMU_PRIV__ #define nv04_mmu(p) container_of((p), struct nv04_mmu, base) #include "priv.h" struct nv04_mmu { struct nvkm_mmu base; dma_addr_t null; void *nullp; }; int nv04_mmu_new_(const struct nvkm_mmu_func *, struct nvkm_device *, int index, struct nvkm_mmu **); void *nv04_mmu_dtor(struct nvkm_mmu *); extern const struct nvkm_mmu_func nv04_mmu; #endif Loading
drivers/gpu/drm/nouveau/include/nvkm/subdev/mmu.h +3 −0 Original line number Diff line number Diff line Loading @@ -48,6 +48,9 @@ struct nvkm_vm { bool bootstrapped; atomic_t engref[NVKM_SUBDEV_NR]; dma_addr_t null; void *nullp; }; int nvkm_vm_new(struct nvkm_device *, u64 offset, u64 length, u64 mm_offset, Loading
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/Kbuild +1 −0 Original line number Diff line number Diff line Loading @@ -15,3 +15,4 @@ nvkm-y += nvkm/subdev/mmu/gp10b.o nvkm-y += nvkm/subdev/mmu/vmm.o nvkm-y += nvkm/subdev/mmu/vmmnv04.o nvkm-y += nvkm/subdev/mmu/vmmnv41.o nvkm-y += nvkm/subdev/mmu/vmmnv44.o
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/base.c +1 −4 Original line number Diff line number Diff line Loading @@ -786,14 +786,11 @@ static void * nvkm_mmu_dtor(struct nvkm_subdev *subdev) { struct nvkm_mmu *mmu = nvkm_mmu(subdev); void *data = mmu; if (mmu->func->dtor) data = mmu->func->dtor(mmu); nvkm_vm_ref(NULL, &mmu->vmm, NULL); nvkm_mmu_ptc_fini(mmu); return data; return mmu; } static const struct nvkm_subdev_func Loading
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.c +0 −27 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ * * Authors: Ben Skeggs */ #include "nv04.h" #include "vmm.h" #include <nvif/class.h> Loading Loading @@ -81,32 +80,6 @@ nv04_mmu_oneinit(struct nvkm_mmu *mmu) return 0; } void * nv04_mmu_dtor(struct nvkm_mmu *base) { struct nv04_mmu *mmu = nv04_mmu(base); struct nvkm_device *device = mmu->base.subdev.device; if (mmu->base.vmm) nvkm_memory_unref(&mmu->base.vmm->pgt[0].mem[0]); if (mmu->nullp) { dma_free_coherent(device->dev, 16 * 1024, mmu->nullp, mmu->null); } return mmu; } int nv04_mmu_new_(const struct nvkm_mmu_func *func, struct nvkm_device *device, int index, struct nvkm_mmu **pmmu) { struct nv04_mmu *mmu; if (!(mmu = kzalloc(sizeof(*mmu), GFP_KERNEL))) return -ENOMEM; *pmmu = &mmu->base; nvkm_mmu_ctor(func, device, index, &mmu->base); return 0; } const struct nvkm_mmu_func nv04_mmu = { .oneinit = nv04_mmu_oneinit, Loading
drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv04.hdeleted 100644 → 0 +0 −17 Original line number Diff line number Diff line #ifndef __NV04_MMU_PRIV__ #define __NV04_MMU_PRIV__ #define nv04_mmu(p) container_of((p), struct nv04_mmu, base) #include "priv.h" struct nv04_mmu { struct nvkm_mmu base; dma_addr_t null; void *nullp; }; int nv04_mmu_new_(const struct nvkm_mmu_func *, struct nvkm_device *, int index, struct nvkm_mmu **); void *nv04_mmu_dtor(struct nvkm_mmu *); extern const struct nvkm_mmu_func nv04_mmu; #endif