@@ -63,7 +63,6 @@ struct nouveau_dmem_chunk {
63
63
unsigned long pfn_first ;
64
64
unsigned long callocated ;
65
65
unsigned long bitmap [BITS_TO_LONGS (DMEM_CHUNK_NPAGES )];
66
- struct nvif_vma vma ;
67
66
spinlock_t lock ;
68
67
};
69
68
@@ -272,10 +271,10 @@ nouveau_dmem_fault_alloc_and_copy(struct vm_area_struct *vma,
272
271
273
272
chunk = (void * )hmm_devmem_page_get_drvdata (spage );
274
273
src_addr = page_to_pfn (spage ) - chunk -> pfn_first ;
275
- src_addr = (src_addr << PAGE_SHIFT ) + chunk -> vma . addr ;
274
+ src_addr = (src_addr << PAGE_SHIFT ) + chunk -> bo -> bo . offset ;
276
275
277
276
ret = copy (drm , 1 , NOUVEAU_APER_VIRT , dst_addr ,
278
- NOUVEAU_APER_VIRT , src_addr );
277
+ NOUVEAU_APER_VRAM , src_addr );
279
278
if (ret ) {
280
279
dst_pfns [i ] = MIGRATE_PFN_ERROR ;
281
280
__free_page (dpage );
@@ -371,7 +370,6 @@ nouveau_dmem_devmem_ops = {
371
370
static int
372
371
nouveau_dmem_chunk_alloc (struct nouveau_drm * drm )
373
372
{
374
- struct nvif_vmm * vmm = & drm -> client .vmm .vmm ;
375
373
struct nouveau_dmem_chunk * chunk ;
376
374
int ret ;
377
375
@@ -390,11 +388,6 @@ nouveau_dmem_chunk_alloc(struct nouveau_drm *drm)
390
388
list_del (& chunk -> list );
391
389
mutex_unlock (& drm -> dmem -> mutex );
392
390
393
- ret = nvif_vmm_get (vmm , LAZY , false, 12 , 0 ,
394
- DMEM_CHUNK_SIZE , & chunk -> vma );
395
- if (ret )
396
- goto out ;
397
-
398
391
ret = nouveau_bo_new (& drm -> client , DMEM_CHUNK_SIZE , 0 ,
399
392
TTM_PL_FLAG_VRAM , 0 , 0 , NULL , NULL ,
400
393
& chunk -> bo );
@@ -407,13 +400,6 @@ nouveau_dmem_chunk_alloc(struct nouveau_drm *drm)
407
400
goto out ;
408
401
}
409
402
410
- ret = nouveau_mem_map (nouveau_mem (& chunk -> bo -> bo .mem ), vmm , & chunk -> vma );
411
- if (ret ) {
412
- nouveau_bo_unpin (chunk -> bo );
413
- nouveau_bo_ref (NULL , & chunk -> bo );
414
- goto out ;
415
- }
416
-
417
403
bitmap_zero (chunk -> bitmap , DMEM_CHUNK_NPAGES );
418
404
spin_lock_init (& chunk -> lock );
419
405
@@ -570,7 +556,6 @@ nouveau_dmem_suspend(struct nouveau_drm *drm)
570
556
void
571
557
nouveau_dmem_fini (struct nouveau_drm * drm )
572
558
{
573
- struct nvif_vmm * vmm = & drm -> client .vmm .vmm ;
574
559
struct nouveau_dmem_chunk * chunk , * tmp ;
575
560
576
561
if (drm -> dmem == NULL )
@@ -586,7 +571,6 @@ nouveau_dmem_fini(struct nouveau_drm *drm)
586
571
nouveau_bo_unpin (chunk -> bo );
587
572
nouveau_bo_ref (NULL , & chunk -> bo );
588
573
}
589
- nvif_vmm_put (vmm , & chunk -> vma );
590
574
list_del (& chunk -> list );
591
575
kfree (chunk );
592
576
}
@@ -792,7 +776,7 @@ nouveau_dmem_migrate_alloc_and_copy(struct vm_area_struct *vma,
792
776
793
777
chunk = (void * )hmm_devmem_page_get_drvdata (dpage );
794
778
dst_addr = page_to_pfn (dpage ) - chunk -> pfn_first ;
795
- dst_addr = (dst_addr << PAGE_SHIFT ) + chunk -> vma . addr ;
779
+ dst_addr = (dst_addr << PAGE_SHIFT ) + chunk -> bo -> bo . offset ;
796
780
797
781
spage = migrate_pfn_to_page (src_pfns [i ]);
798
782
if (!spage || !(src_pfns [i ] & MIGRATE_PFN_MIGRATE )) {
@@ -804,7 +788,7 @@ nouveau_dmem_migrate_alloc_and_copy(struct vm_area_struct *vma,
804
788
src_addr = migrate -> hmem .vma .addr + (c << PAGE_SHIFT );
805
789
c ++ ;
806
790
807
- ret = copy (drm , 1 , NOUVEAU_APER_VIRT , dst_addr ,
791
+ ret = copy (drm , 1 , NOUVEAU_APER_VRAM , dst_addr ,
808
792
NOUVEAU_APER_VIRT , src_addr );
809
793
if (ret ) {
810
794
nouveau_dmem_page_free_locked (drm , dpage );
0 commit comments