Message ID | 1390846259-14915-8-git-send-email-daniel.vetter@ffwll.ch (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 27 Jan 2014, Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > Split out from Chris vma-bind rework. "simplify" does not explain to me *why* you can skip two checks in the code. BR, Jani. > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Ben Widawsky <benjamin.widawsky@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 dcab2b0a09ef..13991b8ce602 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -2037,9 +2037,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); > @@ -2244,6 +2242,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 9f4dab7df5c0..680b300d7454 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -2814,26 +2814,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 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
On Tue, Jan 28, 2014 at 03:13:34PM +0200, Jani Nikula wrote: > On Mon, 27 Jan 2014, Daniel Vetter <daniel.vetter@ffwll.ch> wrote: > > Split out from Chris vma-bind rework. > > "simplify" does not explain to me *why* you can skip two checks in the > code. Because they are all repeated in i915_vma_unbind(). -Chris
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index dcab2b0a09ef..13991b8ce602 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -2037,9 +2037,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); @@ -2244,6 +2242,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 9f4dab7df5c0..680b300d7454 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2814,26 +2814,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;
Split out from Chris vma-bind rework. Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ben Widawsky <benjamin.widawsky@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(-)