aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_object.c
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2013-04-08 06:41:28 -0400
committerAlex Deucher <alexander.deucher@amd.com>2013-04-09 10:31:33 -0400
commit4474f3a91f95e3fcc62d97e36f1e8e3392c96ee0 (patch)
tree88e320164b4cd3fb2ac94b8e15f9ccf37277bd22 /drivers/gpu/drm/radeon/radeon_object.c
parent574490401d8fd553ac4baa33ea22fa315a2b4294 (diff)
drm/radeon: rework fallback handling v2
Let the CS module decide if we can fall back to VRAM or not. v2: remove unintended change Signed-off-by: Christian König <christian.koenig@amd.com> Reviewed-by: Jerome Glisse <jglisse@redhat.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_object.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_object.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
index 58e026afec17..4466477f1e7b 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -341,7 +341,7 @@ void radeon_bo_fini(struct radeon_device *rdev)
341void radeon_bo_list_add_object(struct radeon_bo_list *lobj, 341void radeon_bo_list_add_object(struct radeon_bo_list *lobj,
342 struct list_head *head) 342 struct list_head *head)
343{ 343{
344 if (lobj->wdomain) { 344 if (lobj->written) {
345 list_add(&lobj->tv.head, head); 345 list_add(&lobj->tv.head, head);
346 } else { 346 } else {
347 list_add_tail(&lobj->tv.head, head); 347 list_add_tail(&lobj->tv.head, head);
@@ -362,15 +362,15 @@ int radeon_bo_list_validate(struct list_head *head)
362 list_for_each_entry(lobj, head, tv.head) { 362 list_for_each_entry(lobj, head, tv.head) {
363 bo = lobj->bo; 363 bo = lobj->bo;
364 if (!bo->pin_count) { 364 if (!bo->pin_count) {
365 domain = lobj->wdomain ? lobj->wdomain : lobj->rdomain; 365 domain = lobj->domain;
366 366
367 retry: 367 retry:
368 radeon_ttm_placement_from_domain(bo, domain); 368 radeon_ttm_placement_from_domain(bo, domain);
369 r = ttm_bo_validate(&bo->tbo, &bo->placement, 369 r = ttm_bo_validate(&bo->tbo, &bo->placement,
370 true, false); 370 true, false);
371 if (unlikely(r)) { 371 if (unlikely(r)) {
372 if (r != -ERESTARTSYS && domain == RADEON_GEM_DOMAIN_VRAM) { 372 if (r != -ERESTARTSYS && domain != lobj->alt_domain) {
373 domain |= RADEON_GEM_DOMAIN_GTT; 373 domain = lobj->alt_domain;
374 goto retry; 374 goto retry;
375 } 375 }
376 return r; 376 return r;