| #ifndef __NVKM_DMA_H__ |
| #define __NVKM_DMA_H__ |
| #include <core/engine.h> |
| struct nvkm_client; |
| |
| struct nvkm_dmaobj { |
| const struct nvkm_dmaobj_func *func; |
| struct nvkm_dma *dma; |
| |
| struct nvkm_object object; |
| u32 target; |
| u32 access; |
| u64 start; |
| u64 limit; |
| |
| struct rb_node rb; |
| u64 handle; /*XXX HANDLE MERGE */ |
| }; |
| |
| struct nvkm_dma { |
| const struct nvkm_dma_func *func; |
| struct nvkm_engine engine; |
| }; |
| |
| struct nvkm_dmaobj * |
| nvkm_dma_search(struct nvkm_dma *, struct nvkm_client *, u64 object); |
| |
| int nv04_dma_new(struct nvkm_device *, int, struct nvkm_dma **); |
| int nv50_dma_new(struct nvkm_device *, int, struct nvkm_dma **); |
| int gf100_dma_new(struct nvkm_device *, int, struct nvkm_dma **); |
| int gf119_dma_new(struct nvkm_device *, int, struct nvkm_dma **); |
| #endif |