aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-12-04 02:45:57 -0500
committerChris Wilson <chris@chris-wilson.co.uk>2010-12-04 08:41:04 -0500
commit49078f7d108f132582e5af46304c317b55f83948 (patch)
treece32c5971d1d70444142e7e618c29b63b5a6e4fe /drivers/gpu
parent22ed1113a9adda6e193c329119a384362da01289 (diff)
drm/i915: Factor in pixel-repeat in FDI M/N calculation
Fixes the modesetting on the secondary panel of the Libretto W100 and presumably many more Ironlake laptops with SDVO LVDS displays. Reported-and-tested-by: Matthew Willoughby <mattfredwill@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: stable@kernel.org
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index fac118b2df7d..d9b7092439ef 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3710,6 +3710,7 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
3710 3710
3711 /* FDI link */ 3711 /* FDI link */
3712 if (HAS_PCH_SPLIT(dev)) { 3712 if (HAS_PCH_SPLIT(dev)) {
3713 int pixel_multiplier = intel_mode_get_pixel_multiplier(adjusted_mode);
3713 int lane = 0, link_bw, bpp; 3714 int lane = 0, link_bw, bpp;
3714 /* CPU eDP doesn't require FDI link, so just set DP M/N 3715 /* CPU eDP doesn't require FDI link, so just set DP M/N
3715 according to current link config */ 3716 according to current link config */
@@ -3793,6 +3794,8 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
3793 3794
3794 intel_crtc->fdi_lanes = lane; 3795 intel_crtc->fdi_lanes = lane;
3795 3796
3797 if (pixel_multiplier > 1)
3798 link_bw *= pixel_multiplier;
3796 ironlake_compute_m_n(bpp, lane, target_clock, link_bw, &m_n); 3799 ironlake_compute_m_n(bpp, lane, target_clock, link_bw, &m_n);
3797 } 3800 }
3798 3801