GEN9+ Interlace fetch mode doesn't support pipe/plane scaling,
This patch adds check to fail the flip if pipe/plane scaling is
requested in Interlace fetch mode.

Changes since V1:
 - move check to skl_update_scaler (ville)
 - mode to adjusted_mode (ville)
 - combine pipe/plane scaling check
Changes since V2:
 - Indentation fix
 - Added TODO to handle/reject NV12 with interlace mode

Signed-off-by: Mahesh Kumar <mahesh1.ku...@intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 4e03ca6c946f..059e74170a59 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -4612,6 +4612,9 @@ skl_update_scaler(struct intel_crtc_state *crtc_state, 
bool force_detach,
                &crtc_state->scaler_state;
        struct intel_crtc *intel_crtc =
                to_intel_crtc(crtc_state->base.crtc);
+       struct drm_i915_private *dev_priv = to_i915(intel_crtc->base.dev);
+       const struct drm_display_mode *adjusted_mode =
+               &crtc_state->base.adjusted_mode;
        int need_scaling;
 
        /*
@@ -4622,6 +4625,18 @@ skl_update_scaler(struct intel_crtc_state *crtc_state, 
bool force_detach,
        need_scaling = src_w != dst_w || src_h != dst_h;
 
        /*
+        * Scaling/fitting not supported in IF-ID mode in GEN9+
+        * TODO: Interlace fetch mode doesn't support YUV420 planar formats.
+        * Once NV12 is enabled, handle it here while allocating scaler
+        * for NV12.
+        */
+       if (INTEL_GEN(dev_priv) >=9 && crtc_state->base.enable &&
+           need_scaling && adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) {
+               DRM_DEBUG_KMS("Pipe/Plane scaling not supported with IF-ID 
mode\n");
+               return -EINVAL;
+       }
+
+       /*
         * if plane is being disabled or scaler is no more required or force 
detach
         *  - free scaler binded to this plane/crtc
         *  - in order to do this, update crtc->scaler_usage
-- 
2.13.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to