Merge tag 'tilcdc-4.15-fixes' of https://github.com/jsarha/linux into drm-next
[sfrench/cifs-2.6.git] / drivers / gpu / drm / nouveau / nvkm / engine / fifo / gf100.c
index cd468ab1db125e213de377eac9458d6879190009..f6957686816433adbddee81f7e8c37fa694ee374 100644 (file)
@@ -559,6 +559,7 @@ gf100_fifo_oneinit(struct nvkm_fifo *base)
        struct gf100_fifo *fifo = gf100_fifo(base);
        struct nvkm_subdev *subdev = &fifo->base.engine.subdev;
        struct nvkm_device *device = subdev->device;
+       struct nvkm_vmm *bar = nvkm_bar_bar1_vmm(device);
        int ret;
 
        /* Determine number of PBDMAs by checking valid enable bits. */
@@ -584,12 +585,12 @@ gf100_fifo_oneinit(struct nvkm_fifo *base)
        if (ret)
                return ret;
 
-       ret = nvkm_bar_umap(device->bar, 128 * 0x1000, 12, &fifo->user.bar);
+       ret = nvkm_vmm_get(bar, 12, nvkm_memory_size(fifo->user.mem),
+                          &fifo->user.bar);
        if (ret)
                return ret;
 
-       nvkm_memory_map(fifo->user.mem, &fifo->user.bar, 0);
-       return 0;
+       return nvkm_memory_map(fifo->user.mem, 0, bar, fifo->user.bar, NULL, 0);
 }
 
 static void
@@ -628,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);
@@ -639,10 +640,11 @@ static void *
 gf100_fifo_dtor(struct nvkm_fifo *base)
 {
        struct gf100_fifo *fifo = gf100_fifo(base);
-       nvkm_vm_put(&fifo->user.bar);
-       nvkm_memory_del(&fifo->user.mem);
-       nvkm_memory_del(&fifo->runlist.mem[0]);
-       nvkm_memory_del(&fifo->runlist.mem[1]);
+       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]);
        return fifo;
 }