1#ifndef __NV50_FIFO_CHAN_H__ 2#define __NV50_FIFO_CHAN_H__ 3#define nv50_fifo_chan(p) container_of((p), struct nv50_fifo_chan, base) 4#include "chan.h" 5#include "nv50.h" 6 7struct nv50_fifo_chan { 8 struct nv50_fifo *fifo; 9 struct nvkm_fifo_chan base; 10 11 struct nvkm_gpuobj *ramfc; 12 struct nvkm_gpuobj *cache; 13 struct nvkm_gpuobj *eng; 14 struct nvkm_gpuobj *pgd; 15 struct nvkm_ramht *ramht; 16 struct nvkm_vm *vm; 17 18 struct nvkm_gpuobj *engn[NVKM_SUBDEV_NR]; 19}; 20 21int nv50_fifo_chan_ctor(struct nv50_fifo *, u64 vm, u64 push, 22 const struct nvkm_oclass *, struct nv50_fifo_chan *); 23void *nv50_fifo_chan_dtor(struct nvkm_fifo_chan *); 24void nv50_fifo_chan_fini(struct nvkm_fifo_chan *); 25void nv50_fifo_chan_engine_dtor(struct nvkm_fifo_chan *, struct nvkm_engine *); 26void nv50_fifo_chan_object_dtor(struct nvkm_fifo_chan *, int); 27 28int g84_fifo_chan_ctor(struct nv50_fifo *, u64 vm, u64 push, 29 const struct nvkm_oclass *, struct nv50_fifo_chan *); 30 31extern const struct nvkm_fifo_chan_oclass nv50_fifo_dma_oclass; 32extern const struct nvkm_fifo_chan_oclass nv50_fifo_gpfifo_oclass; 33extern const struct nvkm_fifo_chan_oclass g84_fifo_dma_oclass; 34extern const struct nvkm_fifo_chan_oclass g84_fifo_gpfifo_oclass; 35#endif 36