]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commitdiff
drm/nouveau/imem/nv50: map bar2 write-combined
authorBen Skeggs <bskeggs@redhat.com>
Tue, 31 Oct 2017 17:56:19 +0000 (03:56 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 2 Nov 2017 03:32:19 +0000 (13:32 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c

index 9b5606cb2f4e66b9a89e0df714c7339d7392249e..ec2904a0e9fcdd171c8ab671562918047c3b74a7 100644 (file)
@@ -142,8 +142,8 @@ nv50_instobj_kmap(struct nv50_instobj *iobj, struct nvkm_vmm *vmm)
 
        /* Make the mapping visible to the host. */
        iobj->bar = bar;
-       iobj->map = ioremap(device->func->resource_addr(device, 3) +
-                           (u32)iobj->bar.offset, size);
+       iobj->map = ioremap_wc(device->func->resource_addr(device, 3) +
+                              (u32)iobj->bar.offset, size);
        if (!iobj->map) {
                nvkm_warn(subdev, "PRAMIN ioremap failed\n");
                nvkm_vm_put(&iobj->bar);
@@ -164,6 +164,7 @@ nv50_instobj_release(struct nvkm_memory *memory)
        struct nv50_instmem *imem = iobj->imem;
        struct nvkm_subdev *subdev = &imem->base.subdev;
 
+       wmb();
        nvkm_bar_flush(subdev->device->bar);
 
        if (refcount_dec_and_mutex_lock(&iobj->maps, &subdev->mutex)) {