On Fri, Oct 16, 2015 at 02:21:26PM +0300, Ander Conselvan De Oliveira wrote: > On Wed, 2015-09-23 at 13:27 +0200, Maarten Lankhorst wrote: > > Now that we agreed on not preserving framebuffers pinning is finally > > allowed to fail because of signals. Use this to make pinning > > and acquire the mutex in an interruptible way too. > > > > Unpinning is still uninterruptible, because it happens as a cleanup > > of old state, or undoing pins after one of the pins failed. > > > > The intel_pin_and_fence_fb_obj in page_flip will also wait interruptibly, > > and can be aborted now. > > > > Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> > > Reviewed-by: Ander Conselvan de Oliveira <conselvan2@xxxxxxxxx> First two patches merged to dinq. Thanks, Daniel > > > --- > > drivers/gpu/drm/i915/intel_display.c | 11 +++++------ > > 1 file changed, 5 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_display.c > > b/drivers/gpu/drm/i915/intel_display.c > > index ac97af69be62..25e1eac260fd 100644 > > --- a/drivers/gpu/drm/i915/intel_display.c > > +++ b/drivers/gpu/drm/i915/intel_display.c > > @@ -2349,11 +2349,10 @@ intel_pin_and_fence_fb_obj(struct drm_plane *plane, > > */ > > intel_runtime_pm_get(dev_priv); > > > > - dev_priv->mm.interruptible = false; > > ret = i915_gem_object_pin_to_display_plane(obj, alignment, pipelined, > > pipelined_request, &view); > > if (ret) > > - goto err_interruptible; > > + goto err_pm; > > > > /* Install a fence for tiled scan-out. Pre-i965 always needs a > > * fence, whereas 965+ only requires a fence if using > > @@ -2377,14 +2376,12 @@ intel_pin_and_fence_fb_obj(struct drm_plane *plane, > > > > i915_gem_object_pin_fence(obj); > > > > - dev_priv->mm.interruptible = true; > > intel_runtime_pm_put(dev_priv); > > return 0; > > > > err_unpin: > > i915_gem_object_unpin_from_display_plane(obj, &view); > > -err_interruptible: > > - dev_priv->mm.interruptible = true; > > +err_pm: > > intel_runtime_pm_put(dev_priv); > > return ret; > > } > > @@ -13305,7 +13302,9 @@ intel_prepare_plane_fb(struct drm_plane *plane, > > if (!obj && !old_obj) > > return 0; > > > > - mutex_lock(&dev->struct_mutex); > > + ret = i915_mutex_lock_interruptible(dev); > > + if (ret) > > + return ret; > > > > if (!obj) { > > ret = 0; > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx