This source file includes following definitions.
- gm20b_mmu_new
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include "mem.h"
23 #include "vmm.h"
24
25 #include <subdev/fb.h>
26
27 #include <nvif/class.h>
28
29 static const struct nvkm_mmu_func
30 gm20b_mmu = {
31 .dma_bits = 40,
32 .mmu = {{ -1, -1, NVIF_CLASS_MMU_GF100}},
33 .mem = {{ -1, -1, NVIF_CLASS_MEM_GF100}, .umap = gf100_mem_map },
34 .vmm = {{ -1, 0, NVIF_CLASS_VMM_GM200}, gm20b_vmm_new },
35 .kind = gm200_mmu_kind,
36 .kind_sys = true,
37 };
38
39 static const struct nvkm_mmu_func
40 gm20b_mmu_fixed = {
41 .dma_bits = 40,
42 .mmu = {{ -1, -1, NVIF_CLASS_MMU_GF100}},
43 .mem = {{ -1, -1, NVIF_CLASS_MEM_GF100}, .umap = gf100_mem_map },
44 .vmm = {{ -1, -1, NVIF_CLASS_VMM_GM200}, gm20b_vmm_new_fixed },
45 .kind = gm200_mmu_kind,
46 .kind_sys = true,
47 };
48
49 int
50 gm20b_mmu_new(struct nvkm_device *device, int index, struct nvkm_mmu **pmmu)
51 {
52 if (device->fb->page)
53 return nvkm_mmu_new_(&gm20b_mmu_fixed, device, index, pmmu);
54 return nvkm_mmu_new_(&gm20b_mmu, device, index, pmmu);
55 }