diff options
author | Christian König <deathsimple@vodafone.de> | 2012-10-09 07:31:19 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2012-10-15 13:21:01 -0400 |
commit | 13e55c38f8ba4bb15ff9b51e2c5e7801c0f29526 (patch) | |
tree | db7d32c985655841ede2fa940312a1113a2f2e3c /drivers/gpu/drm/radeon/radeon_gart.c | |
parent | d72d43cfc5847c176edabc72e6431ba691322c98 (diff) |
drm/radeon: separate pt alloc from lru add
Make it possible to allocate a persistent page table.
Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_gart.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_gart.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_gart.c b/drivers/gpu/drm/radeon/radeon_gart.c index 7e21ea32242a..a7677dd1ce98 100644 --- a/drivers/gpu/drm/radeon/radeon_gart.c +++ b/drivers/gpu/drm/radeon/radeon_gart.c | |||
@@ -617,9 +617,6 @@ int radeon_vm_alloc_pt(struct radeon_device *rdev, struct radeon_vm *vm) | |||
617 | } | 617 | } |
618 | 618 | ||
619 | if (vm->page_directory != NULL) { | 619 | if (vm->page_directory != NULL) { |
620 | /* update lru */ | ||
621 | list_del_init(&vm->list); | ||
622 | list_add_tail(&vm->list, &rdev->vm_manager.lru_vm); | ||
623 | return 0; | 620 | return 0; |
624 | } | 621 | } |
625 | 622 | ||
@@ -653,11 +650,26 @@ retry: | |||
653 | return -ENOMEM; | 650 | return -ENOMEM; |
654 | } | 651 | } |
655 | 652 | ||
656 | list_add_tail(&vm->list, &rdev->vm_manager.lru_vm); | ||
657 | return 0; | 653 | return 0; |
658 | } | 654 | } |
659 | 655 | ||
660 | /** | 656 | /** |
657 | * radeon_vm_add_to_lru - add VMs page table to LRU list | ||
658 | * | ||
659 | * @rdev: radeon_device pointer | ||
660 | * @vm: vm to add to LRU | ||
661 | * | ||
662 | * Add the allocated page table to the LRU list (cayman+). | ||
663 | * | ||
664 | * Global mutex must be locked! | ||
665 | */ | ||
666 | void radeon_vm_add_to_lru(struct radeon_device *rdev, struct radeon_vm *vm) | ||
667 | { | ||
668 | list_del_init(&vm->list); | ||
669 | list_add_tail(&vm->list, &rdev->vm_manager.lru_vm); | ||
670 | } | ||
671 | |||
672 | /** | ||
661 | * radeon_vm_grab_id - allocate the next free VMID | 673 | * radeon_vm_grab_id - allocate the next free VMID |
662 | * | 674 | * |
663 | * @rdev: radeon_device pointer | 675 | * @rdev: radeon_device pointer |