| .. | .. |
|---|
| 1 | | -/* SPDX-License-Identifier: GPL-2.0 */ |
|---|
| 1 | +/* SPDX-License-Identifier: MIT */ |
|---|
| 2 | 2 | #ifndef __NVKM_MMU_PRIV_H__ |
|---|
| 3 | 3 | #define __NVKM_MMU_PRIV_H__ |
|---|
| 4 | 4 | #define nvkm_mmu(p) container_of((p), struct nvkm_mmu, subdev) |
|---|
| .. | .. |
|---|
| 28 | 28 | |
|---|
| 29 | 29 | struct { |
|---|
| 30 | 30 | struct nvkm_sclass user; |
|---|
| 31 | | - int (*ctor)(struct nvkm_mmu *, u64 addr, u64 size, |
|---|
| 31 | + int (*ctor)(struct nvkm_mmu *, bool managed, u64 addr, u64 size, |
|---|
| 32 | 32 | void *argv, u32 argc, struct lock_class_key *, |
|---|
| 33 | 33 | const char *name, struct nvkm_vmm **); |
|---|
| 34 | 34 | bool global; |
|---|
| 35 | 35 | u32 pd_offset; |
|---|
| 36 | 36 | } vmm; |
|---|
| 37 | 37 | |
|---|
| 38 | | - const u8 *(*kind)(struct nvkm_mmu *, int *count); |
|---|
| 38 | + const u8 *(*kind)(struct nvkm_mmu *, int *count, u8 *invalid); |
|---|
| 39 | 39 | bool kind_sys; |
|---|
| 40 | 40 | }; |
|---|
| 41 | 41 | |
|---|
| 42 | 42 | extern const struct nvkm_mmu_func nv04_mmu; |
|---|
| 43 | 43 | |
|---|
| 44 | | -const u8 *nv50_mmu_kind(struct nvkm_mmu *, int *count); |
|---|
| 44 | +const u8 *nv50_mmu_kind(struct nvkm_mmu *, int *count, u8 *invalid); |
|---|
| 45 | 45 | |
|---|
| 46 | | -const u8 *gf100_mmu_kind(struct nvkm_mmu *, int *count); |
|---|
| 46 | +const u8 *gf100_mmu_kind(struct nvkm_mmu *, int *count, u8 *invalid); |
|---|
| 47 | 47 | |
|---|
| 48 | | -const u8 *gm200_mmu_kind(struct nvkm_mmu *, int *); |
|---|
| 48 | +const u8 *gm200_mmu_kind(struct nvkm_mmu *, int *, u8 *); |
|---|
| 49 | 49 | |
|---|
| 50 | 50 | struct nvkm_mmu_pt { |
|---|
| 51 | 51 | union { |
|---|