priv.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #ifndef __NVKM_FB_PRIV_H__
  2. #define __NVKM_FB_PRIV_H__
  3. #define nvkm_fb(p) container_of((p), struct nvkm_fb, subdev)
  4. #include <subdev/fb.h>
  5. struct nvkm_bios;
  6. struct nvkm_fb_func {
  7. void *(*dtor)(struct nvkm_fb *);
  8. void (*init)(struct nvkm_fb *);
  9. void (*intr)(struct nvkm_fb *);
  10. struct {
  11. int regions;
  12. void (*init)(struct nvkm_fb *, int i, u32 addr, u32 size,
  13. u32 pitch, u32 flags, struct nvkm_fb_tile *);
  14. void (*comp)(struct nvkm_fb *, int i, u32 size, u32 flags,
  15. struct nvkm_fb_tile *);
  16. void (*fini)(struct nvkm_fb *, int i, struct nvkm_fb_tile *);
  17. void (*prog)(struct nvkm_fb *, int i, struct nvkm_fb_tile *);
  18. } tile;
  19. int (*ram_new)(struct nvkm_fb *, struct nvkm_ram **);
  20. bool (*memtype_valid)(struct nvkm_fb *, u32 memtype);
  21. };
  22. void nvkm_fb_ctor(const struct nvkm_fb_func *, struct nvkm_device *device,
  23. int index, struct nvkm_fb *);
  24. int nvkm_fb_new_(const struct nvkm_fb_func *, struct nvkm_device *device,
  25. int index, struct nvkm_fb **);
  26. int nvkm_fb_bios_memtype(struct nvkm_bios *);
  27. bool nv04_fb_memtype_valid(struct nvkm_fb *, u32 memtype);
  28. void nv10_fb_tile_init(struct nvkm_fb *, int i, u32 addr, u32 size,
  29. u32 pitch, u32 flags, struct nvkm_fb_tile *);
  30. void nv10_fb_tile_fini(struct nvkm_fb *, int i, struct nvkm_fb_tile *);
  31. void nv10_fb_tile_prog(struct nvkm_fb *, int, struct nvkm_fb_tile *);
  32. void nv20_fb_tile_init(struct nvkm_fb *, int i, u32 addr, u32 size,
  33. u32 pitch, u32 flags, struct nvkm_fb_tile *);
  34. void nv20_fb_tile_fini(struct nvkm_fb *, int i, struct nvkm_fb_tile *);
  35. void nv20_fb_tile_prog(struct nvkm_fb *, int, struct nvkm_fb_tile *);
  36. void nv30_fb_init(struct nvkm_fb *);
  37. void nv30_fb_tile_init(struct nvkm_fb *, int i, u32 addr, u32 size,
  38. u32 pitch, u32 flags, struct nvkm_fb_tile *);
  39. void nv40_fb_tile_comp(struct nvkm_fb *, int i, u32 size, u32 flags,
  40. struct nvkm_fb_tile *);
  41. void nv41_fb_init(struct nvkm_fb *);
  42. void nv41_fb_tile_prog(struct nvkm_fb *, int, struct nvkm_fb_tile *);
  43. void nv44_fb_init(struct nvkm_fb *);
  44. void nv44_fb_tile_prog(struct nvkm_fb *, int, struct nvkm_fb_tile *);
  45. void nv46_fb_tile_init(struct nvkm_fb *, int i, u32 addr, u32 size,
  46. u32 pitch, u32 flags, struct nvkm_fb_tile *);
  47. bool gf100_fb_memtype_valid(struct nvkm_fb *, u32);
  48. #endif