blob: 0fa94244bed1819f9eacde451c232eb138fb1a31 [file] [log] [blame]
Ben Skeggsebb945a2012-07-20 08:17:34 +10001#ifndef __NOUVEAU_CHAN_H__
2#define __NOUVEAU_CHAN_H__
3
4struct nouveau_cli;
5
6struct 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
41int nouveau_channel_new(struct nouveau_drm *, struct nouveau_cli *,
42 u32 parent, u32 handle, u32 vram, u32 gart,
43 struct nouveau_channel **);
44void nouveau_channel_del(struct nouveau_channel **);
45int nouveau_channel_idle(struct nouveau_channel *);
46
47#endif