1 #ifndef __NV50_FIFO_H__
2 #define __NV50_FIFO_H__
3 #include <engine/fifo.h>
4 
5 struct nv50_fifo_priv {
6 	struct nvkm_fifo base;
7 	struct nvkm_gpuobj *playlist[2];
8 	int cur_playlist;
9 };
10 
11 struct nv50_fifo_base {
12 	struct nvkm_fifo_base base;
13 	struct nvkm_gpuobj *ramfc;
14 	struct nvkm_gpuobj *cache;
15 	struct nvkm_gpuobj *eng;
16 	struct nvkm_gpuobj *pgd;
17 	struct nvkm_vm *vm;
18 };
19 
20 struct nv50_fifo_chan {
21 	struct nvkm_fifo_chan base;
22 	u32 subc[8];
23 	struct nvkm_ramht *ramht;
24 };
25 
26 void nv50_fifo_playlist_update(struct nv50_fifo_priv *);
27 
28 void nv50_fifo_object_detach(struct nvkm_object *, int);
29 void nv50_fifo_chan_dtor(struct nvkm_object *);
30 int  nv50_fifo_chan_fini(struct nvkm_object *, bool);
31 
32 void nv50_fifo_context_dtor(struct nvkm_object *);
33 
34 void nv50_fifo_dtor(struct nvkm_object *);
35 int  nv50_fifo_init(struct nvkm_object *);
36 #endif
37