drm/i915: Generalize the async flip capability check
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 11 Jan 2021 16:37:04 +0000 (18:37 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 19 Jan 2021 17:13:59 +0000 (19:13 +0200)
Only assign the plane->async_flip() vfunc when the plane supports
async flips. For now we keep this artificially limited to the primary
plane since thats the only thing the legacy page flip uapi can target
and there is no async flip support in the atomic uapi yet.

Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Vandita Kulkarni <vandita.kulkarni@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210111163711.12913-5-ville.syrjala@linux.intel.com
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
drivers/gpu/drm/i915/display/intel_display.c
drivers/gpu/drm/i915/display/intel_sprite.c

index b614987eddf1776082ac8dacf1b75c45e9d43546..942335b1d58c99efbd4beae18eb568832adef249 100644 (file)
@@ -12254,7 +12254,7 @@ static int intel_atomic_check_async(struct intel_atomic_state *state)
                 * this(vlv/chv and icl+) should be added when async flip is
                 * enabled in the atomic IOCTL path.
                 */
-               if (plane->id != PLANE_PRIMARY)
+               if (!plane->async_flip)
                        return -EINVAL;
 
                /*
index cf3589fd0ddb3ee6d912eb847f5a88ebf61cf5ae..e839a7748068ffb75e0fe2097c77fdbe210b1594 100644 (file)
@@ -3290,7 +3290,9 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
        plane->get_hw_state = skl_plane_get_hw_state;
        plane->check_plane = skl_plane_check;
        plane->min_cdclk = skl_plane_min_cdclk;
-       plane->async_flip = skl_plane_async_flip;
+
+       if (plane_id == PLANE_PRIMARY)
+               plane->async_flip = skl_plane_async_flip;
 
        if (INTEL_GEN(dev_priv) >= 11)
                formats = icl_get_plane_formats(dev_priv, pipe,