1/*	$NetBSD: disp.h,v 1.3 2021/12/18 23:45:33 riastradh Exp $	*/
2
3/* SPDX-License-Identifier: MIT */
4#ifndef __NVKM_DISP_H__
5#define __NVKM_DISP_H__
6#define nvkm_disp(p) container_of((p), struct nvkm_disp, engine)
7#include <core/engine.h>
8#include <core/event.h>
9
10struct nvkm_disp {
11	const struct nvkm_disp_func *func;
12	struct nvkm_engine engine;
13
14	struct list_head head;
15	struct list_head ior;
16	struct list_head outp;
17	struct list_head conn;
18
19	struct nvkm_event hpd;
20	struct nvkm_event vblank;
21
22	struct nvkm_oproxy *client;
23};
24
25int nv04_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
26int nv50_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
27int g84_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
28int gt200_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
29int g94_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
30int mcp77_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
31int gt215_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
32int mcp89_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
33int gf119_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
34int gk104_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
35int gk110_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
36int gm107_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
37int gm200_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
38int gp100_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
39int gp102_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
40int gv100_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
41int tu102_disp_new(struct nvkm_device *, int, struct nvkm_disp **);
42#endif
43