diff options
author | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2020-12-31 17:04:05 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2021-01-01 22:16:01 +0000 |
commit | 093a0bea629ac8e4f2ee9a3ffc30817139452937 (patch) | |
tree | 4e74bb157a55b8aabde9bf0d93bef2d405b8b4ac /drivers/gpu/drm/i915/gt/intel_lrc.c | |
parent | 9fb87fb3fdd208fbbab339ad32406e010c938740 (diff) | |
download | linux-093a0bea629ac8e4f2ee9a3ffc30817139452937.tar.gz linux-093a0bea629ac8e4f2ee9a3ffc30817139452937.tar.bz2 linux-093a0bea629ac8e4f2ee9a3ffc30817139452937.zip |
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.c | 4 |
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; } |