132932281SBen Skeggs #ifndef __GF100_BAR_H__
232932281SBen Skeggs #define __GF100_BAR_H__
332932281SBen Skeggs #define gf100_bar(p) container_of((p), struct gf100_bar, base)
432932281SBen Skeggs #include "priv.h"
532932281SBen Skeggs 
6269fe32dSBen Skeggs struct gf100_barN {
732932281SBen Skeggs 	struct nvkm_memory *mem;
832932281SBen Skeggs 	struct nvkm_gpuobj *pgd;
932932281SBen Skeggs 	struct nvkm_vm *vm;
1032932281SBen Skeggs };
1132932281SBen Skeggs 
1232932281SBen Skeggs struct gf100_bar {
1332932281SBen Skeggs 	struct nvkm_bar base;
14485c2c91SBen Skeggs 	bool bar2_halve;
15269fe32dSBen Skeggs 	struct gf100_barN bar[2];
1632932281SBen Skeggs };
1732932281SBen Skeggs 
1832932281SBen Skeggs int gf100_bar_new_(const struct nvkm_bar_func *, struct nvkm_device *,
1932932281SBen Skeggs 		   int, struct nvkm_bar **);
2032932281SBen Skeggs void *gf100_bar_dtor(struct nvkm_bar *);
2132932281SBen Skeggs int gf100_bar_oneinit(struct nvkm_bar *);
227313cfa4SBen Skeggs void gf100_bar_bar1_init(struct nvkm_bar *);
237313cfa4SBen Skeggs void gf100_bar_bar1_wait(struct nvkm_bar *);
24570889dcSBen Skeggs struct nvkm_vmm *gf100_bar_bar1_vmm(struct nvkm_bar *);
2548fe0247SBen Skeggs void gf100_bar_bar2_init(struct nvkm_bar *);
2632932281SBen Skeggs #endif
27