1 /* SPDX-License-Identifier: MIT */ 2 #ifndef __NVKM_DISP_PRIV_H__ 3 #define __NVKM_DISP_PRIV_H__ 4 #include <engine/disp.h> 5 #include "outp.h" 6 7 int nvkm_disp_ctor(const struct nvkm_disp_func *, struct nvkm_device *, enum nvkm_subdev_type, int, 8 struct nvkm_disp *); 9 int nvkm_disp_new_(const struct nvkm_disp_func *, struct nvkm_device *, enum nvkm_subdev_type, int, 10 struct nvkm_disp **); 11 void nvkm_disp_vblank(struct nvkm_disp *, int head); 12 13 struct nvkm_disp_func { 14 void *(*dtor)(struct nvkm_disp *); 15 int (*oneinit)(struct nvkm_disp *); 16 int (*init)(struct nvkm_disp *); 17 void (*fini)(struct nvkm_disp *); 18 void (*intr)(struct nvkm_disp *); 19 20 const struct nvkm_disp_oclass *(*root)(struct nvkm_disp *); 21 }; 22 23 int nvkm_disp_ntfy(struct nvkm_object *, u32, struct nvkm_event **); 24 25 extern const struct nvkm_disp_oclass nv04_disp_root_oclass; 26 27 struct nvkm_disp_oclass { 28 int (*ctor)(struct nvkm_disp *, const struct nvkm_oclass *, 29 void *data, u32 size, struct nvkm_object **); 30 struct nvkm_sclass base; 31 }; 32 #endif 33