<html><head></head><body><pre>From: Animesh Manna <<a href="mailto:animesh.manna@intel.com">animesh.manna@intel.com</a>></pre><pre><br></pre><pre>As part of die area reduction max input source modified to 4096</pre><pre>for MTL so modified range check logic of scaler.</pre><pre><br></pre><pre>Signed-off-by: José Roberto de Souza <<a href="mailto:jose.souza@intel.com">jose.souza@intel.com</a>></pre><pre>Signed-off-by: Animesh Manna <<a href="mailto:animesh.manna@intel.com">animesh.manna@intel.com</a>></pre><pre>Signed-off-by: Luca Coelho <<a href="mailto:luciano.coelho@intel.com">luciano.coelho@intel.com</a>></pre><pre>---</pre><pre> drivers/gpu/drm/i915/display/skl_scaler.c | 31 +++++++++++++++++------</pre><pre> 1 file changed, 23 insertions(+), 8 deletions(-)</pre><pre><br></pre><pre>In v2:</pre><pre>   * No changes;</pre><pre><br></pre><pre>In v3:</pre><pre>   * Removed stray reviewed-by tag;</pre><pre>   * Added my s-o-b.</pre><pre><br></pre><pre>In v4:</pre><pre>   * No changes.</pre><pre><br></pre><pre>For some reason this patch didn't reach the list before.  Resending.</pre><pre><br></pre><pre>diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c</pre><pre>index d7390067b7d4..6baa07142b03 100644</pre><pre>--- a/drivers/gpu/drm/i915/display/skl_scaler.c</pre><pre>+++ b/drivers/gpu/drm/i915/display/skl_scaler.c</pre><pre>@@ -103,6 +103,8 @@ skl_update_scaler(struct intel_crtc_state *crtc_state, bool force_detach,</pre><pre>  struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);</pre><pre>  const struct drm_display_mode *adjusted_mode =</pre><pre>           &crtc_state->hw.adjusted_mode;</pre><pre>+   int min_src_w, min_src_h, min_dst_w, min_dst_h;</pre><pre>+ int max_src_w, max_src_h, max_dst_w, max_dst_h;</pre><pre> </pre><pre>  /*</pre><pre>        * Src coordinates are already rotated by 270 degrees for</pre><pre>@@ -157,15 +159,28 @@ skl_update_scaler(struct intel_crtc_state *crtc_state, bool force_detach,</pre><pre>          return -EINVAL;</pre><pre>  }</pre><pre> </pre><pre>+       min_src_w = SKL_MIN_SRC_W;</pre><pre>+      min_src_h = SKL_MIN_SRC_H;</pre><pre>+      min_dst_w = SKL_MIN_DST_W;</pre><pre>+      min_dst_h = SKL_MIN_DST_H;</pre><pre>+</pre><pre>+      if (DISPLAY_VER(dev_priv) >= 11 && DISPLAY_VER(dev_priv) < 14) {</pre><pre>+          max_src_w = ICL_MAX_SRC_W;</pre><pre>+              max_src_h = ICL_MAX_SRC_H;</pre><pre>+              max_dst_w = ICL_MAX_DST_W;</pre><pre>+              max_dst_h = ICL_MAX_DST_H;</pre><pre>+      } else {</pre><pre>+                max_src_w = SKL_MAX_SRC_W;</pre><pre>+              max_src_h = SKL_MAX_SRC_H;</pre><pre>+              max_dst_w = SKL_MAX_DST_W;</pre><pre>+              max_dst_h = SKL_MAX_DST_H;</pre><pre>+      }</pre><pre>+</pre><pre>        /* range checks */</pre><pre>-      if (src_w < SKL_MIN_SRC_W || src_h < SKL_MIN_SRC_H ||</pre><pre>-         dst_w < SKL_MIN_DST_W || dst_h < SKL_MIN_DST_H ||</pre><pre>-         (DISPLAY_VER(dev_priv) >= 11 &&</pre><pre>-       (src_w > ICL_MAX_SRC_W || src_h > ICL_MAX_SRC_H ||</pre><pre>-         dst_w > ICL_MAX_DST_W || dst_h > ICL_MAX_DST_H)) ||</pre><pre>-     (DISPLAY_VER(dev_priv) < 11 &&</pre><pre>-        (src_w > SKL_MAX_SRC_W || src_h > SKL_MAX_SRC_H ||</pre><pre>-         dst_w > SKL_MAX_DST_W || dst_h > SKL_MAX_DST_H)))   {</pre><pre>+       if (src_w < min_src_w || src_h < min_src_h ||</pre><pre>+         dst_w < min_dst_w || dst_h < min_dst_h ||</pre><pre>+         src_w > max_src_w || src_h > max_src_h ||</pre><pre>+         dst_w > max_dst_w || dst_h > max_dst_h) {</pre><pre>              drm_dbg_kms(&dev_priv->drm,</pre><pre>                           "scaler_user index %u.%u: src %ux%u dst %ux%u "</pre><pre>                        "size is out of scaler range\n",</pre><div><br></div><div><span></span></div></body></html>