|
@@ -2463,11 +2463,19 @@ static bool intel_crtc_mode_fixup(struct drm_crtc *crtc,
|
|
|
struct drm_display_mode *adjusted_mode)
|
|
|
{
|
|
|
struct drm_device *dev = crtc->dev;
|
|
|
+
|
|
|
if (HAS_PCH_SPLIT(dev)) {
|
|
|
/* FDI link clock is fixed at 2.7G */
|
|
|
if (mode->clock * 3 > IRONLAKE_FDI_FREQ * 4)
|
|
|
return false;
|
|
|
}
|
|
|
+
|
|
|
+ /* XXX some encoders set the crtcinfo, others don't.
|
|
|
+ * Obviously we need some form of conflict resolution here...
|
|
|
+ */
|
|
|
+ if (adjusted_mode->crtc_htotal == 0)
|
|
|
+ drm_mode_set_crtcinfo(adjusted_mode, 0);
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|