diff options
author | Christian König <christian.koenig@amd.com> | 2013-04-08 06:41:28 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2013-04-09 10:31:33 -0400 |
commit | 4474f3a91f95e3fcc62d97e36f1e8e3392c96ee0 (patch) | |
tree | 88e320164b4cd3fb2ac94b8e15f9ccf37277bd22 /drivers/gpu/drm/radeon/radeon_object.c | |
parent | 574490401d8fd553ac4baa33ea22fa315a2b4294 (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.c | 8 |
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) | |||
341 | void radeon_bo_list_add_object(struct radeon_bo_list *lobj, | 341 | void 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; |