]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - drivers/gpu/drm/nouveau/nvkm/subdev/fb/ram.h
a007699b60a2dc8cd32a43e4737ac270e9ffe912
[mirror_ubuntu-bionic-kernel.git] / drivers / gpu / drm / nouveau / nvkm / subdev / fb / ram.h
1 #ifndef __NVKM_FB_RAM_PRIV_H__
2 #define __NVKM_FB_RAM_PRIV_H__
3 #include "priv.h"
4
5 int nvkm_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
6 enum nvkm_ram_type, u64 size, struct nvkm_ram *);
7 int nvkm_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
8 enum nvkm_ram_type, u64 size, struct nvkm_ram **);
9 void nvkm_ram_del(struct nvkm_ram **);
10 int nvkm_ram_init(struct nvkm_ram *);
11
12 extern const struct nvkm_ram_func nv04_ram_func;
13
14 int nv50_ram_ctor(const struct nvkm_ram_func *, struct nvkm_fb *,
15 struct nvkm_ram *);
16 int nv50_ram_get(struct nvkm_ram *, u64, u32, u32, u32, struct nvkm_mem **);
17 void nv50_ram_put(struct nvkm_ram *, struct nvkm_mem **);
18 void __nv50_ram_put(struct nvkm_ram *, struct nvkm_mem *);
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_get(struct nvkm_ram *, u64, u32, u32, u32, struct nvkm_mem **);
30 void gf100_ram_put(struct nvkm_ram *, struct nvkm_mem **);
31 int gf100_ram_init(struct nvkm_ram *);
32 int gf100_ram_calc(struct nvkm_ram *, u32);
33 int gf100_ram_prog(struct nvkm_ram *);
34 void gf100_ram_tidy(struct nvkm_ram *);
35
36 u32 gf108_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
37 struct nvkm_device *, int, int *);
38
39 int gk104_ram_new_(const struct nvkm_ram_func *, struct nvkm_fb *,
40 struct nvkm_ram **);
41 void *gk104_ram_dtor(struct nvkm_ram *);
42 int gk104_ram_init(struct nvkm_ram *);
43 int gk104_ram_calc(struct nvkm_ram *, u32);
44 int gk104_ram_prog(struct nvkm_ram *);
45 void gk104_ram_tidy(struct nvkm_ram *);
46
47 u32 gm107_ram_probe_fbp(const struct nvkm_ram_func *,
48 struct nvkm_device *, int, int *);
49
50 u32 gm200_ram_probe_fbp_amount(const struct nvkm_ram_func *, u32,
51 struct nvkm_device *, int, int *);
52
53 /* RAM type-specific MR calculation routines */
54 int nvkm_sddr2_calc(struct nvkm_ram *);
55 int nvkm_sddr3_calc(struct nvkm_ram *);
56 int nvkm_gddr3_calc(struct nvkm_ram *);
57 int nvkm_gddr5_calc(struct nvkm_ram *, bool nuts);
58
59 int nv04_ram_new(struct nvkm_fb *, struct nvkm_ram **);
60 int nv10_ram_new(struct nvkm_fb *, struct nvkm_ram **);
61 int nv1a_ram_new(struct nvkm_fb *, struct nvkm_ram **);
62 int nv20_ram_new(struct nvkm_fb *, struct nvkm_ram **);
63 int nv40_ram_new(struct nvkm_fb *, struct nvkm_ram **);
64 int nv41_ram_new(struct nvkm_fb *, struct nvkm_ram **);
65 int nv44_ram_new(struct nvkm_fb *, struct nvkm_ram **);
66 int nv49_ram_new(struct nvkm_fb *, struct nvkm_ram **);
67 int nv4e_ram_new(struct nvkm_fb *, struct nvkm_ram **);
68 int nv50_ram_new(struct nvkm_fb *, struct nvkm_ram **);
69 int gt215_ram_new(struct nvkm_fb *, struct nvkm_ram **);
70 int mcp77_ram_new(struct nvkm_fb *, struct nvkm_ram **);
71 int gf100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
72 int gf108_ram_new(struct nvkm_fb *, struct nvkm_ram **);
73 int gk104_ram_new(struct nvkm_fb *, struct nvkm_ram **);
74 int gm107_ram_new(struct nvkm_fb *, struct nvkm_ram **);
75 int gm200_ram_new(struct nvkm_fb *, struct nvkm_ram **);
76 int gp100_ram_new(struct nvkm_fb *, struct nvkm_ram **);
77 #endif