drm/i915: Change locking for struct_mutex, v3.
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Tue, 18 Aug 2015 11:40:05 +0000 (13:40 +0200)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Mon, 2 Nov 2015 14:50:24 +0000 (15:50 +0100)
commitf935675f0c07f87da2facc4c144d511e6da48240
treec8deef65bc14dcf8bcf241c9de226a9d13599436
parent5008e874edd34705be433bfa74bd29908182b36e
drm/i915: Change locking for struct_mutex, v3.

struct_mutex is being locked for every plane in intel_prepare_plane_fb
and intel_cleanup_plane_fb.

Require the caller to hold the mutex, and only acquire the mutex for
each helper call. This way the lock only needs to be acquired
twice in ->atomic_commit(). Once for pinning new framebuffers at the
start, the second time for unpinning old framebuffer.

Changes since v1:
- Use mutex_lock_interruptible instead of i915 variant,
  to prevent a deadlock when called from the reset code.
Changes since v2:
- Clarify struct_mutex is locked by the caller.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com> #v1
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/intel_display.c