diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2015-08-20 14:54:20 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2015-08-28 12:37:41 +1000 |
commit | 20bada06526909dad623431d6d05dcee39150ba5 (patch) | |
tree | 9bc928584edcb324d6ec0cf42866368b6239896b /drm/nouveau/include/nvkm/subdev/bar.h | |
parent | 1933ae31b27dfe0815204eda9f4edbeb612a29e1 (diff) | |
download | nouveau-20bada06526909dad623431d6d05dcee39150ba5.tar.gz |
bar: convert to new-style nvkm_subdev
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drm/nouveau/include/nvkm/subdev/bar.h')
-rw-r--r-- | drm/nouveau/include/nvkm/subdev/bar.h | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/drm/nouveau/include/nvkm/subdev/bar.h b/drm/nouveau/include/nvkm/subdev/bar.h index 1eaf7de79..d3071b5a4 100644 --- a/drm/nouveau/include/nvkm/subdev/bar.h +++ b/drm/nouveau/include/nvkm/subdev/bar.h @@ -1,28 +1,24 @@ #ifndef __NVKM_BAR_H__ #define __NVKM_BAR_H__ #include <core/subdev.h> -struct nvkm_mem; struct nvkm_vma; struct nvkm_bar { + const struct nvkm_bar_func *func; struct nvkm_subdev subdev; - struct nvkm_vm *(*kmap)(struct nvkm_bar *); - int (*umap)(struct nvkm_bar *, u64 size, int type, struct nvkm_vma *); - void (*unmap)(struct nvkm_bar *, struct nvkm_vma *); - void (*flush)(struct nvkm_bar *); + spinlock_t lock; /* whether the BAR supports to be ioremapped WC or should be uncached */ bool iomap_uncached; }; -static inline struct nvkm_bar * -nvkm_bar(void *obj) -{ - return (void *)nvkm_subdev(obj, NVDEV_SUBDEV_BAR); -} +void nvkm_bar_flush(struct nvkm_bar *); +struct nvkm_vm *nvkm_bar_kmap(struct nvkm_bar *); +int nvkm_bar_umap(struct nvkm_bar *, u64 size, int type, struct nvkm_vma *); -extern struct nvkm_oclass nv50_bar_oclass; -extern struct nvkm_oclass gf100_bar_oclass; -extern struct nvkm_oclass gk20a_bar_oclass; +int nv50_bar_new(struct nvkm_device *, int, struct nvkm_bar **); +int g84_bar_new(struct nvkm_device *, int, struct nvkm_bar **); +int gf100_bar_new(struct nvkm_device *, int, struct nvkm_bar **); +int gk20a_bar_new(struct nvkm_device *, int, struct nvkm_bar **); #endif |