1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */ 2c39f472eSBen Skeggs #ifndef __NVKM_BAR_PRIV_H__ 3c39f472eSBen Skeggs #define __NVKM_BAR_PRIV_H__ 432932281SBen Skeggs #define nvkm_bar(p) container_of((p), struct nvkm_bar, subdev) 5c39f472eSBen Skeggs #include <subdev/bar.h> 6c39f472eSBen Skeggs 732932281SBen Skeggs void nvkm_bar_ctor(const struct nvkm_bar_func *, struct nvkm_device *, 8*917b24a3SBen Skeggs enum nvkm_subdev_type, int, struct nvkm_bar *); 9c39f472eSBen Skeggs 1032932281SBen Skeggs struct nvkm_bar_func { 1132932281SBen Skeggs void *(*dtor)(struct nvkm_bar *); 1232932281SBen Skeggs int (*oneinit)(struct nvkm_bar *); 13e69dae85SBen Skeggs void (*init)(struct nvkm_bar *); 147313cfa4SBen Skeggs 157313cfa4SBen Skeggs struct { 167313cfa4SBen Skeggs void (*init)(struct nvkm_bar *); 17bbb163e1SBen Skeggs void (*fini)(struct nvkm_bar *); 187313cfa4SBen Skeggs void (*wait)(struct nvkm_bar *); 19570889dcSBen Skeggs struct nvkm_vmm *(*vmm)(struct nvkm_bar *); 2048fe0247SBen Skeggs } bar1, bar2; 217313cfa4SBen Skeggs 2232932281SBen Skeggs void (*flush)(struct nvkm_bar *); 2332932281SBen Skeggs }; 24c39f472eSBen Skeggs 25bbb163e1SBen Skeggs void nv50_bar_bar1_fini(struct nvkm_bar *); 26e988952eSBen Skeggs void nv50_bar_bar2_fini(struct nvkm_bar *); 27bbb163e1SBen Skeggs 28245dcfe9SBen Skeggs void g84_bar_flush(struct nvkm_bar *); 29bbb163e1SBen Skeggs 30bbb163e1SBen Skeggs void gf100_bar_bar1_fini(struct nvkm_bar *); 31e988952eSBen Skeggs void gf100_bar_bar2_fini(struct nvkm_bar *); 3270433b90SBen Skeggs 3370433b90SBen Skeggs void gm107_bar_bar1_wait(struct nvkm_bar *); 34c39f472eSBen Skeggs #endif 35