1#ifndef __NVKM_FB_RAM_PRIV_H__
2#define __NVKM_FB_RAM_PRIV_H__
3#include "priv.h"
4
5int  nvkm_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
6		   enum nvkm_ram_type, u64 size, u32 tags,
7		   struct nvkm_ram *);
8int  nvkm_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
9		   enum nvkm_ram_type, u64 size, u32 tags,
10		   struct nvkm_ram **);
11void nvkm_ram_del(struct nvkm_ram **);
12int  nvkm_ram_init(struct nvkm_ram *);
13
14extern const struct nvkm_ram_func nv04_ram_func;
15
16int  nv50_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
17		   struct nvkm_ram *);
18int  nv50_ram_get(struct nvkm_ram *, u64, u32, u32, u32, struct nvkm_mem **);
19void nv50_ram_put(struct nvkm_ram *, struct nvkm_mem **);
20void __nv50_ram_put(struct nvkm_ram *, struct nvkm_mem *);
21
22int  gf100_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
23		    u32, struct nvkm_ram *);
24int  gf100_ram_get(struct nvkm_ram *, u64, u32, u32, u32, struct nvkm_mem **);
25void gf100_ram_put(struct nvkm_ram *, struct nvkm_mem **);
26
27int  gk104_ram_init(struct nvkm_ram *ram);
28
29/* RAM type-specific MR calculation routines */
30int nvkm_sddr2_calc(struct nvkm_ram *);
31int nvkm_sddr3_calc(struct nvkm_ram *);
32int nvkm_gddr3_calc(struct nvkm_ram *);
33int nvkm_gddr5_calc(struct nvkm_ram *, bool nuts);
34
35int nv04_ram_new(struct nvkm_fb *, struct nvkm_ram **);
36int nv10_ram_new(struct nvkm_fb *, struct nvkm_ram **);
37int nv1a_ram_new(struct nvkm_fb *, struct nvkm_ram **);
38int nv20_ram_new(struct nvkm_fb *, struct nvkm_ram **);
39int nv40_ram_new(struct nvkm_fb *, struct nvkm_ram **);
40int nv41_ram_new(struct nvkm_fb *, struct nvkm_ram **);
41int nv44_ram_new(struct nvkm_fb *, struct nvkm_ram **);
42int nv49_ram_new(struct nvkm_fb *, struct nvkm_ram **);
43int nv4e_ram_new(struct nvkm_fb *, struct nvkm_ram **);
44int nv50_ram_new(struct nvkm_fb *, struct nvkm_ram **);
45int gt215_ram_new(struct nvkm_fb *, struct nvkm_ram **);
46int mcp77_ram_new(struct nvkm_fb *, struct nvkm_ram **);
47int gf100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
48int gk104_ram_new(struct nvkm_fb *, struct nvkm_ram **);
49int gm107_ram_new(struct nvkm_fb *, struct nvkm_ram **);
50#endif
51