• Matt Roper's avatar
    drm/i915: Switch to unified plane cursor handling (v4) · 3d7d6510
    Matt Roper authored
    The DRM core will translate calls to legacy cursor ioctls into universal
    cursor calls automatically, so there's no need to maintain the legacy
    cursor support.  This greatly simplifies the transition since we don't
    have to handle reference counting differently depending on which cursor
    interface was called.
    
    The aim here is to transition to the universal plane interface with
    minimal code change.  There's a lot of cleanup that can be done (e.g.,
    using state stored in crtc->cursor->fb rather than intel_crtc) that is
    left to future patches.
    
    v4:
     - Drop drm_gem_object_unreference() that is no longer needed now that
       we receive the GEM obj directly rather than looking up the ID.
    v3:
     - Pass cursor obj to intel_crtc_cursor_set_obj() if cursor fb changes,
       even if 'visible' is false.  intel_crtc_cursor_set_obj() will notice
       that the cursor isn't visible and disable it properly, but we still
       need to get intel_crtc->cursor_addr set properly so that we behave
       properly if the cursor becomes visible again in the future without
       changing the cursor buffer (noted by Chris Wilson and verified
       via i-g-t kms_cursor_crc).
     - s/drm_plane_init/drm_universal_plane_init/.  Due to type
       compatibility between enum and bool, everything actually works
       correctly with the wrong init call, except for the type of plane that
       gets exposed to userspace (it shows up as type 'primary' rather than
       type 'cursor').
    v2:
     - Remove duplicate dimension checks on cursor
     - Drop explicit cursor disable from crtc destroy (fb & plane
       destruction will take care of that now)
     - Use DRM plane helper to check update parameters
    
    Cc: intel-gfx@lists.freedesktop.org
    Signed-off-by: default avatarMatt Roper <matthew.d.roper@intel.com>
    Reviewed-by: Pallavi G<pallavi.g@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    3d7d6510
intel_drv.h 32.9 KB