.. | .. |
---|
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; |
---|