bar.h 726 B

123456789101112131415161718192021222324
  1. #ifndef __NVKM_BAR_H__
  2. #define __NVKM_BAR_H__
  3. #include <core/subdev.h>
  4. struct nvkm_vma;
  5. struct nvkm_bar {
  6. const struct nvkm_bar_func *func;
  7. struct nvkm_subdev subdev;
  8. spinlock_t lock;
  9. /* whether the BAR supports to be ioremapped WC or should be uncached */
  10. bool iomap_uncached;
  11. };
  12. void nvkm_bar_flush(struct nvkm_bar *);
  13. struct nvkm_vm *nvkm_bar_kmap(struct nvkm_bar *);
  14. int nvkm_bar_umap(struct nvkm_bar *, u64 size, int type, struct nvkm_vma *);
  15. int nv50_bar_new(struct nvkm_device *, int, struct nvkm_bar **);
  16. int g84_bar_new(struct nvkm_device *, int, struct nvkm_bar **);
  17. int gf100_bar_new(struct nvkm_device *, int, struct nvkm_bar **);
  18. int gk20a_bar_new(struct nvkm_device *, int, struct nvkm_bar **);
  19. #endif