Home | History | Annotate | Line # | Download | only in nouveau
nouveau_chan.h revision 1.1
      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
     48