Blob Blame History Raw
From: Ben Skeggs <bskeggs@redhat.com>
Date: Wed, 1 Nov 2017 03:56:19 +1000
Subject: drm/nouveau/fb/ram: use new interfaces for vmm operations
Git-commit: 6f4dc18c166cd36d8e9dfd130874060065bedd1c
Patch-mainline: v4.15-rc1
References: FATE#326289 FATE#326079 FATE#326049 FATE#322398 FATE#326166

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Acked-by: Petr Tesarik <ptesarik@suse.com>
---
 drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c |   18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

--- a/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.c
@@ -39,12 +39,22 @@ nvkm_vram_map(struct nvkm_memory *memory
 	      struct nvkm_vma *vma, void *argv, u32 argc)
 {
 	struct nvkm_vram *vram = nvkm_vram(memory);
-	struct nvkm_mem mem = {
-		.mem = vram->mn,
+	struct nvkm_vmm_map map = {
 		.memory = &vram->memory,
+		.offset = offset,
+		.mem = vram->mn,
 	};
-	nvkm_vm_map_at(vma, offset, &mem);
-	return 0;
+
+	if (vma->vm) {
+		struct nvkm_mem mem = {
+			.mem = vram->mn,
+			.memory = &vram->memory,
+		};
+		nvkm_vm_map_at(vma, offset, &mem);
+		return 0;
+	}
+
+	return nvkm_vmm_map(vmm, vma, argv, argc, &map);
 }
 
 static u64