Commit 01f349fc authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/fifo/gf100-: use new interfaces for vmm operations



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 8c967c55
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ struct gf100_fifo_chan {

	struct {
		struct nvkm_gpuobj *inst;
		struct nvkm_vma vma;
		struct nvkm_vma *vma;
	} engn[NVKM_SUBDEV_NR];
};

+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ struct gk104_fifo_chan {

	struct {
		struct nvkm_gpuobj *inst;
		struct nvkm_vma vma;
		struct nvkm_vma *vma;
	} engn[NVKM_SUBDEV_NR];
};

+6 −6
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@
#include <core/enum.h>
#include <core/gpuobj.h>
#include <subdev/bar.h>
#include <subdev/fb.h>
#include <engine/sw.h>

#include <nvif/class.h>
@@ -586,12 +585,12 @@ gf100_fifo_oneinit(struct nvkm_fifo *base)
	if (ret)
		return ret;

	ret = nvkm_vm_get(bar, nvkm_memory_size(fifo->user.mem), 12,
			  NV_MEM_ACCESS_RW, &fifo->user.bar);
	ret = nvkm_vmm_get(bar, 12, nvkm_memory_size(fifo->user.mem),
			   &fifo->user.bar);
	if (ret)
		return ret;

	return nvkm_memory_map(fifo->user.mem, 0, bar, &fifo->user.bar, NULL, 0);
	return nvkm_memory_map(fifo->user.mem, 0, bar, fifo->user.bar, NULL, 0);
}

static void
@@ -630,7 +629,7 @@ gf100_fifo_init(struct nvkm_fifo *base)
	}

	nvkm_mask(device, 0x002200, 0x00000001, 0x00000001);
	nvkm_wr32(device, 0x002254, 0x10000000 | fifo->user.bar.offset >> 12);
	nvkm_wr32(device, 0x002254, 0x10000000 | fifo->user.bar->addr >> 12);

	nvkm_wr32(device, 0x002100, 0xffffffff);
	nvkm_wr32(device, 0x002140, 0x7fffffff);
@@ -641,7 +640,8 @@ static void *
gf100_fifo_dtor(struct nvkm_fifo *base)
{
	struct gf100_fifo *fifo = gf100_fifo(base);
	nvkm_vm_put(&fifo->user.bar);
	struct nvkm_device *device = fifo->base.engine.subdev.device;
	nvkm_vmm_put(nvkm_bar_bar1_vmm(device), &fifo->user.bar);
	nvkm_memory_unref(&fifo->user.mem);
	nvkm_memory_unref(&fifo->runlist.mem[0]);
	nvkm_memory_unref(&fifo->runlist.mem[1]);
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ struct gf100_fifo {

	struct {
		struct nvkm_memory *mem;
		struct nvkm_vma bar;
		struct nvkm_vma *bar;
	} user;
};

+6 −6
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@
#include <core/client.h>
#include <core/gpuobj.h>
#include <subdev/bar.h>
#include <subdev/fb.h>
#include <subdev/timer.h>
#include <subdev/top.h>
#include <engine/sw.h>
@@ -836,12 +835,12 @@ gk104_fifo_oneinit(struct nvkm_fifo *base)
	if (ret)
		return ret;

	ret = nvkm_vm_get(bar, nvkm_memory_size(fifo->user.mem), 12,
			  NV_MEM_ACCESS_RW, &fifo->user.bar);
	ret = nvkm_vmm_get(bar, 12, nvkm_memory_size(fifo->user.mem),
			   &fifo->user.bar);
	if (ret)
		return ret;

	return nvkm_memory_map(fifo->user.mem, 0, bar, &fifo->user.bar, NULL, 0);
	return nvkm_memory_map(fifo->user.mem, 0, bar, fifo->user.bar, NULL, 0);
}

static void
@@ -867,7 +866,7 @@ gk104_fifo_init(struct nvkm_fifo *base)
		nvkm_wr32(device, 0x04014c + (i * 0x2000), 0xffffffff); /* INTREN */
	}

	nvkm_wr32(device, 0x002254, 0x10000000 | fifo->user.bar.offset >> 12);
	nvkm_wr32(device, 0x002254, 0x10000000 | fifo->user.bar->addr >> 12);

	nvkm_wr32(device, 0x002100, 0xffffffff);
	nvkm_wr32(device, 0x002140, 0x7fffffff);
@@ -877,9 +876,10 @@ static void *
gk104_fifo_dtor(struct nvkm_fifo *base)
{
	struct gk104_fifo *fifo = gk104_fifo(base);
	struct nvkm_device *device = fifo->base.engine.subdev.device;
	int i;

	nvkm_vm_put(&fifo->user.bar);
	nvkm_vmm_put(nvkm_bar_bar1_vmm(device), &fifo->user.bar);
	nvkm_memory_unref(&fifo->user.mem);

	for (i = 0; i < fifo->runlist_nr; i++) {
Loading