drm/i915: Check async flip capability early on
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 14 Feb 2022 10:55:30 +0000 (12:55 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 3 Mar 2022 16:17:35 +0000 (18:17 +0200)
commitb0b2bed2a1305c8f977c6b7d5fa162773693a212
tree65f4f14e68cd7715854ed97f0ce3f354d088685b
parent6475e106821babc0dc478a9cb3fc3973739c43fb
drm/i915: Check async flip capability early on

Since the async flip state check is done very late and
thus it can see potentially all the planes in the state
(due to the wm/ddb optimization) we need to move the
"can the requested plane do async flips at all?" check
much earlier. For this purpose we introduce
intel_async_flip_check_uapi() that gets called early during
the atomic check.

And for good measure we'll throw in a couple of basic checks:
- is the crtc active?
- was a modeset flagged?
- is+was the plane enabled?
Though atm all of those should be guaranteed by the fact
that the async flip can only be requested through the legacy
page flip ioctl.

Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Fixes: c3639f3be480 ("drm/i915: Use wm0 only during async flips for DG2")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220214105532.13049-3-ville.syrjala@linux.intel.com
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
drivers/gpu/drm/i915/display/intel_display.c