[PATCH 1/2] drm/i915: Don't assume 60Hz when accounting for DSI pixel overlap

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>

Compute the increase in the DSI clock due to pixel overlap mode in
a way that's refresh rate agnostic. So far the computation assumed
a 60Hz refresh rate. And let's switch to round to closest here as
well since we would like to be as close to the target as possible.

Also toss in a decent comment explaining what we're actually doing
here.

Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
---
 drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
index 8f683b8b1816..3fd3bac5fccc 100644
--- a/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
+++ b/drivers/gpu/drm/i915/intel_dsi_panel_vbt.c
@@ -603,13 +603,20 @@ struct drm_panel *vbt_panel_init(struct intel_dsi *intel_dsi, u16 panel_id)
 	if (intel_dsi->dual_link) {
 		pclk = pclk / 2;
 
-		/* we can enable pixel_overlap if needed by panel. In this
-		 * case we need to increase the pixelclock for extra pixels
+		/*
+		 * In front-back mode the display is split vertically
+		 * and the first half of pixels are transmitted by the
+		 * first port, the second half by the second port. An
+		 * overlapping strip of pixels is transmitted by both
+		 * ports. The way this is specified is the number of
+		 * pixels each half is extended horizontally (ie,
+		 * pixel_overlap==1 actually means an overlap of two
+		 * pixels). Thus we do this after the division by 2,
+		 * otherwise we'd have to multiply the extra by two.
 		 */
 		if (intel_dsi->dual_link == DSI_DUAL_LINK_FRONT_BACK) {
-			pclk += DIV_ROUND_UP(mode->vtotal *
-						intel_dsi->pixel_overlap *
-						60, 1000);
+			pclk += DIV_ROUND_CLOSEST(intel_dsi->pixel_overlap *
+						  mode->clock, mode->htotal);
 		}
 	}
 
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux