58 vmm->
map(vma, pgt, node, pte, len, phys, delta);
63 phys += len << (bits + 12);
68 delta += (
u64)len << vma->
node->type;
108 for (m = 0; m < len; m++) {
111 vmm->
map_sg(vma, pgt, mem, pte, 1, &addr);
123 for (; m < sglen; m++) {
126 vmm->
map_sg(vma, pgt, mem, pte, 1, &addr);
163 vmm->
map_sg(vma, pgt, mem, pte, len, list);
199 vmm->
unmap(pgt, pte, len);
227 for (pde = fpde; pde <= lpde; pde++) {
228 vpgt = &vm->
pgt[pde - vm->
fpde];
232 pgt = vpgt->
obj[big];
240 nouveau_gpuobj_ref(
NULL, &pgt);
269 nouveau_gpuobj_ref(
NULL, &pgt);
274 vpgt->
obj[big] = pgt;
287 u32 align = (1 << page_shift) >> 12;
288 u32 msize = size >> 12;
303 for (pde = fpde; pde <= lpde; pde++) {
312 ret = nouveau_vm_map_pgt(vm, pde, vma->
node->type);
315 nouveau_vm_unmap_pgt(vm, big, fpde, pde - 1);
342 nouveau_vm_unmap_pgt(vm, vma->
node->type != vmm->
spg_shift, fpde, lpde);
352 u64 mm_length = (offset +
length) - mm_offset;
363 vm->
lpde = (offset + length - 1) >> (vmm->
pgt_bits + 12);
387 return vmm->
create(vmm, offset, length, mm_offset, pvm);
404 nouveau_gpuobj_ref(pgd, &vpgd->
obj);
407 for (i = vm->
fpde; i <= vm->lpde; i++)
425 if (vpgd->
obj == mpgd) {
434 nouveau_gpuobj_ref(
NULL, &pgd);
443 nouveau_vm_unlink(vm, vpgd->
obj);
460 ret = nouveau_vm_link(vm, pgd);
471 nouveau_vm_unlink(vm, pgd);