|
@@ -3602,6 +3602,13 @@ static bool intel_crtc_mode_fixup(struct drm_crtc *crtc,
|
|
|
if (!(adjusted_mode->private_flags & INTEL_MODE_CRTC_TIMINGS_SET))
|
|
|
drm_mode_set_crtcinfo(adjusted_mode, 0);
|
|
|
|
|
|
+ /* WaPruneModeWithIncorrectHsyncOffset: Cantiga+ cannot handle modes
|
|
|
+ * with a hsync front porch of 0.
|
|
|
+ */
|
|
|
+ if ((INTEL_INFO(dev)->gen > 4 || IS_G4X(dev)) &&
|
|
|
+ adjusted_mode->hsync_start == adjusted_mode->hdisplay)
|
|
|
+ return false;
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|