aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2017-11-01 03:56:19 +1000
committerBen Skeggs <bskeggs@redhat.com>2017-11-02 13:32:18 +1000
commita78dbce9a161a3a985b837bd07afd8651d42cabd (patch)
tree0ecaec788cb83ca34841962a75937d02579a6538 /drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c
parentdrm/nouveau/bar: modify interface to bar1 vmm mapping (diff)
downloadlinux-dev-a78dbce9a161a3a985b837bd07afd8651d42cabd.tar.xz
linux-dev-a78dbce9a161a3a985b837bd07afd8651d42cabd.zip
drm/nouveau/bar: modify interface to bar2 vmm mapping
Match API with the BAR1 version. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c')
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c
index 5a80cf5f9eb0..d600aafae315 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/base.c
@@ -30,19 +30,22 @@ nvkm_bar_flush(struct nvkm_bar *bar)
bar->func->flush(bar);
}
-struct nvkm_vm *
-nvkm_bar_kmap(struct nvkm_bar *bar)
+struct nvkm_vmm *
+nvkm_bar_bar1_vmm(struct nvkm_device *device)
{
- /* disallow kmap() until after vm has been bootstrapped */
- if (bar && bar->func->kmap && bar->subdev.oneinit)
- return bar->func->kmap(bar);
- return NULL;
+ return device->bar->func->bar1.vmm(device->bar);
}
struct nvkm_vmm *
-nvkm_bar_bar1_vmm(struct nvkm_device *device)
+nvkm_bar_bar2_vmm(struct nvkm_device *device)
{
- return device->bar->func->bar1.vmm(device->bar);
+ /* Denies access to BAR2 when it's not initialised, used by INSTMEM
+ * to know when object access needs to go through the BAR0 window.
+ */
+ struct nvkm_bar *bar = device->bar;
+ if (bar && bar->func->bar2.vmm && bar->subdev.oneinit)
+ return bar->func->bar2.vmm(bar);
+ return NULL;
}
void