aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem_execbuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem_execbuffer.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem_execbuffer.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 22b4cb775576..09187286d346 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -693,9 +693,14 @@ static int eb_reserve(struct i915_execbuffer *eb)
693 eb_unreserve_vma(vma, &eb->flags[i]); 693 eb_unreserve_vma(vma, &eb->flags[i]);
694 694
695 if (flags & EXEC_OBJECT_PINNED) 695 if (flags & EXEC_OBJECT_PINNED)
696 /* Pinned must have their slot */
696 list_add(&vma->exec_link, &eb->unbound); 697 list_add(&vma->exec_link, &eb->unbound);
697 else if (flags & __EXEC_OBJECT_NEEDS_MAP) 698 else if (flags & __EXEC_OBJECT_NEEDS_MAP)
699 /* Map require the lowest 256MiB (aperture) */
698 list_add_tail(&vma->exec_link, &eb->unbound); 700 list_add_tail(&vma->exec_link, &eb->unbound);
701 else if (!(flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS))
702 /* Prioritise 4GiB region for restricted bo */
703 list_add(&vma->exec_link, &last);
699 else 704 else
700 list_add_tail(&vma->exec_link, &last); 705 list_add_tail(&vma->exec_link, &last);
701 } 706 }
@@ -743,7 +748,7 @@ static int eb_select_context(struct i915_execbuffer *eb)
743 } 748 }
744 749
745 eb->context_flags = 0; 750 eb->context_flags = 0;
746 if (ctx->flags & CONTEXT_NO_ZEROMAP) 751 if (test_bit(UCONTEXT_NO_ZEROMAP, &ctx->user_flags))
747 eb->context_flags |= __EXEC_OBJECT_NEEDS_BIAS; 752 eb->context_flags |= __EXEC_OBJECT_NEEDS_BIAS;
748 753
749 return 0; 754 return 0;