summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/gt/intel_lrc.c
diff options
context:
space:
mode:
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>2020-12-31 17:04:05 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2021-01-01 22:16:01 +0000
commit093a0bea629ac8e4f2ee9a3ffc30817139452937 (patch)
tree4e74bb157a55b8aabde9bf0d93bef2d405b8b4ac /drivers/gpu/drm/i915/gt/intel_lrc.c
parent9fb87fb3fdd208fbbab339ad32406e010c938740 (diff)
drm/i915: Populate logical context during first pin.
This allows us to remove pin_map from state allocation, which saves us a few retry loops. We won't need this until first pin, anyway. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20201231170405.22843-1-chris@chris-wilson.co.uk
Diffstat (limited to 'drivers/gpu/drm/i915/gt/intel_lrc.c')
-rw-r--r--drivers/gpu/drm/i915/gt/intel_lrc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/gt/intel_lrc.c b/drivers/gpu/drm/i915/gt/intel_lrc.c
index 008f50a86355..4e856947fb13 100644
--- a/drivers/gpu/drm/i915/gt/intel_lrc.c
+++ b/drivers/gpu/drm/i915/gt/intel_lrc.c
@@ -916,6 +916,10 @@ lrc_pin(struct intel_context *ce,
void *vaddr)
{
ce->lrc_reg_state = vaddr + LRC_STATE_OFFSET;
+
+ if (!__test_and_set_bit(CONTEXT_INIT_BIT, &ce->flags))
+ lrc_init_state(ce, engine, vaddr);
+
ce->lrc.lrca = lrc_update_regs(ce, engine, ce->ring->tail);
return 0;
}