| .. | .. |
|---|
| 113 | 113 | .aper = gf100_vmm_aper, |
|---|
| 114 | 114 | .valid = gf100_vmm_valid, |
|---|
| 115 | 115 | .flush = gf100_vmm_flush, |
|---|
| 116 | + .invalidate_pdb = gf100_vmm_invalidate_pdb, |
|---|
| 116 | 117 | .page = { |
|---|
| 117 | 118 | { 27, &gm200_vmm_desc_17_17[1], NVKM_VMM_PAGE_Sxxx }, |
|---|
| 118 | 119 | { 17, &gm200_vmm_desc_17_17[0], NVKM_VMM_PAGE_SVxC }, |
|---|
| .. | .. |
|---|
| 128 | 129 | .aper = gf100_vmm_aper, |
|---|
| 129 | 130 | .valid = gf100_vmm_valid, |
|---|
| 130 | 131 | .flush = gf100_vmm_flush, |
|---|
| 132 | + .invalidate_pdb = gf100_vmm_invalidate_pdb, |
|---|
| 131 | 133 | .page = { |
|---|
| 132 | 134 | { 27, &gm200_vmm_desc_16_16[1], NVKM_VMM_PAGE_Sxxx }, |
|---|
| 133 | 135 | { 16, &gm200_vmm_desc_16_16[0], NVKM_VMM_PAGE_SVxC }, |
|---|
| .. | .. |
|---|
| 139 | 141 | int |
|---|
| 140 | 142 | gm200_vmm_new_(const struct nvkm_vmm_func *func_16, |
|---|
| 141 | 143 | const struct nvkm_vmm_func *func_17, |
|---|
| 142 | | - struct nvkm_mmu *mmu, u64 addr, u64 size, void *argv, u32 argc, |
|---|
| 143 | | - struct lock_class_key *key, const char *name, |
|---|
| 144 | | - struct nvkm_vmm **pvmm) |
|---|
| 144 | + struct nvkm_mmu *mmu, bool managed, u64 addr, u64 size, |
|---|
| 145 | + void *argv, u32 argc, struct lock_class_key *key, |
|---|
| 146 | + const char *name, struct nvkm_vmm **pvmm) |
|---|
| 145 | 147 | { |
|---|
| 146 | 148 | const struct nvkm_vmm_func *func; |
|---|
| 147 | 149 | union { |
|---|
| .. | .. |
|---|
| 163 | 165 | } else |
|---|
| 164 | 166 | return ret; |
|---|
| 165 | 167 | |
|---|
| 166 | | - return nvkm_vmm_new_(func, mmu, 0, addr, size, key, name, pvmm); |
|---|
| 168 | + return nvkm_vmm_new_(func, mmu, 0, managed, addr, size, key, name, pvmm); |
|---|
| 167 | 169 | } |
|---|
| 168 | 170 | |
|---|
| 169 | 171 | int |
|---|
| 170 | | -gm200_vmm_new(struct nvkm_mmu *mmu, u64 addr, u64 size, void *argv, u32 argc, |
|---|
| 171 | | - struct lock_class_key *key, const char *name, |
|---|
| 172 | | - struct nvkm_vmm **pvmm) |
|---|
| 172 | +gm200_vmm_new(struct nvkm_mmu *mmu, bool managed, u64 addr, u64 size, |
|---|
| 173 | + void *argv, u32 argc, struct lock_class_key *key, |
|---|
| 174 | + const char *name, struct nvkm_vmm **pvmm) |
|---|
| 173 | 175 | { |
|---|
| 174 | | - return gm200_vmm_new_(&gm200_vmm_16, &gm200_vmm_17, mmu, addr, |
|---|
| 176 | + return gm200_vmm_new_(&gm200_vmm_16, &gm200_vmm_17, mmu, managed, addr, |
|---|
| 175 | 177 | size, argv, argc, key, name, pvmm); |
|---|
| 176 | 178 | } |
|---|
| 177 | 179 | |
|---|
| 178 | 180 | int |
|---|
| 179 | | -gm200_vmm_new_fixed(struct nvkm_mmu *mmu, u64 addr, u64 size, |
|---|
| 181 | +gm200_vmm_new_fixed(struct nvkm_mmu *mmu, bool managed, u64 addr, u64 size, |
|---|
| 180 | 182 | void *argv, u32 argc, struct lock_class_key *key, |
|---|
| 181 | 183 | const char *name, struct nvkm_vmm **pvmm) |
|---|
| 182 | 184 | { |
|---|
| 183 | | - return gf100_vmm_new_(&gm200_vmm_16, &gm200_vmm_17, mmu, addr, |
|---|
| 185 | + return gf100_vmm_new_(&gm200_vmm_16, &gm200_vmm_17, mmu, managed, addr, |
|---|
| 184 | 186 | size, argv, argc, key, name, pvmm); |
|---|
| 185 | 187 | } |
|---|