1 #ifndef __NVKM_DMA_H__ 2 #define __NVKM_DMA_H__ 3 #include <core/engine.h> 4 struct nvkm_client; 5 6 struct nvkm_dmaobj { 7 const struct nvkm_dmaobj_func *func; 8 struct nvkm_dma *dma; 9 10 struct nvkm_object object; 11 u32 target; 12 u32 access; 13 u64 start; 14 u64 limit; 15 16 struct rb_node rb; 17 u64 handle; /*XXX HANDLE MERGE */ 18 }; 19 20 struct nvkm_dma { 21 const struct nvkm_dma_func *func; 22 struct nvkm_engine engine; 23 }; 24 25 struct nvkm_dmaobj * 26 nvkm_dma_search(struct nvkm_dma *, struct nvkm_client *, u64 object); 27 28 int nv04_dma_new(struct nvkm_device *, int, struct nvkm_dma **); 29 int nv50_dma_new(struct nvkm_device *, int, struct nvkm_dma **); 30 int gf100_dma_new(struct nvkm_device *, int, struct nvkm_dma **); 31 int gf119_dma_new(struct nvkm_device *, int, struct nvkm_dma **); 32 #endif 33