drm/nv50-nvc0/vm: don't touch chan_vm
authorBen Skeggs <bskeggs@redhat.com>
Thu, 2 Jun 2011 23:57:27 +0000 (09:57 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 23 Jun 2011 05:58:40 +0000 (15:58 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nv50_vm.c
drivers/gpu/drm/nouveau/nvc0_vm.c

index 1a0dd49..40b84f2 100644 (file)
@@ -156,7 +156,7 @@ nv50_vm_flush(struct nouveau_vm *vm)
        pinstmem->flush(vm->dev);
 
        /* BAR */
-       if (vm != dev_priv->chan_vm) {
+       if (vm == dev_priv->bar1_vm || vm == dev_priv->bar3_vm) {
                nv50_vm_flush_engine(vm->dev, 6);
                return;
        }
index a179e6c..9e35294 100644 (file)
@@ -105,7 +105,11 @@ nvc0_vm_flush(struct nouveau_vm *vm)
        struct drm_device *dev = vm->dev;
        struct nouveau_vm_pgd *vpgd;
        unsigned long flags;
-       u32 engine = (dev_priv->chan_vm == vm) ? 1 : 5;
+       u32 engine;
+
+       engine = 1;
+       if (vm == dev_priv->bar1_vm || vm == dev_priv->bar3_vm)
+               engine |= 4;
 
        pinstmem->flush(vm->dev);