diff options
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h index ec57d8b6bce9..3df687781f9a 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/priv.h @@ -3,6 +3,7 @@ #define __NVKM_DISP_PRIV_H__ #include <engine/disp.h> #include "outp.h" +struct nv50_disp; int nvkm_disp_ctor(const struct nvkm_disp_func *, struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_disp *); @@ -17,13 +18,34 @@ struct nvkm_disp_func { void (*fini)(struct nvkm_disp *); void (*intr)(struct nvkm_disp *); - const struct nvkm_disp_oclass *(*root)(struct nvkm_disp *); + const struct nvkm_disp_oclass *root; + + int (*init_)(struct nv50_disp *); + void (*fini_)(struct nv50_disp *); + void (*intr_)(struct nv50_disp *); + void (*intr_error)(struct nv50_disp *, int chid); + + const struct nvkm_event_func *uevent; + void (*super)(struct work_struct *); + + struct { + int (*cnt)(struct nvkm_disp *, unsigned long *mask); + int (*new)(struct nvkm_disp *, int id); + } wndw, head, dac, sor, pior; + + u16 ramht_size; }; int nvkm_disp_ntfy(struct nvkm_object *, u32, struct nvkm_event **); extern const struct nvkm_disp_oclass nv04_disp_root_oclass; +void *nv50_disp_dtor_(struct nvkm_disp *); +int nv50_disp_oneinit_(struct nvkm_disp *); +int nv50_disp_init_(struct nvkm_disp *); +void nv50_disp_fini_(struct nvkm_disp *); +void nv50_disp_intr_(struct nvkm_disp *); + struct nvkm_disp_oclass { int (*ctor)(struct nvkm_disp *, const struct nvkm_oclass *, void *data, u32 size, struct nvkm_object **); |