Linux-libre 3.17.4-gnu
[librecmc/linux-libre.git] / drivers / gpu / drm / nouveau / core / include / engine / dmaobj.h
1 #ifndef __NOUVEAU_DMAOBJ_H__
2 #define __NOUVEAU_DMAOBJ_H__
3
4 #include <core/object.h>
5 #include <core/engine.h>
6
7 struct nouveau_gpuobj;
8
9 struct nouveau_dmaobj {
10         struct nouveau_object base;
11         u32 target;
12         u32 access;
13         u64 start;
14         u64 limit;
15 };
16
17 struct nouveau_dmaeng {
18         struct nouveau_engine base;
19
20         /* creates a "physical" dma object from a struct nouveau_dmaobj */
21         int (*bind)(struct nouveau_dmaobj *dmaobj,
22                     struct nouveau_object *parent,
23                     struct nouveau_gpuobj **);
24 };
25
26 extern struct nouveau_oclass *nv04_dmaeng_oclass;
27 extern struct nouveau_oclass *nv50_dmaeng_oclass;
28 extern struct nouveau_oclass *nvc0_dmaeng_oclass;
29 extern struct nouveau_oclass *nvd0_dmaeng_oclass;
30
31 #endif