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 {
7d30af7ceSBen Skeggs 	struct nvkm_memory *inst;
87eac5f4eSBen Skeggs 	struct nvkm_vmm *vmm;
932932281SBen Skeggs };
1032932281SBen Skeggs 
1132932281SBen Skeggs struct gf100_bar {
1232932281SBen Skeggs 	struct nvkm_bar base;
13485c2c91SBen Skeggs 	bool bar2_halve;
14269fe32dSBen Skeggs 	struct gf100_barN bar[2];
1532932281SBen Skeggs };
1632932281SBen Skeggs 
1732932281SBen Skeggs int gf100_bar_new_(const struct nvkm_bar_func *, struct nvkm_device *,
1832932281SBen Skeggs 		   int, struct nvkm_bar **);
1932932281SBen Skeggs void *gf100_bar_dtor(struct nvkm_bar *);
2032932281SBen Skeggs int gf100_bar_oneinit(struct nvkm_bar *);
217313cfa4SBen Skeggs void gf100_bar_bar1_init(struct nvkm_bar *);
227313cfa4SBen Skeggs void gf100_bar_bar1_wait(struct nvkm_bar *);
23570889dcSBen Skeggs struct nvkm_vmm *gf100_bar_bar1_vmm(struct nvkm_bar *);
2448fe0247SBen Skeggs void gf100_bar_bar2_init(struct nvkm_bar *);
25a78dbce9SBen Skeggs struct nvkm_vmm *gf100_bar_bar2_vmm(struct nvkm_bar *);
2632932281SBen Skeggs #endif
27