Commit | Line | Data |
---|---|---|
ebb945a9 BS |
1 | #ifndef __NOUVEAU_CHAN_H__ |
2 | #define __NOUVEAU_CHAN_H__ | |
3 | ||
4 | struct nouveau_cli; | |
5 | ||
6 | struct nouveau_channel { | |
7 | struct nouveau_cli *cli; | |
8 | struct nouveau_drm *drm; | |
9 | ||
10 | u32 handle; | |
11 | u32 vram; | |
12 | u32 gart; | |
13 | ||
14 | struct { | |
15 | struct nouveau_bo *buffer; | |
16 | struct nouveau_vma vma; | |
17 | u32 handle; | |
18 | } push; | |
19 | ||
20 | /* TODO: this will be reworked in the near future */ | |
21 | bool accel_done; | |
22 | void *fence; | |
23 | struct { | |
24 | int max; | |
25 | int free; | |
26 | int cur; | |
27 | int put; | |
28 | int ib_base; | |
29 | int ib_max; | |
30 | int ib_free; | |
31 | int ib_put; | |
32 | } dma; | |
33 | u32 user_get_hi; | |
34 | u32 user_get; | |
35 | u32 user_put; | |
36 | ||
37 | struct nouveau_object *object; | |
38 | }; | |
39 | ||
40 | ||
41 | int nouveau_channel_new(struct nouveau_drm *, struct nouveau_cli *, | |
49981046 | 42 | u32 parent, u32 handle, u32 arg0, u32 arg1, |
ebb945a9 BS |
43 | struct nouveau_channel **); |
44 | void nouveau_channel_del(struct nouveau_channel **); | |
45 | int nouveau_channel_idle(struct nouveau_channel *); | |
46 | ||
47 | #endif |