summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2015-08-20 07:54:18 +0300
committerBen Skeggs <bskeggs@redhat.com>2015-08-28 05:40:40 +0300
commit0710cc31482ae3711367c42e61580126c50c8ec0 (patch)
tree4a5214526e421b354047366348e6ab33b4eafdf6 /drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h
parent19fef52d93518cc01fd284b55ee93c0a9967634f (diff)
downloadlinux-0710cc31482ae3711367c42e61580126c50c8ec0.tar.xz
drm/nouveau/dma: convert user classes to new-style nvkm_object
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h')
-rw-r--r--drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h21
1 files changed, 16 insertions, 5 deletions
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h b/drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h
index 5f461e95987e..7439a02bf7c9 100644
--- a/drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h
+++ b/drivers/gpu/drm/nouveau/include/nvkm/engine/dma.h
@@ -1,24 +1,35 @@
#ifndef __NVKM_DMA_H__
#define __NVKM_DMA_H__
#include <core/engine.h>
+struct nvkm_client;
struct nvkm_gpuobj;
struct nvkm_dmaobj {
- struct nvkm_object base;
+ const struct nvkm_dmaobj_func *func;
+ struct nvkm_dma *dma;
+
+ struct nvkm_object object;
u32 target;
u32 access;
u64 start;
u64 limit;
+
+ struct rb_node rb;
+ u64 handle; /*XXX HANDLE MERGE */
+};
+
+struct nvkm_dmaobj_func {
+ int (*bind)(struct nvkm_dmaobj *, struct nvkm_gpuobj *, int align,
+ struct nvkm_gpuobj **);
};
struct nvkm_dma {
struct nvkm_engine engine;
-
- /* creates a "physical" dma object from a struct nvkm_dmaobj */
- int (*bind)(struct nvkm_dmaobj *dmaobj, struct nvkm_gpuobj *parent,
- struct nvkm_gpuobj **);
};
+struct nvkm_dmaobj *
+nvkm_dma_search(struct nvkm_dma *, struct nvkm_client *, u64 object);
+
extern struct nvkm_oclass *nv04_dmaeng_oclass;
extern struct nvkm_oclass *nv50_dmaeng_oclass;
extern struct nvkm_oclass *gf100_dmaeng_oclass;