1/* SPDX-License-Identifier: MIT */
2#ifndef __GF100_BAR_H__
3#define __GF100_BAR_H__
4#define gf100_bar(p) container_of((p), struct gf100_bar, base)
5#include "priv.h"
6
7struct gf100_barN {
8	struct nvkm_memory *inst;
9	struct nvkm_vmm *vmm;
10};
11
12struct gf100_bar {
13	struct nvkm_bar base;
14	bool bar2_halve;
15	struct gf100_barN bar[2];
16};
17
18int gf100_bar_new_(const struct nvkm_bar_func *, struct nvkm_device *, enum nvkm_subdev_type,
19		   int, struct nvkm_bar **);
20void *gf100_bar_dtor(struct nvkm_bar *);
21int gf100_bar_oneinit(struct nvkm_bar *);
22void gf100_bar_bar1_init(struct nvkm_bar *);
23void gf100_bar_bar1_wait(struct nvkm_bar *);
24struct nvkm_vmm *gf100_bar_bar1_vmm(struct nvkm_bar *);
25void gf100_bar_bar2_init(struct nvkm_bar *);
26struct nvkm_vmm *gf100_bar_bar2_vmm(struct nvkm_bar *);
27#endif
28