1 /* $NetBSD: dma.h,v 1.5 2021/12/18 23:45:33 riastradh Exp $ */ 2 3 /* SPDX-License-Identifier: MIT */ 4 #ifndef __NVKM_DMA_H__ 5 #define __NVKM_DMA_H__ 6 #include <core/engine.h> 7 #include <core/object.h> 8 struct nvkm_client; 9 10 struct nvkm_dmaobj { 11 const struct nvkm_dmaobj_func *func; 12 struct nvkm_dma *dma; 13 14 struct nvkm_object object; 15 u32 target; 16 u32 access; 17 u64 start; 18 u64 limit; 19 }; 20 21 struct nvkm_dma { 22 const struct nvkm_dma_func *func; 23 struct nvkm_engine engine; 24 }; 25 26 struct nvkm_dmaobj *nvkm_dmaobj_search(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 int gv100_dma_new(struct nvkm_device *, int, struct nvkm_dma **); 33 #endif 34