Commit | Line | Data |
---|---|---|
ebb945a9 BS |
1 | #ifndef __NOUVEAU_CHAN_H__ |
2 | #define __NOUVEAU_CHAN_H__ | |
3 | ||
0ad72863 BS |
4 | #include <nvif/object.h> |
5 | struct nvif_device; | |
ebb945a9 BS |
6 | |
7 | struct nouveau_channel { | |
0ad72863 | 8 | struct nvif_device *device; |
ebb945a9 BS |
9 | struct nouveau_drm *drm; |
10 | ||
bbf8906b BS |
11 | int chid; |
12 | ||
0ad72863 BS |
13 | struct nvif_object vram; |
14 | struct nvif_object gart; | |
15 | struct nvif_object nvsw; | |
ebb945a9 BS |
16 | |
17 | struct { | |
18 | struct nouveau_bo *buffer; | |
19 | struct nouveau_vma vma; | |
0ad72863 | 20 | struct nvif_object ctxdma; |
ebb945a9 BS |
21 | } push; |
22 | ||
23 | /* TODO: this will be reworked in the near future */ | |
24 | bool accel_done; | |
25 | void *fence; | |
26 | struct { | |
27 | int max; | |
28 | int free; | |
29 | int cur; | |
30 | int put; | |
31 | int ib_base; | |
32 | int ib_max; | |
33 | int ib_free; | |
34 | int ib_put; | |
35 | } dma; | |
36 | u32 user_get_hi; | |
37 | u32 user_get; | |
38 | u32 user_put; | |
39 | ||
967e7bde | 40 | struct nvif_object *object; |
ebb945a9 BS |
41 | }; |
42 | ||
43 | ||
0ad72863 BS |
44 | int nouveau_channel_new(struct nouveau_drm *, struct nvif_device *, |
45 | u32 handle, u32 arg0, u32 arg1, | |
ebb945a9 BS |
46 | struct nouveau_channel **); |
47 | void nouveau_channel_del(struct nouveau_channel **); | |
48 | int nouveau_channel_idle(struct nouveau_channel *); | |
49 | ||
703fa264 PM |
50 | extern int nouveau_vram_pushbuf; |
51 | ||
ebb945a9 | 52 | #endif |