提交 aad29fbb 编写于 作者: C Chris Wilson

drm/i915: Rename intel_pin_and_map_ring()

For more consistent oop-naming, we would use intel_ring_verb, so pick
intel_ring_pin() and intel_ring_unpin().
Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: NJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1469432687-22756-17-git-send-email-chris@chris-wilson.co.uk
Link: http://patchwork.freedesktop.org/patch/msgid/1470174640-18242-6-git-send-email-chris@chris-wilson.co.uk
上级 32c04f16
...@@ -973,7 +973,7 @@ static int intel_lr_context_pin(struct i915_gem_context *ctx, ...@@ -973,7 +973,7 @@ static int intel_lr_context_pin(struct i915_gem_context *ctx,
lrc_reg_state = vaddr + LRC_STATE_PN * PAGE_SIZE; lrc_reg_state = vaddr + LRC_STATE_PN * PAGE_SIZE;
ret = intel_pin_and_map_ring(dev_priv, ce->ring); ret = intel_ring_pin(ce->ring);
if (ret) if (ret)
goto unpin_map; goto unpin_map;
...@@ -1011,7 +1011,7 @@ void intel_lr_context_unpin(struct i915_gem_context *ctx, ...@@ -1011,7 +1011,7 @@ void intel_lr_context_unpin(struct i915_gem_context *ctx,
if (--ce->pin_count) if (--ce->pin_count)
return; return;
intel_unpin_ring(ce->ring); intel_ring_unpin(ce->ring);
i915_gem_object_unpin_map(ce->state); i915_gem_object_unpin_map(ce->state);
i915_gem_object_ggtt_unpin(ce->state); i915_gem_object_ggtt_unpin(ce->state);
......
...@@ -1993,24 +1993,9 @@ static int init_phys_status_page(struct intel_engine_cs *engine) ...@@ -1993,24 +1993,9 @@ static int init_phys_status_page(struct intel_engine_cs *engine)
return 0; return 0;
} }
void intel_unpin_ring(struct intel_ring *ring) int intel_ring_pin(struct intel_ring *ring)
{
GEM_BUG_ON(!ring->vma);
GEM_BUG_ON(!ring->vaddr);
if (HAS_LLC(ring->obj->base.dev) && !ring->obj->stolen)
i915_gem_object_unpin_map(ring->obj);
else
i915_vma_unpin_iomap(ring->vma);
ring->vaddr = NULL;
i915_gem_object_ggtt_unpin(ring->obj);
ring->vma = NULL;
}
int intel_pin_and_map_ring(struct drm_i915_private *dev_priv,
struct intel_ring *ring)
{ {
struct drm_i915_private *dev_priv = ring->engine->i915;
struct drm_i915_gem_object *obj = ring->obj; struct drm_i915_gem_object *obj = ring->obj;
/* Ring wraparound at offset 0 sometimes hangs. No idea why. */ /* Ring wraparound at offset 0 sometimes hangs. No idea why. */
unsigned flags = PIN_OFFSET_BIAS | 4096; unsigned flags = PIN_OFFSET_BIAS | 4096;
...@@ -2061,6 +2046,21 @@ int intel_pin_and_map_ring(struct drm_i915_private *dev_priv, ...@@ -2061,6 +2046,21 @@ int intel_pin_and_map_ring(struct drm_i915_private *dev_priv,
return ret; return ret;
} }
void intel_ring_unpin(struct intel_ring *ring)
{
GEM_BUG_ON(!ring->vma);
GEM_BUG_ON(!ring->vaddr);
if (HAS_LLC(ring->engine->i915) && !ring->obj->stolen)
i915_gem_object_unpin_map(ring->obj);
else
i915_vma_unpin_iomap(ring->vma);
ring->vaddr = NULL;
i915_gem_object_ggtt_unpin(ring->obj);
ring->vma = NULL;
}
static void intel_destroy_ringbuffer_obj(struct intel_ring *ring) static void intel_destroy_ringbuffer_obj(struct intel_ring *ring)
{ {
i915_gem_object_put(ring->obj); i915_gem_object_put(ring->obj);
...@@ -2233,7 +2233,7 @@ static int intel_init_ring_buffer(struct intel_engine_cs *engine) ...@@ -2233,7 +2233,7 @@ static int intel_init_ring_buffer(struct intel_engine_cs *engine)
goto error; goto error;
} }
ret = intel_pin_and_map_ring(dev_priv, ring); ret = intel_ring_pin(ring);
if (ret) { if (ret) {
DRM_ERROR("Failed to pin and map ringbuffer %s: %d\n", DRM_ERROR("Failed to pin and map ringbuffer %s: %d\n",
engine->name, ret); engine->name, ret);
...@@ -2261,7 +2261,7 @@ void intel_engine_cleanup(struct intel_engine_cs *engine) ...@@ -2261,7 +2261,7 @@ void intel_engine_cleanup(struct intel_engine_cs *engine)
intel_engine_stop(engine); intel_engine_stop(engine);
WARN_ON(!IS_GEN2(dev_priv) && (I915_READ_MODE(engine) & MODE_IDLE) == 0); WARN_ON(!IS_GEN2(dev_priv) && (I915_READ_MODE(engine) & MODE_IDLE) == 0);
intel_unpin_ring(engine->buffer); intel_ring_unpin(engine->buffer);
intel_ring_free(engine->buffer); intel_ring_free(engine->buffer);
engine->buffer = NULL; engine->buffer = NULL;
} }
......
...@@ -441,9 +441,8 @@ intel_write_status_page(struct intel_engine_cs *engine, ...@@ -441,9 +441,8 @@ intel_write_status_page(struct intel_engine_cs *engine,
struct intel_ring * struct intel_ring *
intel_engine_create_ring(struct intel_engine_cs *engine, int size); intel_engine_create_ring(struct intel_engine_cs *engine, int size);
int intel_pin_and_map_ring(struct drm_i915_private *dev_priv, int intel_ring_pin(struct intel_ring *ring);
struct intel_ring *ring); void intel_ring_unpin(struct intel_ring *ring);
void intel_unpin_ring(struct intel_ring *ring);
void intel_ring_free(struct intel_ring *ring); void intel_ring_free(struct intel_ring *ring);
void intel_engine_stop(struct intel_engine_cs *engine); void intel_engine_stop(struct intel_engine_cs *engine);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册