1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */ 232932281SBen Skeggs #ifndef __GF100_BAR_H__ 332932281SBen Skeggs #define __GF100_BAR_H__ 432932281SBen Skeggs #define gf100_bar(p) container_of((p), struct gf100_bar, base) 532932281SBen Skeggs #include "priv.h" 632932281SBen Skeggs 7269fe32dSBen Skeggs struct gf100_barN { 8d30af7ceSBen Skeggs struct nvkm_memory *inst; 97eac5f4eSBen Skeggs struct nvkm_vmm *vmm; 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 18*917b24a3SBen Skeggs int gf100_bar_new_(const struct nvkm_bar_func *, struct nvkm_device *, enum nvkm_subdev_type, 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 *); 26a78dbce9SBen Skeggs struct nvkm_vmm *gf100_bar_bar2_vmm(struct nvkm_bar *); 2732932281SBen Skeggs #endif 28