]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/i915: Check some transcoder timing minimum limits
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 18 Jul 2019 14:43:40 +0000 (17:43 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 21 Oct 2019 18:09:57 +0000 (21:09 +0300)
On ILK+ the documented min hdisplay is 64, min hblank is 32, and min
vblank is 5. On earlier platforms min hblank is also 32, and min
vblank is 3. Make sure the mode satisfies those limits.

There are further limits for HDMI and pfit use cases, but we'll check
for those in a more specific location.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190718144340.1114-2-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
drivers/gpu/drm/i915/display/intel_display.c

index 2912abd85148d9c01469f575cc74bb180698e669..236fdf122e478d0b2a80d2d30d17353cf7252d7f 100644 (file)
@@ -16294,6 +16294,21 @@ intel_mode_valid(struct drm_device *dev,
            mode->vtotal > vtotal_max)
                return MODE_V_ILLEGAL;
 
+       if (INTEL_GEN(dev_priv) >= 5) {
+               if (mode->hdisplay < 64 ||
+                   mode->htotal - mode->hdisplay < 32)
+                       return MODE_H_ILLEGAL;
+
+               if (mode->vtotal - mode->vdisplay < 5)
+                       return MODE_V_ILLEGAL;
+       } else {
+               if (mode->htotal - mode->hdisplay < 32)
+                       return MODE_H_ILLEGAL;
+
+               if (mode->vtotal - mode->vdisplay < 3)
+                       return MODE_V_ILLEGAL;
+       }
+
        return MODE_OK;
 }