path: root/drivers/gpu/drm/radeon/radeon.h
diff options
authorChristian König <christian.koenig@amd.com>2014-07-18 09:24:53 +0200
committerAlex Deucher <alexander.deucher@amd.com>2014-08-05 08:53:49 -0400
commite31ad969bbbf0271b537d88f886c2ba3a7ee7059 (patch)
tree14f2ef577a1bb69141280726dc1a2d782078721b /drivers/gpu/drm/radeon/radeon.h
parentc08abf11900e19b14dd3a0cc3d105bd74519cd18 (diff)
drm/radeon: invalidate moved BOs in the VM (v2)
Don't wait for the BO to be used again, just update the PT on the next VM use. v2: remove stray semicolon. Signed-off-by: Christian König <christian.koenig@amd.com> Tested-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon.h')
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index b3f0f0d92087..31dda41394d8 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -450,7 +450,7 @@ struct radeon_bo_va {
uint64_t soffset;
uint64_t eoffset;
uint32_t flags;
- bool valid;
+ uint64_t addr;
unsigned ref_count;
/* protected by vm mutex */
@@ -880,6 +880,9 @@ struct radeon_vm {
struct list_head va;
unsigned id;
+ /* BOs moved, but not yet updated in the PT */
+ struct list_head invalidated;
/* BOs freed, but not yet updated in the PT */
struct list_head freed;
@@ -2887,6 +2890,8 @@ int radeon_vm_update_page_directory(struct radeon_device *rdev,
struct radeon_vm *vm);
int radeon_vm_clear_freed(struct radeon_device *rdev,
struct radeon_vm *vm);
+int radeon_vm_clear_invalids(struct radeon_device *rdev,
+ struct radeon_vm *vm);
int radeon_vm_bo_update(struct radeon_device *rdev,
struct radeon_bo_va *bo_va,
struct ttm_mem_reg *mem);