mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-21 05:14:52 +08:00
drm/i915: Remove highly confusing i915_gem_obj_ggtt_pin()
Since i915_gem_obj_ggtt_pin() is an idiom breaking curry function for i915_gem_object_ggtt_pin(), spare us the confusion and remove it. Removing it now simplifies later patches to change the i915_vma_pin() (and friends) interface. v2: Add a redundant GEM_BUG_ON(!view) to i915_gem_obj_lookup_or_create_ggtt_vma() Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1470324762-2545-18-git-send-email-chris@chris-wilson.co.uk
This commit is contained in:
parent
305bc234a8
commit
de895082f7
@ -3289,15 +3289,6 @@ static inline bool i915_gem_obj_ggtt_bound(struct drm_i915_gem_object *obj)
|
||||
unsigned long
|
||||
i915_gem_obj_ggtt_size(struct drm_i915_gem_object *obj);
|
||||
|
||||
static inline int __must_check
|
||||
i915_gem_obj_ggtt_pin(struct drm_i915_gem_object *obj,
|
||||
uint32_t alignment,
|
||||
unsigned flags)
|
||||
{
|
||||
return i915_gem_object_ggtt_pin(obj, &i915_ggtt_view_normal,
|
||||
0, alignment, flags);
|
||||
}
|
||||
|
||||
void i915_gem_object_ggtt_unpin_view(struct drm_i915_gem_object *obj,
|
||||
const struct i915_ggtt_view *view);
|
||||
static inline void
|
||||
|
@ -652,7 +652,7 @@ i915_gem_gtt_pread(struct drm_device *dev,
|
||||
uint64_t offset;
|
||||
int ret;
|
||||
|
||||
ret = i915_gem_obj_ggtt_pin(obj, 0, PIN_MAPPABLE);
|
||||
ret = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, PIN_MAPPABLE);
|
||||
if (ret) {
|
||||
ret = insert_mappable_node(dev_priv, &node, PAGE_SIZE);
|
||||
if (ret)
|
||||
@ -949,7 +949,8 @@ i915_gem_gtt_pwrite_fast(struct drm_i915_private *i915,
|
||||
if (obj->tiling_mode != I915_TILING_NONE)
|
||||
return -EFAULT;
|
||||
|
||||
ret = i915_gem_obj_ggtt_pin(obj, 0, PIN_MAPPABLE | PIN_NONBLOCK);
|
||||
ret = i915_gem_object_ggtt_pin(obj, NULL, 0, 0,
|
||||
PIN_MAPPABLE | PIN_NONBLOCK);
|
||||
if (ret) {
|
||||
ret = insert_mappable_node(i915, &node, PAGE_SIZE);
|
||||
if (ret)
|
||||
@ -3719,7 +3720,7 @@ int __i915_vma_do_pin(struct i915_vma *vma,
|
||||
goto err;
|
||||
}
|
||||
|
||||
if ((bound & (I915_VMA_GLOBAL_BIND | I915_VMA_LOCAL_BIND)) == 0) {
|
||||
if ((bound & I915_VMA_BIND_MASK) == 0) {
|
||||
ret = i915_vma_insert(vma, size, alignment, flags);
|
||||
if (ret)
|
||||
goto err;
|
||||
@ -3750,7 +3751,8 @@ i915_gem_object_ggtt_pin(struct drm_i915_gem_object *obj,
|
||||
struct i915_vma *vma;
|
||||
int ret;
|
||||
|
||||
BUG_ON(!view);
|
||||
if (!view)
|
||||
view = &i915_ggtt_view_normal;
|
||||
|
||||
vma = i915_gem_obj_lookup_or_create_ggtt_vma(obj, view);
|
||||
if (IS_ERR(vma))
|
||||
@ -3782,12 +3784,7 @@ void
|
||||
i915_gem_object_ggtt_unpin_view(struct drm_i915_gem_object *obj,
|
||||
const struct i915_ggtt_view *view)
|
||||
{
|
||||
struct i915_vma *vma = i915_gem_obj_to_ggtt_view(obj, view);
|
||||
|
||||
WARN_ON(!i915_vma_is_pinned(vma));
|
||||
WARN_ON(!i915_gem_obj_ggtt_bound_view(obj, view));
|
||||
|
||||
__i915_vma_unpin(vma);
|
||||
i915_vma_unpin(i915_gem_obj_to_ggtt_view(obj, view));
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -763,9 +763,8 @@ static int do_rcs_switch(struct drm_i915_gem_request *req)
|
||||
return 0;
|
||||
|
||||
/* Trying to pin first makes error handling easier. */
|
||||
ret = i915_gem_obj_ggtt_pin(to->engine[RCS].state,
|
||||
to->ggtt_alignment,
|
||||
0);
|
||||
ret = i915_gem_object_ggtt_pin(to->engine[RCS].state, NULL, 0,
|
||||
to->ggtt_alignment, 0);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -1270,7 +1270,7 @@ i915_gem_execbuffer_parse(struct intel_engine_cs *engine,
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
ret = i915_gem_obj_ggtt_pin(shadow_batch_obj, 0, 0);
|
||||
ret = i915_gem_object_ggtt_pin(shadow_batch_obj, NULL, 0, 0, 0);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
@ -1650,7 +1650,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
|
||||
* fitting due to fragmentation.
|
||||
* So this is actually safe.
|
||||
*/
|
||||
ret = i915_gem_obj_ggtt_pin(obj, 0, 0);
|
||||
ret = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, 0);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
|
@ -3430,6 +3430,8 @@ i915_gem_obj_lookup_or_create_ggtt_vma(struct drm_i915_gem_object *obj,
|
||||
struct i915_ggtt *ggtt = &dev_priv->ggtt;
|
||||
struct i915_vma *vma = i915_gem_obj_to_ggtt_view(obj, view);
|
||||
|
||||
GEM_BUG_ON(!view);
|
||||
|
||||
if (!vma)
|
||||
vma = __i915_gem_vma_create(obj, &ggtt->base, view);
|
||||
|
||||
|
@ -191,7 +191,7 @@ int i915_gem_render_state_init(struct drm_i915_gem_request *req)
|
||||
if (IS_ERR(so.obj))
|
||||
return PTR_ERR(so.obj);
|
||||
|
||||
ret = i915_gem_obj_ggtt_pin(so.obj, 4096, 0);
|
||||
ret = i915_gem_object_ggtt_pin(so.obj, NULL, 0, 0, 0);
|
||||
if (ret)
|
||||
goto err_obj;
|
||||
|
||||
|
@ -635,8 +635,8 @@ gem_allocate_guc_obj(struct drm_i915_private *dev_priv, u32 size)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (i915_gem_obj_ggtt_pin(obj, PAGE_SIZE,
|
||||
PIN_OFFSET_BIAS | GUC_WOPCM_TOP)) {
|
||||
if (i915_gem_object_ggtt_pin(obj, NULL, 0, PAGE_SIZE,
|
||||
PIN_OFFSET_BIAS | GUC_WOPCM_TOP)) {
|
||||
i915_gem_object_put(obj);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -323,7 +323,7 @@ static int guc_ucode_xfer(struct drm_i915_private *dev_priv)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = i915_gem_obj_ggtt_pin(guc_fw->guc_fw_obj, 0, 0);
|
||||
ret = i915_gem_object_ggtt_pin(guc_fw->guc_fw_obj, NULL, 0, 0, 0);
|
||||
if (ret) {
|
||||
DRM_DEBUG_DRIVER("pin failed %d\n", ret);
|
||||
return ret;
|
||||
|
@ -799,8 +799,9 @@ static int intel_lr_context_pin(struct i915_gem_context *ctx,
|
||||
if (ce->pin_count++)
|
||||
return 0;
|
||||
|
||||
ret = i915_gem_obj_ggtt_pin(ce->state, GEN8_LR_CONTEXT_ALIGN,
|
||||
PIN_OFFSET_BIAS | GUC_WOPCM_TOP);
|
||||
ret = i915_gem_object_ggtt_pin(ce->state, NULL,
|
||||
0, GEN8_LR_CONTEXT_ALIGN,
|
||||
PIN_OFFSET_BIAS | GUC_WOPCM_TOP);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
@ -1203,7 +1204,8 @@ static int lrc_setup_wa_ctx_obj(struct intel_engine_cs *engine, u32 size)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = i915_gem_obj_ggtt_pin(engine->wa_ctx.obj, PAGE_SIZE, 0);
|
||||
ret = i915_gem_object_ggtt_pin(engine->wa_ctx.obj, NULL,
|
||||
0, PAGE_SIZE, 0);
|
||||
if (ret) {
|
||||
DRM_DEBUG_DRIVER("pin LRC WA ctx backing obj failed: %d\n",
|
||||
ret);
|
||||
|
@ -1401,7 +1401,8 @@ void intel_setup_overlay(struct drm_i915_private *dev_priv)
|
||||
}
|
||||
overlay->flip_addr = reg_bo->phys_handle->busaddr;
|
||||
} else {
|
||||
ret = i915_gem_obj_ggtt_pin(reg_bo, PAGE_SIZE, PIN_MAPPABLE);
|
||||
ret = i915_gem_object_ggtt_pin(reg_bo, NULL,
|
||||
0, PAGE_SIZE, PIN_MAPPABLE);
|
||||
if (ret) {
|
||||
DRM_ERROR("failed to pin overlay register bo\n");
|
||||
goto out_free_bo;
|
||||
|
@ -639,7 +639,7 @@ int intel_init_pipe_control(struct intel_engine_cs *engine, int size)
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = i915_gem_obj_ggtt_pin(obj, 4096, PIN_HIGH);
|
||||
ret = i915_gem_object_ggtt_pin(obj, NULL, 0, 4096, PIN_HIGH);
|
||||
if (ret)
|
||||
goto err_unref;
|
||||
|
||||
@ -1896,7 +1896,7 @@ static int init_status_page(struct intel_engine_cs *engine)
|
||||
* actualy map it).
|
||||
*/
|
||||
flags |= PIN_MAPPABLE;
|
||||
ret = i915_gem_obj_ggtt_pin(obj, 4096, flags);
|
||||
ret = i915_gem_object_ggtt_pin(obj, NULL, 0, 4096, flags);
|
||||
if (ret) {
|
||||
err_unref:
|
||||
i915_gem_object_put(obj);
|
||||
@ -1943,7 +1943,7 @@ int intel_ring_pin(struct intel_ring *ring)
|
||||
int ret;
|
||||
|
||||
if (HAS_LLC(dev_priv) && !obj->stolen) {
|
||||
ret = i915_gem_obj_ggtt_pin(obj, PAGE_SIZE, flags);
|
||||
ret = i915_gem_object_ggtt_pin(obj, NULL, 0, PAGE_SIZE, flags);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -1957,8 +1957,8 @@ int intel_ring_pin(struct intel_ring *ring)
|
||||
goto err_unpin;
|
||||
}
|
||||
} else {
|
||||
ret = i915_gem_obj_ggtt_pin(obj, PAGE_SIZE,
|
||||
flags | PIN_MAPPABLE);
|
||||
ret = i915_gem_object_ggtt_pin(obj, NULL, 0, PAGE_SIZE,
|
||||
flags | PIN_MAPPABLE);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -2092,7 +2092,8 @@ static int intel_ring_context_pin(struct i915_gem_context *ctx,
|
||||
return 0;
|
||||
|
||||
if (ce->state) {
|
||||
ret = i915_gem_obj_ggtt_pin(ce->state, ctx->ggtt_alignment, 0);
|
||||
ret = i915_gem_object_ggtt_pin(ce->state, NULL, 0,
|
||||
ctx->ggtt_alignment, 0);
|
||||
if (ret)
|
||||
goto error;
|
||||
}
|
||||
@ -2649,7 +2650,7 @@ static void intel_ring_init_semaphores(struct drm_i915_private *dev_priv,
|
||||
i915.semaphores = 0;
|
||||
} else {
|
||||
i915_gem_object_set_cache_level(obj, I915_CACHE_LLC);
|
||||
ret = i915_gem_obj_ggtt_pin(obj, 0, PIN_NONBLOCK);
|
||||
ret = i915_gem_object_ggtt_pin(obj, NULL, 0, 0, 0);
|
||||
if (ret != 0) {
|
||||
i915_gem_object_put(obj);
|
||||
DRM_ERROR("Failed to pin semaphore bo. Disabling semaphores\n");
|
||||
|
Loading…
Reference in New Issue
Block a user