1 /* SPDX-License-Identifier: MIT */ 2 #ifndef __NV50_DISP_ROOT_H__ 3 #define __NV50_DISP_ROOT_H__ 4 #define nv50_disp_root(p) container_of((p), struct nv50_disp_root, object) 5 #include <core/object.h> 6 #include "nv50.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 14 struct nv50_disp_root_func { 15 int blah; 16 struct nv50_disp_user { 17 struct nvkm_sclass base; 18 int (*ctor)(const struct nvkm_oclass *, void *argv, u32 argc, 19 struct nv50_disp *, struct nvkm_object **); 20 } user[]; 21 }; 22 23 int nv50_disp_root_new_(const struct nv50_disp_root_func *, struct nvkm_disp *, 24 const struct nvkm_oclass *, void *data, u32 size, 25 struct nvkm_object **); 26 27 int gv100_disp_caps_new(const struct nvkm_oclass *, void *, u32, 28 struct nv50_disp *, struct nvkm_object **); 29 30 extern const struct nvkm_disp_oclass nv50_disp_root_oclass; 31 extern const struct nvkm_disp_oclass g84_disp_root_oclass; 32 extern const struct nvkm_disp_oclass g94_disp_root_oclass; 33 extern const struct nvkm_disp_oclass gt200_disp_root_oclass; 34 extern const struct nvkm_disp_oclass gt215_disp_root_oclass; 35 extern const struct nvkm_disp_oclass gf119_disp_root_oclass; 36 extern const struct nvkm_disp_oclass gk104_disp_root_oclass; 37 extern const struct nvkm_disp_oclass gk110_disp_root_oclass; 38 extern const struct nvkm_disp_oclass gm107_disp_root_oclass; 39 extern const struct nvkm_disp_oclass gm200_disp_root_oclass; 40 extern const struct nvkm_disp_oclass gp100_disp_root_oclass; 41 extern const struct nvkm_disp_oclass gp102_disp_root_oclass; 42 extern const struct nvkm_disp_oclass gv100_disp_root_oclass; 43 extern const struct nvkm_disp_oclass tu102_disp_root_oclass; 44 #endif 45