rootnv50.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef __NV50_DISP_ROOT_H__
  2. #define __NV50_DISP_ROOT_H__
  3. #define nv50_disp_root(p) container_of((p), struct nv50_disp_root, object)
  4. #include "nv50.h"
  5. #include "channv50.h"
  6. #include "dmacnv50.h"
  7. struct nv50_disp_root {
  8. const struct nv50_disp_root_func *func;
  9. struct nv50_disp *disp;
  10. struct nvkm_object object;
  11. struct nvkm_gpuobj *instmem;
  12. struct nvkm_ramht *ramht;
  13. };
  14. struct nv50_disp_root_func {
  15. int (*init)(struct nv50_disp_root *);
  16. void (*fini)(struct nv50_disp_root *);
  17. const struct nv50_disp_dmac_oclass *dmac[3];
  18. const struct nv50_disp_pioc_oclass *pioc[2];
  19. };
  20. int nv50_disp_root_new_(const struct nv50_disp_root_func *, struct nvkm_disp *,
  21. const struct nvkm_oclass *, void *data, u32 size,
  22. struct nvkm_object **);
  23. int nv50_disp_root_init(struct nv50_disp_root *);
  24. void nv50_disp_root_fini(struct nv50_disp_root *);
  25. int gf119_disp_root_init(struct nv50_disp_root *);
  26. void gf119_disp_root_fini(struct nv50_disp_root *);
  27. extern const struct nvkm_disp_oclass nv50_disp_root_oclass;
  28. extern const struct nvkm_disp_oclass g84_disp_root_oclass;
  29. extern const struct nvkm_disp_oclass g94_disp_root_oclass;
  30. extern const struct nvkm_disp_oclass gt200_disp_root_oclass;
  31. extern const struct nvkm_disp_oclass gt215_disp_root_oclass;
  32. extern const struct nvkm_disp_oclass gf119_disp_root_oclass;
  33. extern const struct nvkm_disp_oclass gk104_disp_root_oclass;
  34. extern const struct nvkm_disp_oclass gk110_disp_root_oclass;
  35. extern const struct nvkm_disp_oclass gm107_disp_root_oclass;
  36. extern const struct nvkm_disp_oclass gm200_disp_root_oclass;
  37. extern const struct nvkm_disp_oclass gp100_disp_root_oclass;
  38. extern const struct nvkm_disp_oclass gp102_disp_root_oclass;
  39. #endif