Merge branch 'master' of git://1984.lsi.us.es/nf-next
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / nouveau / nouveau_chan.h
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 *,
42                          u32 parent, u32 handle, u32 arg0, u32 arg1,
43                          struct nouveau_channel **);
44 void nouveau_channel_del(struct nouveau_channel **);
45 int  nouveau_channel_idle(struct nouveau_channel *);
46
47 #endif