1c39f472eSBen Skeggs #ifndef __NVKM_BAR_PRIV_H__ 2c39f472eSBen Skeggs #define __NVKM_BAR_PRIV_H__ 332932281SBen Skeggs #define nvkm_bar(p) container_of((p), struct nvkm_bar, subdev) 4c39f472eSBen Skeggs #include <subdev/bar.h> 5c39f472eSBen Skeggs 632932281SBen Skeggs void nvkm_bar_ctor(const struct nvkm_bar_func *, struct nvkm_device *, 732932281SBen Skeggs int, struct nvkm_bar *); 8c39f472eSBen Skeggs 932932281SBen Skeggs struct nvkm_bar_func { 1032932281SBen Skeggs void *(*dtor)(struct nvkm_bar *); 1132932281SBen Skeggs int (*oneinit)(struct nvkm_bar *); 12e69dae85SBen Skeggs void (*init)(struct nvkm_bar *); 137313cfa4SBen Skeggs 147313cfa4SBen Skeggs struct { 157313cfa4SBen Skeggs void (*init)(struct nvkm_bar *); 16bbb163e1SBen Skeggs void (*fini)(struct nvkm_bar *); 177313cfa4SBen Skeggs void (*wait)(struct nvkm_bar *); 1848fe0247SBen Skeggs } bar1, bar2; 197313cfa4SBen Skeggs 2032932281SBen Skeggs struct nvkm_vm *(*kmap)(struct nvkm_bar *); 2132932281SBen Skeggs int (*umap)(struct nvkm_bar *, u64 size, int type, struct nvkm_vma *); 2232932281SBen Skeggs void (*flush)(struct nvkm_bar *); 2332932281SBen Skeggs }; 24c39f472eSBen Skeggs 25bbb163e1SBen Skeggs void nv50_bar_bar1_fini(struct nvkm_bar *); 26bbb163e1SBen Skeggs 27245dcfe9SBen Skeggs void g84_bar_flush(struct nvkm_bar *); 28bbb163e1SBen Skeggs 29bbb163e1SBen Skeggs void gf100_bar_bar1_fini(struct nvkm_bar *); 30c39f472eSBen Skeggs #endif 31