dma.h 759 B

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