drm/i915: Cantiga+ cannot handle a hsync front porch of 0
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 21 Jun 2012 10:19:59 +0000 (13:19 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 22 Aug 2012 15:39:01 +0000 (17:39 +0200)
This addresses WaPruneModeWithIncorrectHsyncOffset.

Bugzilla: http://bugs.freedesktop.org/show_bug.cgi?id=50236
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c

index 42c57581c53f5385d73337c497ae7f64cb381b89..778cbb88bddc6aa2091fd07078f4787f66d4f627 100644 (file)
@@ -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;
 }