summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_bo.c
diff options
context:
space:
mode:
authorBen Skeggs2015-08-20 06:54:17 +0200
committerBen Skeggs2015-08-28 04:40:36 +0200
commitd8e83994aaf6749b7124a219f5b46bd1329e2a08 (patch)
tree7da43672ce2860ff204fbe34f14f37ba49bbd246 /drivers/gpu/drm/nouveau/nouveau_bo.c
parentdrm/nouveau/mmu: protect each vm with its own mutex (diff)
downloadkernel-qcow2-linux-d8e83994aaf6749b7124a219f5b46bd1329e2a08.tar.gz
kernel-qcow2-linux-d8e83994aaf6749b7124a219f5b46bd1329e2a08.tar.xz
kernel-qcow2-linux-d8e83994aaf6749b7124a219f5b46bd1329e2a08.zip
drm/nouveau/imem: improve management of instance memory
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_bo.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bo.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 496c00d585cd..982c0ed163eb 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1388,12 +1388,16 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem)
mem->bus.is_iomem = true;
if (drm->device.info.family >= NV_DEVICE_INFO_V0_TESLA) {
struct nvkm_bar *bar = nvxx_bar(&drm->device);
+ int page_shift = 12;
+ if (drm->device.info.family >= NV_DEVICE_INFO_V0_FERMI)
+ page_shift = node->page_shift;
- ret = bar->umap(bar, node, NV_MEM_ACCESS_RW,
+ ret = bar->umap(bar, node->size << 12, page_shift,
&node->bar_vma);
if (ret)
return ret;
+ nvkm_vm_map(&node->bar_vma, node);
mem->bus.offset = node->bar_vma.offset;
}
break;