]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drm/nouveau/dma: switch to gpuobj accessor macros
authorBen Skeggs <bskeggs@redhat.com>
Thu, 20 Aug 2015 04:54:14 +0000 (14:54 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Fri, 28 Aug 2015 02:40:28 +0000 (12:40 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf100.c
drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/gf110.c
drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv04.c
drivers/gpu/drm/nouveau/nvkm/engine/dmaobj/nv50.c

index f5dc4f23a1b47c6a05c6a152e2aed6bc9f343f2c..499a7c7e024a5664ad1a663ac08cf04c53f425da 100644 (file)
@@ -57,13 +57,15 @@ gf100_dmaobj_bind(struct nvkm_dmaobj *obj, struct nvkm_object *parent,
 
        ret = nvkm_gpuobj_new(parent, parent, 24, 32, 0, pgpuobj);
        if (ret == 0) {
-               nv_wo32(*pgpuobj, 0x00, dmaobj->flags0 | nv_mclass(dmaobj));
-               nv_wo32(*pgpuobj, 0x04, lower_32_bits(dmaobj->base.limit));
-               nv_wo32(*pgpuobj, 0x08, lower_32_bits(dmaobj->base.start));
-               nv_wo32(*pgpuobj, 0x0c, upper_32_bits(dmaobj->base.limit) << 24 |
-                                       upper_32_bits(dmaobj->base.start));
-               nv_wo32(*pgpuobj, 0x10, 0x00000000);
-               nv_wo32(*pgpuobj, 0x14, dmaobj->flags5);
+               nvkm_kmap(*pgpuobj);
+               nvkm_wo32(*pgpuobj, 0x00, dmaobj->flags0 | nv_mclass(dmaobj));
+               nvkm_wo32(*pgpuobj, 0x04, lower_32_bits(dmaobj->base.limit));
+               nvkm_wo32(*pgpuobj, 0x08, lower_32_bits(dmaobj->base.start));
+               nvkm_wo32(*pgpuobj, 0x0c, upper_32_bits(dmaobj->base.limit) << 24 |
+                                         upper_32_bits(dmaobj->base.start));
+               nvkm_wo32(*pgpuobj, 0x10, 0x00000000);
+               nvkm_wo32(*pgpuobj, 0x14, dmaobj->flags5);
+               nvkm_done(*pgpuobj);
        }
 
        return ret;
index a3ea461f7f326fdf5c28a1cecabf649bc81f1e31..a28cf56454e462e85a43174e9fc0f0ffab6039ab 100644 (file)
@@ -63,12 +63,14 @@ gf110_dmaobj_bind(struct nvkm_dmaobj *obj, struct nvkm_object *parent,
 
        ret = nvkm_gpuobj_new(parent, parent, 24, 32, 0, pgpuobj);
        if (ret == 0) {
-               nv_wo32(*pgpuobj, 0x00, dmaobj->flags0);
-               nv_wo32(*pgpuobj, 0x04, dmaobj->base.start >> 8);
-               nv_wo32(*pgpuobj, 0x08, dmaobj->base.limit >> 8);
-               nv_wo32(*pgpuobj, 0x0c, 0x00000000);
-               nv_wo32(*pgpuobj, 0x10, 0x00000000);
-               nv_wo32(*pgpuobj, 0x14, 0x00000000);
+               nvkm_kmap(*pgpuobj);
+               nvkm_wo32(*pgpuobj, 0x00, dmaobj->flags0);
+               nvkm_wo32(*pgpuobj, 0x04, dmaobj->base.start >> 8);
+               nvkm_wo32(*pgpuobj, 0x08, dmaobj->base.limit >> 8);
+               nvkm_wo32(*pgpuobj, 0x0c, 0x00000000);
+               nvkm_wo32(*pgpuobj, 0x10, 0x00000000);
+               nvkm_wo32(*pgpuobj, 0x14, 0x00000000);
+               nvkm_done(*pgpuobj);
        }
 
        return ret;
index 21c5c90b06a8be0ee3391ab769912af37edee39d..60c962bc0e4774dcb847165cb44f6e5b7bbd7f6d 100644 (file)
@@ -64,17 +64,21 @@ nv04_dmaobj_bind(struct nvkm_dmaobj *obj, struct nvkm_object *parent,
                struct nvkm_gpuobj *pgt = mmu->vm->pgt[0].obj[0];
                if (!dmaobj->base.start)
                        return nvkm_gpuobj_dup(parent, pgt, pgpuobj);
-               offset  = nv_ro32(pgt, 8 + (offset >> 10));
+               nvkm_kmap(pgt);
+               offset  = nvkm_ro32(pgt, 8 + (offset >> 10));
                offset &= 0xfffff000;
+               nvkm_done(pgt);
        }
 
        ret = nvkm_gpuobj_new(parent, parent, 16, 16, 0, &gpuobj);
        *pgpuobj = gpuobj;
        if (ret == 0) {
-               nv_wo32(*pgpuobj, 0x00, dmaobj->flags0 | (adjust << 20));
-               nv_wo32(*pgpuobj, 0x04, length);
-               nv_wo32(*pgpuobj, 0x08, dmaobj->flags2 | offset);
-               nv_wo32(*pgpuobj, 0x0c, dmaobj->flags2 | offset);
+               nvkm_kmap(*pgpuobj);
+               nvkm_wo32(*pgpuobj, 0x00, dmaobj->flags0 | (adjust << 20));
+               nvkm_wo32(*pgpuobj, 0x04, length);
+               nvkm_wo32(*pgpuobj, 0x08, dmaobj->flags2 | offset);
+               nvkm_wo32(*pgpuobj, 0x0c, dmaobj->flags2 | offset);
+               nvkm_done(*pgpuobj);
        }
 
        return ret;
index ba95f549463f9a18a107f51a8e120b7045787ad6..3566fa9b3ba978266d74450cefc83646220848b4 100644 (file)
@@ -69,13 +69,15 @@ nv50_dmaobj_bind(struct nvkm_dmaobj *obj, struct nvkm_object *parent,
 
        ret = nvkm_gpuobj_new(parent, parent, 24, 32, 0, pgpuobj);
        if (ret == 0) {
-               nv_wo32(*pgpuobj, 0x00, dmaobj->flags0 | nv_mclass(dmaobj));
-               nv_wo32(*pgpuobj, 0x04, lower_32_bits(dmaobj->base.limit));
-               nv_wo32(*pgpuobj, 0x08, lower_32_bits(dmaobj->base.start));
-               nv_wo32(*pgpuobj, 0x0c, upper_32_bits(dmaobj->base.limit) << 24 |
-                                       upper_32_bits(dmaobj->base.start));
-               nv_wo32(*pgpuobj, 0x10, 0x00000000);
-               nv_wo32(*pgpuobj, 0x14, dmaobj->flags5);
+               nvkm_kmap(*pgpuobj);
+               nvkm_wo32(*pgpuobj, 0x00, dmaobj->flags0 | nv_mclass(dmaobj));
+               nvkm_wo32(*pgpuobj, 0x04, lower_32_bits(dmaobj->base.limit));
+               nvkm_wo32(*pgpuobj, 0x08, lower_32_bits(dmaobj->base.start));
+               nvkm_wo32(*pgpuobj, 0x0c, upper_32_bits(dmaobj->base.limit) << 24 |
+                                         upper_32_bits(dmaobj->base.start));
+               nvkm_wo32(*pgpuobj, 0x10, 0x00000000);
+               nvkm_wo32(*pgpuobj, 0x14, dmaobj->flags5);
+               nvkm_done(*pgpuobj);
        }
 
        return ret;