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