• Matt Roper's avatar
    drm/i915: Switch to full atomic helpers for plane updates/disable, take two · 70a101f8
    Matt Roper authored
    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: default avatarMatt Roper <matthew.d.roper@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    70a101f8
intel_display.c 408 KB