drm/i915: Switch to full atomic helpers for plane updates/disable, take two
authorMatt Roper <matthew.d.roper@intel.com>
Thu, 9 Apr 2015 01:56:53 +0000 (18:56 -0700)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 10 Apr 2015 07:36:54 +0000 (09:36 +0200)
commit70a101f8639a712576c3ca1d910564c7e2ec91d8
tree6a1965d5db601068ff14c72d868a948efd634117
parent3e1ab4b70571ea801de6f426f9973c80e1bddfb3
drm/i915: Switch to full atomic helpers for plane updates/disable, take two

Switch from our plane update/disable entrypoints to use the full atomic
helpers (which generate a top-level atomic transaction) rather than the
transitional helpers (which only create/manipulate orphaned plane states
independent of a top-level transaction).  Various upcoming work (SKL
scalers, atomic watermarks, etc.) requires a full atomic transaction to
behave properly/cleanly.

Last time we tried this, we had to back out the change because we still
call the drm_plane vfuncs directly from within our legacy modesetting
code.  This potentially results in nested atomic transactions, locking
collisions, and other failures.  To avoid that problem again, we
sidestep the issue by calling the transitional helpers directly (rather
than through a vfunc) when we're nested inside of other legacy
modesetting code.  However this does allow legacy SetPlane() ioctl's to
process an entire drm_atomic_state transaction, which is important for
upcoming patches.

Cc: Chandra Konduru <chandra.konduru@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_sprite.c