svn commit: r254796 - head/sys/dev/drm2/i915

Jean-Sebastien Pedron dumbbell at FreeBSD.org
Sat Aug 24 16:41:15 UTC 2013


Author: dumbbell
Date: Sat Aug 24 16:41:14 2013
New Revision: 254796
URL: http://svnweb.freebsd.org/changeset/base/254796

Log:
  drm/i915: Import Linux commit 71244653a8fb0f46bc12ae421f1d5f72af6a75da
  
  Author: Daniel Vetter <daniel.vetter at ffwll.ch>
  Date:   Mon Jun 4 18:39:20 2012 +0200
  
      drm/i915: adjusted_mode->clock in the dp mode_fixup
  
      ... instead of changing mode->clock, which we should leave as-is.
  
      After the previous patch we only touch that if it's a panel, and then
      adjusted mode->clock equals adjusted_mode->clock. Outside of
      intel_dp.c we only use ajusted_mode->clock in the mode_set functions.
  
      Within intel_dp.c we only use it to calculate the dp dithering
      and link bw parameters, so that's the only thing we need to fix
      up.
  
      As a temporary ugliness (until the cleanup in the next patch) we
      pass the adjusted_mode into dp_dither for both parameters (because
      that one still looks at mode->clock).
  
      Note that we do overwrite adjusted_mode->clock with the selected dp
      link clock, but that only happens after we've calculated everything we
      need based on the dotclock of the adjusted output configuration.
  
      Outside of intel_dp.c only intel_display.c uses adjusted_mode->clock,
      and that stays the same after this patch (still equals the selected dp
      link clock). intel_display.c also needs the actual dotclock (as
      target_clock), but that has been fixed up in the previous patch.
  
      v2: Adjust the debug message to also use adjusted_mode->clock.
  
      Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
      Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
      Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>

Modified:
  head/sys/dev/drm2/i915/intel_dp.c

Modified: head/sys/dev/drm2/i915/intel_dp.c
==============================================================================
--- head/sys/dev/drm2/i915/intel_dp.c	Sat Aug 24 16:17:33 2013	(r254795)
+++ head/sys/dev/drm2/i915/intel_dp.c	Sat Aug 24 16:41:14 2013	(r254796)
@@ -691,14 +691,9 @@ intel_dp_mode_fixup(struct drm_encoder *
 		intel_fixed_panel_mode(intel_dp->panel_fixed_mode, adjusted_mode);
 		intel_pch_panel_fitting(dev, DRM_MODE_SCALE_FULLSCREEN,
 					mode, adjusted_mode);
-		/*
-		 * the mode->clock is used to calculate the Data&Link M/N
-		 * of the pipe. For the eDP the fixed clock should be used.
-		 */
-		mode->clock = intel_dp->panel_fixed_mode->clock;
 	}
 
-	if (!intel_dp_adjust_dithering(intel_dp, mode, adjusted_mode))
+	if (!intel_dp_adjust_dithering(intel_dp, adjusted_mode, adjusted_mode))
 		return false;
 
 	bpp = adjusted_mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 24;
@@ -707,7 +702,7 @@ intel_dp_mode_fixup(struct drm_encoder *
 		for (clock = 0; clock <= max_clock; clock++) {
 			int link_avail = intel_dp_max_data_rate(intel_dp_link_clock(bws[clock]), lane_count);
 
-			if (intel_dp_link_required(mode->clock, bpp)
+			if (intel_dp_link_required(adjusted_mode->clock, bpp)
 					<= link_avail) {
 				intel_dp->link_bw = bws[clock];
 				intel_dp->lane_count = lane_count;


More information about the svn-src-all mailing list