aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/intel_crt.c2
-rw-r--r--drivers/gpu/drm/i915/intel_display.c14
2 files changed, 15 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
index e16ac5a28c3c..d5c130202396 100644
--- a/drivers/gpu/drm/i915/intel_crt.c
+++ b/drivers/gpu/drm/i915/intel_crt.c
@@ -569,7 +569,7 @@ void intel_crt_init(struct drm_device *dev)
569 (1 << INTEL_ANALOG_CLONE_BIT) | 569 (1 << INTEL_ANALOG_CLONE_BIT) |
570 (1 << INTEL_SDVO_LVDS_CLONE_BIT); 570 (1 << INTEL_SDVO_LVDS_CLONE_BIT);
571 intel_encoder->crtc_mask = (1 << 0) | (1 << 1); 571 intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
572 connector->interlace_allowed = 0; 572 connector->interlace_allowed = 1;
573 connector->doublescan_allowed = 0; 573 connector->doublescan_allowed = 0;
574 574
575 drm_encoder_helper_add(&intel_encoder->enc, &intel_crt_helper_funcs); 575 drm_encoder_helper_add(&intel_encoder->enc, &intel_crt_helper_funcs);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 36afe9409964..4c7c151114f7 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -2354,6 +2354,8 @@ static bool intel_crtc_mode_fixup(struct drm_crtc *crtc,
2354 if (mode->clock * 3 > 27000 * 4) 2354 if (mode->clock * 3 > 27000 * 4)
2355 return MODE_CLOCK_HIGH; 2355 return MODE_CLOCK_HIGH;
2356 } 2356 }
2357
2358 drm_mode_set_crtcinfo(adjusted_mode, 0);
2357 return true; 2359 return true;
2358} 2360}
2359 2361
@@ -3781,6 +3783,18 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
3781 } 3783 }
3782 } 3784 }
3783 3785
3786 if (adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) {
3787 pipeconf |= PIPECONF_INTERLACE_W_FIELD_INDICATION;
3788 /* the chip adds 2 halflines automatically */
3789 adjusted_mode->crtc_vdisplay -= 1;
3790 adjusted_mode->crtc_vtotal -= 1;
3791 adjusted_mode->crtc_vblank_start -= 1;
3792 adjusted_mode->crtc_vblank_end -= 1;
3793 adjusted_mode->crtc_vsync_end -= 1;
3794 adjusted_mode->crtc_vsync_start -= 1;
3795 } else
3796 pipeconf &= ~PIPECONF_INTERLACE_W_FIELD_INDICATION; /* progressive */
3797
3784 I915_WRITE(htot_reg, (adjusted_mode->crtc_hdisplay - 1) | 3798 I915_WRITE(htot_reg, (adjusted_mode->crtc_hdisplay - 1) |
3785 ((adjusted_mode->crtc_htotal - 1) << 16)); 3799 ((adjusted_mode->crtc_htotal - 1) << 16));
3786 I915_WRITE(hblank_reg, (adjusted_mode->crtc_hblank_start - 1) | 3800 I915_WRITE(hblank_reg, (adjusted_mode->crtc_hblank_start - 1) |