Home | History | Annotate | Line # | Download | only in engine
      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