]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blob - drivers/gpu/drm/nouveau/nvkm/subdev/bar/priv.h
drm/nouveau/bar/gm107-: wait for instance block binding to complete
[mirror_ubuntu-eoan-kernel.git] / drivers / gpu / drm / nouveau / nvkm / subdev / bar / priv.h
1 #ifndef __NVKM_BAR_PRIV_H__
2 #define __NVKM_BAR_PRIV_H__
3 #define nvkm_bar(p) container_of((p), struct nvkm_bar, subdev)
4 #include <subdev/bar.h>
5
6 void nvkm_bar_ctor(const struct nvkm_bar_func *, struct nvkm_device *,
7 int, struct nvkm_bar *);
8
9 struct nvkm_bar_func {
10 void *(*dtor)(struct nvkm_bar *);
11 int (*oneinit)(struct nvkm_bar *);
12 void (*init)(struct nvkm_bar *);
13
14 struct {
15 void (*init)(struct nvkm_bar *);
16 void (*fini)(struct nvkm_bar *);
17 void (*wait)(struct nvkm_bar *);
18 struct nvkm_vmm *(*vmm)(struct nvkm_bar *);
19 } bar1, bar2;
20
21 void (*flush)(struct nvkm_bar *);
22 };
23
24 void nv50_bar_bar1_fini(struct nvkm_bar *);
25 void nv50_bar_bar2_fini(struct nvkm_bar *);
26
27 void g84_bar_flush(struct nvkm_bar *);
28
29 void gf100_bar_bar1_fini(struct nvkm_bar *);
30 void gf100_bar_bar2_fini(struct nvkm_bar *);
31
32 void gm107_bar_bar1_wait(struct nvkm_bar *);
33 #endif