All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Cc: Jani Nikula <jani.nikula@intel.com>,
	Daniel Vetter <daniel.vetter@ffwll.ch>,
	Ben Widawsky <benjamin.widawsky@intel.com>
Subject: [PATCH 09/11] drm/i915: Simplify i915_gem_object_ggtt_unpin
Date: Fri, 14 Feb 2014 14:01:19 +0100	[thread overview]
Message-ID: <1392382881-19073-10-git-send-email-daniel.vetter@ffwll.ch> (raw)
In-Reply-To: <1392382881-19073-1-git-send-email-daniel.vetter@ffwll.ch>

Split out from Chris vma-bind rework.

Jani wondered why this is save, and the reason is that i915_vma_unbind
does all these checks, too. So they're redundant.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ben Widawsky <benjamin.widawsky@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_drv.h | 10 ++++++++--
 drivers/gpu/drm/i915/i915_gem.c | 20 --------------------
 2 files changed, 8 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 112c45e71c3f..8e8a30b080f3 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2091,9 +2091,7 @@ int __must_check i915_gem_object_pin(struct drm_i915_gem_object *obj,
 				     struct i915_address_space *vm,
 				     uint32_t alignment,
 				     unsigned flags);
-void i915_gem_object_ggtt_unpin(struct drm_i915_gem_object *obj);
 int __must_check i915_vma_unbind(struct i915_vma *vma);
-int __must_check i915_gem_object_ggtt_unbind(struct drm_i915_gem_object *obj);
 int i915_gem_object_put_pages(struct drm_i915_gem_object *obj);
 void i915_gem_release_all_mmaps(struct drm_i915_private *dev_priv);
 void i915_gem_release_mmap(struct drm_i915_gem_object *obj);
@@ -2298,6 +2296,14 @@ i915_gem_obj_ggtt_pin(struct drm_i915_gem_object *obj,
 	return i915_gem_object_pin(obj, obj_to_ggtt(obj), alignment, flags | PIN_GLOBAL);
 }
 
+static inline int
+i915_gem_object_ggtt_unbind(struct drm_i915_gem_object *obj)
+{
+	return i915_vma_unbind(i915_gem_obj_to_ggtt(obj));
+}
+
+void i915_gem_object_ggtt_unpin(struct drm_i915_gem_object *obj);
+
 /* i915_gem_context.c */
 #define ctx_to_ppgtt(ctx) container_of((ctx)->vm, struct i915_hw_ppgtt, base)
 int __must_check i915_gem_context_init(struct drm_device *dev);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index b3a15c9fa034..10450f196913 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2766,26 +2766,6 @@ int i915_vma_unbind(struct i915_vma *vma)
 	return 0;
 }
 
-/**
- * Unbinds an object from the global GTT aperture.
- */
-int
-i915_gem_object_ggtt_unbind(struct drm_i915_gem_object *obj)
-{
-	struct drm_i915_private *dev_priv = obj->base.dev->dev_private;
-	struct i915_address_space *ggtt = &dev_priv->gtt.base;
-
-	if (!i915_gem_obj_ggtt_bound(obj))
-		return 0;
-
-	if (i915_gem_obj_to_ggtt(obj)->pin_count)
-		return -EBUSY;
-
-	BUG_ON(obj->pages == NULL);
-
-	return i915_vma_unbind(i915_gem_obj_to_vma(obj, ggtt));
-}
-
 int i915_gpu_idle(struct drm_device *dev)
 {
 	drm_i915_private_t *dev_priv = dev->dev_private;
-- 
1.8.5.2

  parent reply	other threads:[~2014-02-14 13:01 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-14 13:01 Shuffled full-ppgtt vma binding performance fix Daniel Vetter
2014-02-14 13:01 ` [PATCH 01/11] drm/i915: Consolidate binding parameters into flags Daniel Vetter
2014-02-14 13:01 ` [PATCH 02/11] drm/i915: split PIN_GLOBAL out from PIN_MAPPABLE Daniel Vetter
2014-02-14 13:01 ` [PATCH 03/11] drm/i915: Handle set_cache_level errors in the pipe control scratch setup Daniel Vetter
2014-02-14 13:01 ` [PATCH 04/11] drm/i915: Don't set PIN_MAPPABLE for legacy ringbuffers Daniel Vetter
2014-02-14 13:01 ` [PATCH 05/11] drm/i915: Don't pin the status page as mappable Daniel Vetter
2014-02-14 13:01 ` [PATCH 06/11] drm/i915: Handle set_cache_level errors in the status page setup Daniel Vetter
2014-02-14 13:01 ` [PATCH 07/11] drm/i915: Don't allocate context pages as mappable Daniel Vetter
2014-02-14 13:01 ` [PATCH 08/11] drm/i915: Allow blocking in the PDE alloc when running low on gtt space Daniel Vetter
2014-02-14 13:01 ` Daniel Vetter [this message]
2014-02-14 13:01 ` [PATCH 10/11] drm/i915: Directly return the vma from bind_to_vm Daniel Vetter
2014-02-14 13:01 ` [PATCH 11/11] drm/i915: Only bind each object rather than for every execbuffer Daniel Vetter
2014-02-14 13:08 ` Shuffled full-ppgtt vma binding performance fix Chris Wilson
2014-02-14 13:19   ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1392382881-19073-10-git-send-email-daniel.vetter@ffwll.ch \
    --to=daniel.vetter@ffwll.ch \
    --cc=benjamin.widawsky@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.