drm/i915: Move WaPruneModeWithIncorrectHsyncOffset into intel_mode_valid()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 30 Sep 2021 10:41:33 +0000 (13:41 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 1 Oct 2021 13:09:45 +0000 (16:09 +0300)
Check for the zero length front porch already in intel_mode_valid()
so that we get the same validation for both get_modes() and setcrtc()/etc.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210930104133.30854-3-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/display/intel_display.c

index 27c65c8..5831534 100644 (file)
@@ -4046,13 +4046,6 @@ static int intel_crtc_compute_config(struct intel_crtc *crtc,
                }
        }
 
-       /* Cantiga+ cannot handle modes with a hsync front porch of 0.
-        * WaPruneModeWithIncorrectHsyncOffset:ctg,elk,ilk,snb,ivb,vlv,hsw.
-        */
-       if ((DISPLAY_VER(dev_priv) > 4 || IS_G4X(dev_priv)) &&
-           pipe_mode->crtc_hsync_start == pipe_mode->crtc_hdisplay)
-               return -EINVAL;
-
        intel_crtc_compute_pixel_rate(pipe_config);
 
        if (pipe_config->has_pch_encoder)
@@ -11159,6 +11152,14 @@ intel_mode_valid(struct drm_device *dev,
                        return MODE_V_ILLEGAL;
        }
 
+       /*
+        * Cantiga+ cannot handle modes with a hsync front porch of 0.
+        * WaPruneModeWithIncorrectHsyncOffset:ctg,elk,ilk,snb,ivb,vlv,hsw.
+        */
+       if ((DISPLAY_VER(dev_priv) > 4 || IS_G4X(dev_priv)) &&
+           mode->hsync_start == mode->hdisplay)
+               return MODE_H_ILLEGAL;
+
        return MODE_OK;
 }