1#ifndef __NV50_FIFO_H__
2#define __NV50_FIFO_H__
3#include <engine/fifo.h>
4
5struct nv50_fifo_priv {
6	struct nvkm_fifo base;
7	struct nvkm_gpuobj *playlist[2];
8	int cur_playlist;
9};
10
11struct 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
20struct nv50_fifo_chan {
21	struct nvkm_fifo_chan base;
22	u32 subc[8];
23	struct nvkm_ramht *ramht;
24};
25
26void nv50_fifo_playlist_update(struct nv50_fifo_priv *);
27
28void nv50_fifo_object_detach(struct nvkm_object *, int);
29void nv50_fifo_chan_dtor(struct nvkm_object *);
30int  nv50_fifo_chan_fini(struct nvkm_object *, bool);
31
32void nv50_fifo_context_dtor(struct nvkm_object *);
33
34void nv50_fifo_dtor(struct nvkm_object *);
35int  nv50_fifo_init(struct nvkm_object *);
36#endif
37