This source file includes following definitions.
- gf108_ram_probe_fbp_amount
- gf108_ram_new
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include "ram.h"
25
26 u32
27 gf108_ram_probe_fbp_amount(const struct nvkm_ram_func *func, u32 fbpao,
28 struct nvkm_device *device, int fbp, int *pltcs)
29 {
30 u32 fbpt = nvkm_rd32(device, 0x022438);
31 u32 fbpat = nvkm_rd32(device, 0x02243c);
32 u32 fbpas = fbpat / fbpt;
33 u32 fbpa = fbp * fbpas;
34 u32 size = 0;
35 while (fbpas--) {
36 if (!(fbpao & BIT(fbpa)))
37 size += func->probe_fbpa_amount(device, fbpa);
38 fbpa++;
39 }
40 *pltcs = 1;
41 return size;
42 }
43
44 static const struct nvkm_ram_func
45 gf108_ram = {
46 .upper = 0x0200000000,
47 .probe_fbp = gf100_ram_probe_fbp,
48 .probe_fbp_amount = gf108_ram_probe_fbp_amount,
49 .probe_fbpa_amount = gf100_ram_probe_fbpa_amount,
50 .init = gf100_ram_init,
51 .calc = gf100_ram_calc,
52 .prog = gf100_ram_prog,
53 .tidy = gf100_ram_tidy,
54 };
55
56 int
57 gf108_ram_new(struct nvkm_fb *fb, struct nvkm_ram **pram)
58 {
59 return gf100_ram_new_(&gf108_ram, fb, pram);
60 }