• Matt Roper's avatar
    drm/i915: Introduce intel_prepare_cursor_plane() (v2) · f4a2cf29
    Matt Roper authored
    Primary and sprite planes have already been refactored to include a
    'prepare' step which handles all the commit-time operations that could
    fail (i.e., pinning buffers and such).  Refactor the cursor commit in a
    similar manner.
    
    For simplicity and consistency with other plane types, we also switch to
    using intel_pin_and_fence_fb_obj() to perform our pinning for
    non-physical cursors.  This will allow us to more easily migrate the
    code into the atomic 'begin' handler in a plane-agnostic manner in a
    future patchset.
    
    v2:
     - Update GEM fb tracking for physical cursors too. (Ander)
     - Use intel_unpin_fb_obj() rather than
       i915_gem_object_unpin_from_display_plane() and do so while holding
       struct_mutex.  (Ander)
     - Update plane->fb in commit_cursor_plane.  This isn't really necessary
       since the DRM core does this for us in __setplane_internal(), but
       doing it in our driver once we know we're going to succeed helps
       avoid confusion. (Ander)
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Reviewed-by: default avatarAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    f4a2cf29
intel_display.c 383 KB