1 /* SPDX-License-Identifier: GPL-2.0 */
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)
9 struct nv50_disp_root
{
10 const struct nv50_disp_root_func
*func
;
11 struct nv50_disp
*disp
;
12 struct nvkm_object object
;
14 struct nvkm_gpuobj
*instmem
;
15 struct nvkm_ramht
*ramht
;
18 struct nv50_disp_root_func
{
19 int (*init
)(struct nv50_disp_root
*);
20 void (*fini
)(struct nv50_disp_root
*);
21 const struct nv50_disp_dmac_oclass
*dmac
[3];
22 const struct nv50_disp_pioc_oclass
*pioc
[2];
25 int nv50_disp_root_new_(const struct nv50_disp_root_func
*, struct nvkm_disp
*,
26 const struct nvkm_oclass
*, void *data
, u32 size
,
27 struct nvkm_object
**);
28 int nv50_disp_root_init(struct nv50_disp_root
*);
29 void nv50_disp_root_fini(struct nv50_disp_root
*);
31 int gf119_disp_root_init(struct nv50_disp_root
*);
32 void gf119_disp_root_fini(struct nv50_disp_root
*);
34 extern const struct nvkm_disp_oclass nv50_disp_root_oclass
;
35 extern const struct nvkm_disp_oclass g84_disp_root_oclass
;
36 extern const struct nvkm_disp_oclass g94_disp_root_oclass
;
37 extern const struct nvkm_disp_oclass gt200_disp_root_oclass
;
38 extern const struct nvkm_disp_oclass gt215_disp_root_oclass
;
39 extern const struct nvkm_disp_oclass gf119_disp_root_oclass
;
40 extern const struct nvkm_disp_oclass gk104_disp_root_oclass
;
41 extern const struct nvkm_disp_oclass gk110_disp_root_oclass
;
42 extern const struct nvkm_disp_oclass gm107_disp_root_oclass
;
43 extern const struct nvkm_disp_oclass gm200_disp_root_oclass
;
44 extern const struct nvkm_disp_oclass gp100_disp_root_oclass
;
45 extern const struct nvkm_disp_oclass gp102_disp_root_oclass
;