summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2017-11-01 03:56:19 +1000
committerBen Skeggs <bskeggs@redhat.com>2017-11-02 13:32:25 +1000
commit9f6219fde7457df7a982174d496a012f4f42e776 (patch)
tree40ea7755c9e6de1f5b7e20d10927ade29234e0e8 /drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c
parent03b0ba7b545ba0c5b19fedb14a771a3517a1328e (diff)
downloadlinux-9f6219fde7457df7a982174d496a012f4f42e776.tar.bz2
drm/nouveau/mmu/nv50,g84: implement vmm on top of new base
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c
index 5811516c9a26..4e1c70db85c0 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/nv50.c
@@ -21,13 +21,15 @@
*
* Authors: Ben Skeggs
*/
-#include "priv.h"
+#include "vmm.h"
#include <core/gpuobj.h>
#include <subdev/fb.h>
#include <subdev/timer.h>
#include <engine/gr.h>
+#include <nvif/class.h>
+
void
nv50_vm_map_pgt(struct nvkm_gpuobj *pgd, u32 pde, struct nvkm_memory *pgt[2])
{
@@ -205,7 +207,6 @@ nv50_vm_create(struct nvkm_mmu *mmu, u64 offset, u64 length, u64 mm_offset,
u32 block = (1 << (mmu->func->pgt_bits + 12));
if (block > length)
block = length;
-
return nvkm_vm_create(mmu, offset, length, mm_offset, block, key, pvm);
}
@@ -222,6 +223,7 @@ nv50_mmu = {
.map_sg = nv50_vm_map_sg,
.unmap = nv50_vm_unmap,
.flush = nv50_vm_flush,
+ .vmm = {{ -1, -1, NVIF_CLASS_VMM_NV50}, nv50_vmm_new, false, 0x1400 },
};
int