1 #ifndef __NV50_DISP_ROOT_H__ 2 #define __NV50_DISP_ROOT_H__ 3 #define nv50_disp_root(p) container_of((p), struct nv50_disp_root, object) 4 #include "nv50.h" 5 #include "channv50.h" 6 #include "dmacnv50.h" 7 8 struct nv50_disp_root { 9 const struct nv50_disp_root_func *func; 10 struct nv50_disp *disp; 11 struct nvkm_object object; 12 13 struct nvkm_gpuobj *instmem; 14 struct nvkm_ramht *ramht; 15 }; 16 17 struct nv50_disp_root_func { 18 int (*init)(struct nv50_disp_root *); 19 void (*fini)(struct nv50_disp_root *); 20 const struct nv50_disp_dmac_oclass *dmac[3]; 21 const struct nv50_disp_pioc_oclass *pioc[2]; 22 }; 23 24 int nv50_disp_root_new_(const struct nv50_disp_root_func *, struct nvkm_disp *, 25 const struct nvkm_oclass *, void *data, u32 size, 26 struct nvkm_object **); 27 int nv50_disp_root_init(struct nv50_disp_root *); 28 void nv50_disp_root_fini(struct nv50_disp_root *); 29 30 int gf119_disp_root_init(struct nv50_disp_root *); 31 void gf119_disp_root_fini(struct nv50_disp_root *); 32 33 extern const struct nvkm_disp_oclass nv50_disp_root_oclass; 34 extern const struct nvkm_disp_oclass g84_disp_root_oclass; 35 extern const struct nvkm_disp_oclass g94_disp_root_oclass; 36 extern const struct nvkm_disp_oclass gt200_disp_root_oclass; 37 extern const struct nvkm_disp_oclass gt215_disp_root_oclass; 38 extern const struct nvkm_disp_oclass gf119_disp_root_oclass; 39 extern const struct nvkm_disp_oclass gk104_disp_root_oclass; 40 extern const struct nvkm_disp_oclass gk110_disp_root_oclass; 41 extern const struct nvkm_disp_oclass gm107_disp_root_oclass; 42 extern const struct nvkm_disp_oclass gm200_disp_root_oclass; 43 extern const struct nvkm_disp_oclass gp100_disp_root_oclass; 44 extern const struct nvkm_disp_oclass gp104_disp_root_oclass; 45 #endif 46