ram.h 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef __NVKM_FB_RAM_PRIV_H__
  2. #define __NVKM_FB_RAM_PRIV_H__
  3. #include "priv.h"
  4. int nvkm_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
  5. enum nvkm_ram_type, u64 size, u32 tags,
  6. struct nvkm_ram *);
  7. int nvkm_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
  8. enum nvkm_ram_type, u64 size, u32 tags,
  9. struct nvkm_ram **);
  10. void nvkm_ram_del(struct nvkm_ram **);
  11. int nvkm_ram_init(struct nvkm_ram *);
  12. extern const struct nvkm_ram_func nv04_ram_func;
  13. int nv50_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
  14. struct nvkm_ram *);
  15. int nv50_ram_get(struct nvkm_ram *, u64, u32, u32, u32, struct nvkm_mem **);
  16. void nv50_ram_put(struct nvkm_ram *, struct nvkm_mem **);
  17. void __nv50_ram_put(struct nvkm_ram *, struct nvkm_mem *);
  18. int gf100_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
  19. struct nvkm_ram **);
  20. int gf100_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
  21. struct nvkm_ram *);
  22. u32 gf100_ram_probe_fbp(const struct nvkm_ram_func *,
  23. struct nvkm_device *, int, int *);
  24. u32 gf100_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
  25. struct nvkm_device *, int, int *);
  26. u32 gf100_ram_probe_fbpa_amount(struct nvkm_device *, int);
  27. int gf100_ram_get(struct nvkm_ram *, u64, u32, u32, u32, struct nvkm_mem **);
  28. void gf100_ram_put(struct nvkm_ram *, struct nvkm_mem **);
  29. int gf100_ram_init(struct nvkm_ram *);
  30. int gf100_ram_calc(struct nvkm_ram *, u32);
  31. int gf100_ram_prog(struct nvkm_ram *);
  32. void gf100_ram_tidy(struct nvkm_ram *);
  33. u32 gf108_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
  34. struct nvkm_device *, int, int *);
  35. int gk104_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
  36. struct nvkm_ram **);
  37. void *gk104_ram_dtor(struct nvkm_ram *);
  38. int gk104_ram_init(struct nvkm_ram *);
  39. int gk104_ram_calc(struct nvkm_ram *, u32);
  40. int gk104_ram_prog(struct nvkm_ram *);
  41. void gk104_ram_tidy(struct nvkm_ram *);
  42. u32 gm107_ram_probe_fbp(const struct nvkm_ram_func *,
  43. struct nvkm_device *, int, int *);
  44. u32 gm200_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
  45. struct nvkm_device *, int, int *);
  46. /* RAM type-specific MR calculation routines */
  47. int nvkm_sddr2_calc(struct nvkm_ram *);
  48. int nvkm_sddr3_calc(struct nvkm_ram *);
  49. int nvkm_gddr3_calc(struct nvkm_ram *);
  50. int nvkm_gddr5_calc(struct nvkm_ram *, bool nuts);
  51. int nv04_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  52. int nv10_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  53. int nv1a_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  54. int nv20_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  55. int nv40_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  56. int nv41_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  57. int nv44_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  58. int nv49_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  59. int nv4e_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  60. int nv50_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  61. int gt215_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  62. int mcp77_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  63. int gf100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  64. int gf108_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  65. int gk104_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  66. int gm107_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  67. int gm200_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  68. int gp100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
  69. #endif