1 /* $NetBSD: ram.h,v 1.3 2021/12/18 23:45:39 riastradh Exp $ */ 2 3 /* SPDX-License-Identifier: MIT */ 4 #ifndef __NVKM_FB_RAM_PRIV_H__ 5 #define __NVKM_FB_RAM_PRIV_H__ 6 #include "priv.h" 7 8 int nvkm_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *, 9 enum nvkm_ram_type, u64 size, struct nvkm_ram *); 10 int nvkm_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *, 11 enum nvkm_ram_type, u64 size, 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 20 int gf100_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *, 21 struct nvkm_ram **); 22 int gf100_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *, 23 struct nvkm_ram *); 24 u32 gf100_ram_probe_fbp(const struct nvkm_ram_func *, 25 struct nvkm_device *, int, int *); 26 u32 gf100_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32, 27 struct nvkm_device *, int, int *); 28 u32 gf100_ram_probe_fbpa_amount(struct nvkm_device *, int); 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 34 u32 gf108_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32, 35 struct nvkm_device *, int, int *); 36 37 int gk104_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *, 38 struct nvkm_ram **); 39 void *gk104_ram_dtor(struct nvkm_ram *); 40 int gk104_ram_init(struct nvkm_ram *); 41 int gk104_ram_calc(struct nvkm_ram *, u32); 42 int gk104_ram_prog(struct nvkm_ram *); 43 void gk104_ram_tidy(struct nvkm_ram *); 44 45 u32 gm107_ram_probe_fbp(const struct nvkm_ram_func *, 46 struct nvkm_device *, int, int *); 47 48 u32 gm200_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32, 49 struct nvkm_device *, int, int *); 50 51 /* RAM type-specific MR calculation routines */ 52 int nvkm_sddr2_calc(struct nvkm_ram *); 53 int nvkm_sddr3_calc(struct nvkm_ram *); 54 int nvkm_gddr3_calc(struct nvkm_ram *); 55 int nvkm_gddr5_calc(struct nvkm_ram *, bool nuts); 56 57 int nv04_ram_new(struct nvkm_fb *, struct nvkm_ram **); 58 int nv10_ram_new(struct nvkm_fb *, struct nvkm_ram **); 59 int nv1a_ram_new(struct nvkm_fb *, struct nvkm_ram **); 60 int nv20_ram_new(struct nvkm_fb *, struct nvkm_ram **); 61 int nv40_ram_new(struct nvkm_fb *, struct nvkm_ram **); 62 int nv41_ram_new(struct nvkm_fb *, struct nvkm_ram **); 63 int nv44_ram_new(struct nvkm_fb *, struct nvkm_ram **); 64 int nv49_ram_new(struct nvkm_fb *, struct nvkm_ram **); 65 int nv4e_ram_new(struct nvkm_fb *, struct nvkm_ram **); 66 int nv50_ram_new(struct nvkm_fb *, struct nvkm_ram **); 67 int gt215_ram_new(struct nvkm_fb *, struct nvkm_ram **); 68 int mcp77_ram_new(struct nvkm_fb *, struct nvkm_ram **); 69 int gf100_ram_new(struct nvkm_fb *, struct nvkm_ram **); 70 int gf108_ram_new(struct nvkm_fb *, struct nvkm_ram **); 71 int gk104_ram_new(struct nvkm_fb *, struct nvkm_ram **); 72 int gm107_ram_new(struct nvkm_fb *, struct nvkm_ram **); 73 int gm200_ram_new(struct nvkm_fb *, struct nvkm_ram **); 74 int gp100_ram_new(struct nvkm_fb *, struct nvkm_ram **); 75 #endif 76