| .. | .. |
|---|
| 111 | 111 | } *args = argv; |
|---|
| 112 | 112 | const u8 *kind = NULL; |
|---|
| 113 | 113 | int ret = -ENOSYS, count = 0; |
|---|
| 114 | + u8 kind_inv = 0; |
|---|
| 114 | 115 | |
|---|
| 115 | 116 | if (mmu->func->kind) |
|---|
| 116 | | - kind = mmu->func->kind(mmu, &count); |
|---|
| 117 | + kind = mmu->func->kind(mmu, &count, &kind_inv); |
|---|
| 117 | 118 | |
|---|
| 118 | 119 | if (!(ret = nvif_unpack(ret, &argv, &argc, args->v0, 0, 0, true))) { |
|---|
| 119 | 120 | if (argc != args->v0.count * sizeof(*args->v0.data)) |
|---|
| 120 | 121 | return -EINVAL; |
|---|
| 121 | 122 | if (args->v0.count > count) |
|---|
| 122 | 123 | return -EINVAL; |
|---|
| 124 | + args->v0.kind_inv = kind_inv; |
|---|
| 123 | 125 | memcpy(args->v0.data, kind, args->v0.count); |
|---|
| 124 | 126 | } else |
|---|
| 125 | 127 | return ret; |
|---|
| .. | .. |
|---|
| 157 | 159 | struct nvkm_mmu *mmu = device->mmu; |
|---|
| 158 | 160 | struct nvkm_ummu *ummu; |
|---|
| 159 | 161 | int ret = -ENOSYS, kinds = 0; |
|---|
| 162 | + u8 unused = 0; |
|---|
| 160 | 163 | |
|---|
| 161 | 164 | if (mmu->func->kind) |
|---|
| 162 | | - mmu->func->kind(mmu, &kinds); |
|---|
| 165 | + mmu->func->kind(mmu, &kinds, &unused); |
|---|
| 163 | 166 | |
|---|
| 164 | 167 | if (!(ret = nvif_unpack(ret, &argv, &argc, args->v0, 0, 0, false))) { |
|---|
| 165 | 168 | args->v0.dmabits = mmu->dma_bits; |
|---|