1b7019ac5SIlia Mirkin /* SPDX-License-Identifier: MIT */ 2245dcfe9SBen Skeggs #ifndef __NVKM_BAR_H__ 3245dcfe9SBen Skeggs #define __NVKM_BAR_H__ 4c39f472eSBen Skeggs #include <core/subdev.h> 5245dcfe9SBen Skeggs struct nvkm_vma; 6c39f472eSBen Skeggs 7245dcfe9SBen Skeggs struct nvkm_bar { 832932281SBen Skeggs const struct nvkm_bar_func *func; 95b0c189fSBen Skeggs struct nvkm_subdev subdev; 10c39f472eSBen Skeggs 1132932281SBen Skeggs spinlock_t lock; 1248fe0247SBen Skeggs bool bar2; 13c39f472eSBen Skeggs 14c39f472eSBen Skeggs /* whether the BAR supports to be ioremapped WC or should be uncached */ 15c39f472eSBen Skeggs bool iomap_uncached; 16c39f472eSBen Skeggs }; 17c39f472eSBen Skeggs 18570889dcSBen Skeggs struct nvkm_vmm *nvkm_bar_bar1_vmm(struct nvkm_device *); 19302daab1SBen Skeggs void nvkm_bar_bar1_reset(struct nvkm_device *); 2048fe0247SBen Skeggs void nvkm_bar_bar2_init(struct nvkm_device *); 21e988952eSBen Skeggs void nvkm_bar_bar2_fini(struct nvkm_device *); 22302daab1SBen Skeggs void nvkm_bar_bar2_reset(struct nvkm_device *); 23a78dbce9SBen Skeggs struct nvkm_vmm *nvkm_bar_bar2_vmm(struct nvkm_device *); 2432932281SBen Skeggs void nvkm_bar_flush(struct nvkm_bar *); 25c39f472eSBen Skeggs 26*917b24a3SBen Skeggs int nv50_bar_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bar **); 27*917b24a3SBen Skeggs int g84_bar_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bar **); 28*917b24a3SBen Skeggs int gf100_bar_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bar **); 29*917b24a3SBen Skeggs int gk20a_bar_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bar **); 30*917b24a3SBen Skeggs int gm107_bar_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bar **); 31*917b24a3SBen Skeggs int gm20b_bar_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bar **); 32*917b24a3SBen Skeggs int tu102_bar_new(struct nvkm_device *, enum nvkm_subdev_type, int inst, struct nvkm_bar **); 33c39f472eSBen Skeggs #endif 34